aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-02-15 16:15:03 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-16 09:39:56 +0000
commit9d40a60efec40add9443edbd75b77cdccbbc43dc (patch)
tree5f8db65400fcd5a84cee4678505cff5b9ffb55ac
parentfa465f6f6216c5a3202964edf78e085cb19d5195 (diff)
On Windows, build ``bazel.exe`` instead of just ``bazel``.
Needed for #276. -- MOS_MIGRATED_REVID=114693711
-rwxr-xr-xcompile.sh8
-rwxr-xr-xscripts/bootstrap/buildenv.sh7
-rwxr-xr-xscripts/bootstrap/compile.sh5
-rw-r--r--src/BUILD20
4 files changed, 31 insertions, 9 deletions
diff --git a/compile.sh b/compile.sh
index 3a0869ada5..341a163416 100755
--- a/compile.sh
+++ b/compile.sh
@@ -91,10 +91,10 @@ if [ $DO_COMPILE ]; then
new_step 'Building Bazel with Bazel'
display "."
log "Building output/bazel"
- bazel_build src:bazel
- cp -f bazel-bin/src/bazel output/bazel
- chmod 0755 output/bazel
- BAZEL=$(pwd)/output/bazel
+ bazel_build "src:bazel${EXE_EXT}"
+ cp -f "bazel-bin/src/bazel${EXE_EXT}" "output/bazel${EXE_EXT}"
+ chmod 0755 "output/bazel${EXE_EXT}"
+ BAZEL="$(pwd)/output/bazel${EXE_EXT}"
fi
#
diff --git a/scripts/bootstrap/buildenv.sh b/scripts/bootstrap/buildenv.sh
index c2b30facf1..63d0897ba7 100755
--- a/scripts/bootstrap/buildenv.sh
+++ b/scripts/bootstrap/buildenv.sh
@@ -36,6 +36,13 @@ if [ "${MACHINE_TYPE}" = 'arm' -o "${MACHINE_TYPE}" = 'armv7l' -o "${MACHINE_TYP
MACHINE_IS_ARM='yes'
fi
+# Extension for executables.
+EXE_EXT=""
+case "${PLATFORM}" in
+msys*|mingw*)
+ EXE_EXT=".exe"
+esac
+
ATEXIT_=""
function atexit() {
ATEXIT_="$1; ${ATEXIT_}"
diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh
index f9e6d31093..9195e7a48c 100755
--- a/scripts/bootstrap/compile.sh
+++ b/scripts/bootstrap/compile.sh
@@ -31,9 +31,6 @@ unset _JAVA_OPTIONS
LDFLAGS=${LDFLAGS:-""}
-# Extension for executables (.exe on Windows).
-EXE_EXT=""
-
MSYS_DLLS=""
PATHSEP=":"
@@ -76,8 +73,6 @@ darwin)
msys*|mingw*)
# Use a simplified platform string.
PLATFORM="mingw"
- # Workaround for msys issue which causes omission of std::to_string.
- EXE_EXT=".exe"
PATHSEP=";"
# Find the latest available version of the SDK.
JAVA_HOME="${JAVA_HOME:-$(ls -d /c/Program\ Files/Java/jdk* | sort | tail -n 1)}"
diff --git a/src/BUILD b/src/BUILD
index 9741c3dc46..af54201a05 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -161,6 +161,26 @@ genrule(
"_notools",
]]
+# Build an executable named `bazel.exe`.
+# Works on all platforms but only makes sense on Windows.
+# Workaround for non-configurability of genrule's `outs` attribute.
+[genrule(
+ name = "bazel-bin" + suffix + ".exe",
+ srcs = [":bazel-bin" + suffix],
+ outs = ["bazel" + suffix + ".exe"],
+ cmd = "cp $(location :bazel-bin" + suffix + ") $@",
+ executable = 1,
+ output_to_bindir = 1,
+ visibility = [
+ "//scripts:__pkg__", # For bash completion generation
+ "//scripts/packages:__pkg__", # For installer generation
+ "//src/test:__subpackages__", # For integration tests
+ ],
+) for suffix in [
+ "",
+ "_notools",
+]]
+
config_setting(
name = "darwin",
values = {"cpu": "darwin"},