From cb8a5e25382cb67a80449ac1fb78ae9680650b92 Mon Sep 17 00:00:00 2001 From: Yun Peng Date: Wed, 8 Mar 2017 14:30:49 +0000 Subject: Make Bazel build with MSVC-default-toolchain Bazel After this change, a msys bazel can be built with a MSVC-default Bazel by adding --cpu=x64_windows_msys --host=x64_windows_msys See https://github.com/bazelbuild/bazel/issues/2627 -- Change-Id: Iaa82bf4dd911c5740b98d3b2739dfccca6203f79 Reviewed-on: https://cr.bazel.build/9293 PiperOrigin-RevId: 149532274 MOS_MIGRATED_REVID=149532274 --- compile.sh | 6 ++++++ src/BUILD | 7 +++++++ src/main/cpp/BUILD | 4 ++++ src/main/cpp/util/BUILD | 5 +++++ src/main/java/com/google/devtools/build/lib/BUILD | 1 + src/main/tools/BUILD | 1 + src/test/cpp/BUILD | 4 ++++ src/test/cpp/util/BUILD | 15 ++++++++++++++- src/test/java/com/google/devtools/build/lib/BUILD | 1 + .../com/google/devtools/build/lib/rules/repository/BUILD | 1 + src/test/native/BUILD | 9 +++++++++ src/test/shell/bazel/BUILD | 1 + 12 files changed, 54 insertions(+), 1 deletion(-) diff --git a/compile.sh b/compile.sh index 67223e6715..2b5c073f43 100755 --- a/compile.sh +++ b/compile.sh @@ -113,6 +113,12 @@ if [[ $PLATFORM == "darwin" ]] && \ xcodebuild -showsdks 2> /dev/null | grep -q '\-sdk iphonesimulator'; then EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS-} --define IPHONE_SDK=1" fi + +case "${PLATFORM}" in +msys*|mingw*) + EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS-} --cpu=x64_windows_msys --host_cpu=x64_windows_msys" +esac + source scripts/bootstrap/bootstrap.sh if [ $DO_COMPILE ]; then diff --git a/src/BUILD b/src/BUILD index 60001d67ef..d350c6ac6f 100644 --- a/src/BUILD +++ b/src/BUILD @@ -9,6 +9,7 @@ filegroup( ":darwin": ["//src/main/native:libunix.dylib"], ":darwin_x86_64": ["//src/main/native:libunix.dylib"], ":windows": ["//src/main/native:windows_jni.dll"], + ":windows_msys": ["//src/main/native:windows_jni.dll"], ":windows_msvc": ["//src/main/native:windows_jni.dll"], "//conditions:default": ["//src/main/native:libunix.so"], }), @@ -279,6 +280,12 @@ config_setting( visibility = ["//visibility:public"], ) +config_setting( + name = "windows_msys", + values = {"cpu": "x64_windows_msys"}, + visibility = ["//visibility:public"], +) + filegroup( name = "srcs", srcs = glob(["**"]) + [ diff --git a/src/main/cpp/BUILD b/src/main/cpp/BUILD index f174f3f2f2..05a53c5ff4 100644 --- a/src/main/cpp/BUILD +++ b/src/main/cpp/BUILD @@ -26,6 +26,9 @@ cc_library( "//src:windows": [ "blaze_util_windows.cc", ], + "//src:windows_msys": [ + "blaze_util_windows.cc", + ], "//src:windows_msvc": [ "blaze_util_windows.cc", ], @@ -60,6 +63,7 @@ cc_library( "//src/main/cpp/util:blaze_exit_code", ] + select({ "//src:windows": ["//src/main/native:windows_jni_lib"], + "//src:windows_msys": ["//src/main/native:windows_jni_lib"], "//src:windows_msvc": ["//src/main/native:windows_jni_lib"], "//conditions:default": [], }), diff --git a/src/main/cpp/util/BUILD b/src/main/cpp/util/BUILD index 2b821a7764..6bd3b44488 100644 --- a/src/main/cpp/util/BUILD +++ b/src/main/cpp/util/BUILD @@ -35,6 +35,9 @@ cc_library( "//src:windows": [ "file_windows.cc", ], + "//src:windows_msys": [ + "file_windows.cc", + ], "//src:windows_msvc": [ "file_windows.cc", ], @@ -57,6 +60,7 @@ cc_library( ":strings", ] + select({ "//src:windows": ["//src/main/native:windows_jni_lib"], + "//src:windows_msys": ["//src/main/native:windows_jni_lib"], "//src:windows_msvc": ["//src/main/native:windows_jni_lib"], "//conditions:default": [], }), @@ -66,6 +70,7 @@ cc_library( name = "errors", srcs = ["errors.cc"] + select({ "//src:windows": ["errors_windows.cc"], + "//src:windows_msys": ["errors_windows.cc"], "//src:windows_msvc": ["errors_windows.cc"], "//conditions:default": ["errors_posix.cc"], }), diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index 20047b5c3f..604b5128ef 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -70,6 +70,7 @@ java_library( resources = select({ # todo(dslomov): Get rid of this whole library on Windows. "//src:windows": [], + "//src:windows_msys": [], "//src:windows_msvc": [], "//conditions:default": ["//src/main/native:libunix.so"], }), diff --git a/src/main/tools/BUILD b/src/main/tools/BUILD index d7bb93bdcf..3ddad54f9c 100644 --- a/src/main/tools/BUILD +++ b/src/main/tools/BUILD @@ -32,6 +32,7 @@ cc_binary( "//src:darwin_x86_64": ["dummy-sandbox.c"], "//src:freebsd": ["dummy-sandbox.c"], "//src:windows": ["dummy-sandbox.c"], + "//src:windows_msys": ["dummy-sandbox.c"], "//src:windows_msvc": ["dummy-sandbox.c"], "//conditions:default": [ "linux-sandbox.cc", diff --git a/src/test/cpp/BUILD b/src/test/cpp/BUILD index 057c721c59..6278f5bef7 100644 --- a/src/test/cpp/BUILD +++ b/src/test/cpp/BUILD @@ -15,6 +15,10 @@ cc_test( "blaze_util_test.cc", "blaze_util_windows_test.cc", ], + "//src:windows_msys": [ + "blaze_util_test.cc", + "blaze_util_windows_test.cc", + ], "//src:windows_msvc": [ "blaze_util_windows_test.cc", ], diff --git a/src/test/cpp/util/BUILD b/src/test/cpp/util/BUILD index 18d516786e..46f4e2ee2a 100644 --- a/src/test/cpp/util/BUILD +++ b/src/test/cpp/util/BUILD @@ -23,7 +23,9 @@ cc_test( size = "small", srcs = ["file_test.cc"] + select({ "//src:windows": [ - "file_posix_test.cc", + "file_windows_test.cc", + ], + "//src:windows_msys": [ "file_windows_test.cc", ], "//src:windows_msvc": [ @@ -43,6 +45,10 @@ cc_test( ":windows_test_util", "//src/main/native:windows_jni_lib", ], + "//src:windows_msys": [ + ":windows_test_util", + "//src/main/native:windows_jni_lib", + ], "//src:windows_msvc": [ ":windows_test_util", "//src/main/native:windows_jni_lib", @@ -86,11 +92,13 @@ cc_library( testonly = 1, srcs = select({ "//src:windows": ["windows_test_util.cc"], + "//src:windows_msys": ["windows_test_util.cc"], "//src:windows_msvc": ["windows_test_util.cc"], "//conditions:default": [], }), hdrs = select({ "//src:windows": ["windows_test_util.h"], + "//src:windows_msys": ["windows_test_util.h"], "//src:windows_msvc": ["windows_test_util.h"], "//conditions:default": [], }), @@ -105,6 +113,7 @@ cc_test( size = "small", srcs = select({ "//src:windows": ["windows_test_util_test.cc"], + "//src:windows_msys": ["windows_test_util_test.cc"], "//src:windows_msvc": ["windows_test_util_test.cc"], "//conditions:default": ["dummy_test.cc"], }), @@ -113,6 +122,10 @@ cc_test( ":windows_test_util", "//third_party:gtest", ], + "//src:windows_msys": [ + ":windows_test_util", + "//third_party:gtest", + ], "//src:windows_msvc": [ ":windows_test_util", "//third_party:gtest", diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD index b1bbf23d64..2aa95f5a91 100644 --- a/src/test/java/com/google/devtools/build/lib/BUILD +++ b/src/test/java/com/google/devtools/build/lib/BUILD @@ -23,6 +23,7 @@ ALL_WINDOWS_TESTS = CROSS_PLATFORM_WINDOWS_TESTS + WINDOWS_ON_WINDOWS_TESTS JNI_LIB = select({ "//src:windows": ["//src/main/native:windows_jni.dll"], + "//src:windows_msys": ["//src/main/native:windows_jni.dll"], "//src:windows_msvc": ["//src/main/native:windows_jni.dll"], "//conditions:default": [ "//src/main/native:libunix.dylib", diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD index 2b281f0b50..ed24a5081f 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD +++ b/src/test/java/com/google/devtools/build/lib/rules/repository/BUILD @@ -8,6 +8,7 @@ java_test( name = "RepositoryTests", srcs = select({ "//src:windows": [":RepositoryTests_windows_srcs"], + "//src:windows_msys": [":RepositoryTests_windows_srcs"], "//src:windows_msvc": [":RepositoryTests_windows_srcs"], "//conditions:default": glob(["*.java"]), }), diff --git a/src/test/native/BUILD b/src/test/native/BUILD index be04c76466..4dd916fa8b 100644 --- a/src/test/native/BUILD +++ b/src/test/native/BUILD @@ -16,6 +16,10 @@ cc_test( "windows_util_test.cc", "windows_file_operations_test.cc", ], + "//src:windows_msys": [ + "windows_util_test.cc", + "windows_file_operations_test.cc", + ], "//src:windows_msvc": [ "windows_util_test.cc", "windows_file_operations_test.cc", @@ -28,6 +32,11 @@ cc_test( "//src/test/cpp/util:windows_test_util", "//third_party:gtest", ], + "//src:windows_msys": [ + "//src/main/native:windows_jni_lib", + "//src/test/cpp/util:windows_test_util", + "//third_party:gtest", + ], "//src:windows_msvc": [ "//src/main/native:windows_jni_lib", "//src/test/cpp/util:windows_test_util", diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD index 38029e025c..ba16b20a82 100644 --- a/src/test/shell/bazel/BUILD +++ b/src/test/shell/bazel/BUILD @@ -146,6 +146,7 @@ sh_test( "//src:darwin": [], "//src:darwin_x86_64": [], "//src:windows": [], + "//src:windows_msys": [], "//src:windows_msvc": [], "//conditions:default": ["//src/test/shell/bazel/testdata:bazel_toolchain_test_project_pkg"], }), -- cgit v1.2.3