Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Damien Martin-Guillerez | f88f4d8 | 2015-09-25 13:56:55 +0000 | [diff] [blame] | 3 | # Copyright 2015 The Bazel Authors. All rights reserved. |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 4 | # |
| 5 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
| 12 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | # Script for building bazel from scratch without bazel |
| 18 | |
| 19 | PROTO_FILES=$(ls src/main/protobuf/*.proto) |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 20 | LIBRARY_JARS=$(find third_party -name '*.jar' | grep -Fv /javac.jar | grep -Fv /javac7.jar | grep -Fv JavaBuilder | grep -ve third_party/grpc/grpc.*jar | tr "\n" " ") |
| 21 | GRPC_JAVA_VERSION=0.15.0 |
| 22 | GRPC_LIBRARY_JARS=$(find third_party/grpc -name '*.jar' | grep -e .*${GRPC_JAVA_VERSION}.*jar | tr "\n" " ") |
| 23 | LIBRARY_JARS="${LIBRARY_JARS} ${GRPC_LIBRARY_JARS}" |
Damien Martin-Guillerez | e700e72 | 2016-06-30 15:06:39 +0200 | [diff] [blame] | 24 | DIRS=$(echo src/{java_tools/singlejar/java/com/google/devtools/build/zip,main/java,tools/xcode-common/java/com/google/devtools/build/xcode/{common,util}} third_party/java/dd_plist/java ${OUTPUT_DIR}/src) |
Lukacs Berki | 8b3b918 | 2016-04-14 08:29:05 +0000 | [diff] [blame] | 25 | EXCLUDE_FILES=src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 26 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 27 | mkdir -p ${OUTPUT_DIR}/classes |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 28 | mkdir -p ${OUTPUT_DIR}/src |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 29 | |
| 30 | # May be passed in from outside. |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 31 | ZIPOPTS="$ZIPOPTS" |
| 32 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 33 | unset JAVA_TOOL_OPTIONS |
| 34 | unset _JAVA_OPTIONS |
| 35 | |
| 36 | LDFLAGS=${LDFLAGS:-""} |
| 37 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 38 | MSYS_DLLS="" |
| 39 | PATHSEP=":" |
| 40 | |
| 41 | case "${PLATFORM}" in |
| 42 | linux) |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 43 | # JAVA_HOME must point to a Java installation. |
| 44 | JAVA_HOME="${JAVA_HOME:-$(readlink -f $(which javac) | sed 's_/bin/javac__')}" |
Philipp Wollermann | 19f3413 | 2015-06-12 08:39:25 +0000 | [diff] [blame] | 45 | if [ "${MACHINE_IS_64BIT}" = 'yes' ]; then |
| 46 | PROTOC=${PROTOC:-third_party/protobuf/protoc-linux-x86_64.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 47 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-linux-x86_64.exe} |
Philipp Wollermann | 19f3413 | 2015-06-12 08:39:25 +0000 | [diff] [blame] | 48 | else |
Zhong Wang | 8c28813 | 2015-08-12 15:06:08 +0000 | [diff] [blame] | 49 | if [ "${MACHINE_IS_ARM}" = 'yes' ]; then |
| 50 | PROTOC=${PROTOC:-third_party/protobuf/protoc-linux-arm32.exe} |
| 51 | else |
| 52 | PROTOC=${PROTOC:-third_party/protobuf/protoc-linux-x86_32.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 53 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-linux-x86_32.exe} |
Zhong Wang | 8c28813 | 2015-08-12 15:06:08 +0000 | [diff] [blame] | 54 | fi |
Philipp Wollermann | 19f3413 | 2015-06-12 08:39:25 +0000 | [diff] [blame] | 55 | fi |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 56 | ;; |
| 57 | |
Doug Rabson | 709bc61 | 2015-08-25 14:12:00 +0000 | [diff] [blame] | 58 | freebsd) |
Doug Rabson | 709bc61 | 2015-08-25 14:12:00 +0000 | [diff] [blame] | 59 | # JAVA_HOME must point to a Java installation. |
| 60 | JAVA_HOME="${JAVA_HOME:-/usr/local/openjdk8}" |
| 61 | # Note: the linux protoc binary works on freebsd using linux emulation. |
| 62 | # We choose the 32-bit version for maximum compatiblity since 64-bit |
| 63 | # linux binaries are only supported in FreeBSD-11. |
| 64 | PROTOC=${PROTOC:-third_party/protobuf/protoc-linux-x86_32.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 65 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-linux-x86_32.exe} |
Doug Rabson | 709bc61 | 2015-08-25 14:12:00 +0000 | [diff] [blame] | 66 | ;; |
| 67 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 68 | darwin) |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 69 | if [[ -z "$JAVA_HOME" ]]; then |
| 70 | JAVA_HOME="$(/usr/libexec/java_home -v ${JAVA_VERSION}+ 2> /dev/null)" \ |
| 71 | || fail "Could not find JAVA_HOME, please ensure a JDK (version ${JAVA_VERSION}+) is installed." |
| 72 | fi |
Philipp Wollermann | 19f3413 | 2015-06-12 08:39:25 +0000 | [diff] [blame] | 73 | if [ "${MACHINE_IS_64BIT}" = 'yes' ]; then |
| 74 | PROTOC=${PROTOC:-third_party/protobuf/protoc-osx-x86_64.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 75 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-osx-x86_64.exe} |
Philipp Wollermann | 19f3413 | 2015-06-12 08:39:25 +0000 | [diff] [blame] | 76 | else |
| 77 | PROTOC=${PROTOC:-third_party/protobuf/protoc-osx-x86_32.exe} |
| 78 | fi |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 79 | ;; |
| 80 | |
| 81 | msys*|mingw*) |
| 82 | # Use a simplified platform string. |
| 83 | PLATFORM="mingw" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 84 | PATHSEP=";" |
| 85 | # Find the latest available version of the SDK. |
| 86 | JAVA_HOME="${JAVA_HOME:-$(ls -d /c/Program\ Files/Java/jdk* | sort | tail -n 1)}" |
| 87 | # We do not use the JNI library on Windows. |
Googler | 8a0ce7b | 2015-07-22 09:10:08 +0000 | [diff] [blame] | 88 | if [ "${MACHINE_IS_64BIT}" = 'yes' ]; then |
| 89 | PROTOC=${PROTOC:-third_party/protobuf/protoc-windows-x86_64.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 90 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-windows-x86_64.exe} |
Googler | 8a0ce7b | 2015-07-22 09:10:08 +0000 | [diff] [blame] | 91 | else |
| 92 | PROTOC=${PROTOC:-third_party/protobuf/protoc-windows-x86_32.exe} |
dapengzhang0 | 3abcec1 | 2016-07-22 20:54:44 +0000 | [diff] [blame] | 93 | GRPC_JAVA_PLUGIN=${GRPC_JAVA_PLUGIN:-third_party/grpc/protoc-gen-grpc-java-0.15.0-windows-x86_32.exe} |
Googler | 8a0ce7b | 2015-07-22 09:10:08 +0000 | [diff] [blame] | 94 | fi |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 95 | esac |
| 96 | |
| 97 | [[ -x "${PROTOC-}" ]] \ |
| 98 | || fail "Protobuf compiler not found in ${PROTOC-}" |
| 99 | |
Alpha Lam | a1a79cb | 2016-05-15 19:13:52 +0000 | [diff] [blame] | 100 | [[ -x "${GRPC_JAVA_PLUGIN-}" ]] \ |
| 101 | || fail "gRPC Java plugin not found in ${GRPC_JAVA_PLUGIN-}" |
| 102 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 103 | # Check that javac -version returns a upper version than $JAVA_VERSION. |
Damien Martin-Guillerez | 338dc56 | 2015-06-23 17:15:12 +0000 | [diff] [blame] | 104 | get_java_version |
| 105 | [ ${JAVA_VERSION#*.} -le ${JAVAC_VERSION#*.} ] || \ |
| 106 | fail "JDK version (${JAVAC_VERSION}) is lower than ${JAVA_VERSION}, please set \$JAVA_HOME." |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 107 | |
| 108 | JAR="${JAVA_HOME}/bin/jar" |
| 109 | |
| 110 | # Compiles java classes. |
| 111 | function java_compilation() { |
| 112 | local name=$1 |
| 113 | local directories=$2 |
Lukacs Berki | e21e592 | 2016-04-12 12:22:20 +0000 | [diff] [blame] | 114 | local excludes=$3 |
| 115 | local library_jars=$4 |
| 116 | local output=$5 |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 117 | |
| 118 | local classpath=${library_jars// /$PATHSEP}:$5 |
| 119 | local sourcepath=${directories// /$PATHSEP} |
| 120 | |
| 121 | tempdir |
| 122 | local tmp="${NEW_TMPDIR}" |
| 123 | local paramfile="${tmp}/param" |
Lukacs Berki | e21e592 | 2016-04-12 12:22:20 +0000 | [diff] [blame] | 124 | local filelist="${tmp}/filelist" |
| 125 | local excludefile="${tmp}/excludefile" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 126 | touch $paramfile |
| 127 | |
| 128 | mkdir -p "${output}/classes" |
| 129 | |
| 130 | # Compile .java files (incl. generated ones) using javac |
| 131 | log "Compiling $name code..." |
Lukacs Berki | e21e592 | 2016-04-12 12:22:20 +0000 | [diff] [blame] | 132 | find ${directories} -name "*.java" | sort > "$filelist" |
| 133 | # Quotes around $excludes intentionally omitted in the for statement so that |
| 134 | # it's split on spaces |
| 135 | (for i in $excludes; do |
| 136 | echo $i |
| 137 | done) | sort > "$excludefile" |
| 138 | |
| 139 | comm -23 "$filelist" "$excludefile" > "$paramfile" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 140 | |
| 141 | if [ ! -z "$BAZEL_DEBUG_JAVA_COMPILATION" ]; then |
| 142 | echo "directories=${directories}" >&2 |
| 143 | echo "classpath=${classpath}" >&2 |
| 144 | echo "sourcepath=${sourcepath}" >&2 |
| 145 | echo "libraries=${library_jars}" >&2 |
| 146 | echo "output=${output}/classes" >&2 |
| 147 | echo "List of compiled files:" >&2 |
| 148 | cat "$paramfile" >&2 |
| 149 | fi |
| 150 | |
Julio Merino | 5909d9d | 2016-02-25 21:44:31 +0000 | [diff] [blame] | 151 | run "${JAVAC}" -classpath "${classpath}" -sourcepath "${sourcepath}" \ |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 152 | -d "${output}/classes" -source "$JAVA_VERSION" -target "$JAVA_VERSION" \ |
Damien Martin-Guillerez | 45d18d4 | 2015-09-21 11:45:10 +0000 | [diff] [blame] | 153 | -encoding UTF-8 "@${paramfile}" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 154 | |
| 155 | log "Extracting helper classes for $name..." |
| 156 | for f in ${library_jars} ; do |
Julio Merino | 5909d9d | 2016-02-25 21:44:31 +0000 | [diff] [blame] | 157 | run unzip -qn ${f} -d "${output}/classes" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 158 | done |
| 159 | } |
| 160 | |
| 161 | # Create the deploy JAR |
| 162 | function create_deploy_jar() { |
| 163 | local name=$1 |
| 164 | local mainClass=$2 |
| 165 | local output=$3 |
| 166 | shift 3 |
| 167 | local packages="" |
| 168 | for i in $output/classes/*; do |
| 169 | local package=$(basename $i) |
| 170 | if [[ "$package" != "META-INF" ]]; then |
| 171 | packages="$packages -C $output/classes $package" |
| 172 | fi |
| 173 | done |
| 174 | |
| 175 | log "Creating $name.jar..." |
| 176 | echo "Main-Class: $mainClass" > $output/MANIFEST.MF |
Julio Merino | 5909d9d | 2016-02-25 21:44:31 +0000 | [diff] [blame] | 177 | run "$JAR" cmf $output/MANIFEST.MF $output/$name.jar $packages "$@" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 178 | } |
| 179 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 180 | if [ -z "${BAZEL_SKIP_JAVA_COMPILATION}" ]; then |
| 181 | log "Compiling Java stubs for protocol buffers..." |
| 182 | for f in $PROTO_FILES ; do |
Alpha Lam | a1a79cb | 2016-05-15 19:13:52 +0000 | [diff] [blame] | 183 | run "${PROTOC}" -Isrc/main/protobuf/ --java_out=${OUTPUT_DIR}/src \ |
| 184 | --plugin=protoc-gen-grpc="${GRPC_JAVA_PLUGIN-}" \ |
| 185 | --grpc_out=${OUTPUT_DIR}/src "$f" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 186 | done |
| 187 | |
Lukacs Berki | e21e592 | 2016-04-12 12:22:20 +0000 | [diff] [blame] | 188 | java_compilation "Bazel Java" "$DIRS" "$EXCLUDE_FILES" "$LIBRARY_JARS" "${OUTPUT_DIR}" |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 189 | |
| 190 | # help files: all non java and BUILD files in src/main/java. |
| 191 | for i in $(find src/main/java -type f -a \! -name '*.java' -a \! -name 'BUILD' | sed 's|src/main/java/||'); do |
| 192 | mkdir -p $(dirname ${OUTPUT_DIR}/classes/$i) |
| 193 | cp src/main/java/$i ${OUTPUT_DIR}/classes/$i |
| 194 | done |
| 195 | |
Damien Martin-Guillerez | 12c68aa | 2016-01-15 13:18:11 +0000 | [diff] [blame] | 196 | # Overwrite tools.WORKSPACE, this is only for the bootstrap binary |
Damien Martin-Guillerez | be5b2eb | 2016-03-02 16:08:07 +0000 | [diff] [blame] | 197 | cat <<EOF >${OUTPUT_DIR}/classes/com/google/devtools/build/lib/bazel/rules/tools.WORKSPACE |
| 198 | local_repository(name = 'bazel_tools', path = __workspace_dir__) |
| 199 | bind(name = "cc_toolchain", actual = "@bazel_tools//tools/cpp:default-toolchain") |
| 200 | EOF |
Damien Martin-Guillerez | 12c68aa | 2016-01-15 13:18:11 +0000 | [diff] [blame] | 201 | |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 202 | create_deploy_jar "libblaze" "com.google.devtools.build.lib.bazel.BazelMain" \ |
Han-Wen Nienhuys | a4b6182 | 2015-11-09 13:55:44 +0000 | [diff] [blame] | 203 | ${OUTPUT_DIR} |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 204 | fi |
| 205 | |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 206 | log "Creating Bazel install base..." |
| 207 | ARCHIVE_DIR=${OUTPUT_DIR}/archive |
| 208 | mkdir -p ${ARCHIVE_DIR}/_embedded_binaries |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 209 | |
Damien Martin-Guillerez | dceee0e | 2016-01-18 11:57:26 +0000 | [diff] [blame] | 210 | # Dummy build-runfiles |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 211 | cat <<'EOF' >${ARCHIVE_DIR}/_embedded_binaries/build-runfiles${EXE_EXT} |
Damien Martin-Guillerez | 7a1d413 | 2016-08-05 11:37:09 +0000 | [diff] [blame] | 212 | #!/bin/bash |
Lukacs Berki | 25f3569 | 2016-08-04 10:38:36 +0000 | [diff] [blame] | 213 | mkdir -p $2 |
Damien Martin-Guillerez | dceee0e | 2016-01-18 11:57:26 +0000 | [diff] [blame] | 214 | cp $1 $2/MANIFEST |
| 215 | EOF |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 216 | chmod 0755 ${ARCHIVE_DIR}/_embedded_binaries/build-runfiles${EXE_EXT} |
Damien Martin-Guillerez | d47a8ef | 2015-06-10 11:54:50 +0000 | [diff] [blame] | 217 | |
Damien Martin-Guillerez | 8c04e9e | 2016-01-18 12:53:39 +0000 | [diff] [blame] | 218 | log "Creating process-wrapper..." |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 219 | cat <<'EOF' >${ARCHIVE_DIR}/_embedded_binaries/process-wrapper${EXE_EXT} |
Klaus Aehlig | 6dbcc2d | 2016-05-11 12:46:42 +0000 | [diff] [blame] | 220 | #!/bin/sh |
Damien Martin-Guillerez | ec758db | 2016-01-18 12:14:28 +0000 | [diff] [blame] | 221 | # Dummy process wrapper, does not support timeout |
| 222 | shift 2 |
Dmitry Lomov | 9bf3f6a | 2016-07-07 13:50:06 +0000 | [diff] [blame] | 223 | stdout="$1" |
| 224 | stderr="$2" |
| 225 | shift 2 |
| 226 | |
| 227 | if [ "$stdout" = "-" ] |
| 228 | then |
| 229 | if [ "$stderr" = "-" ] |
| 230 | then |
| 231 | "$@" |
| 232 | exit $? |
| 233 | else |
| 234 | "$@" 2>"$stderr" |
| 235 | exit $? |
| 236 | fi |
| 237 | else |
| 238 | if [ "$stderr" = "-" ] |
| 239 | then |
| 240 | "$@" >"$stdout" |
| 241 | exit $? |
| 242 | else |
| 243 | "$@" 2>"$stderr" >"$stdout" |
| 244 | exit $? |
| 245 | fi |
| 246 | fi |
| 247 | |
Klaus Aehlig | b297341 | 2016-03-16 13:55:40 +0000 | [diff] [blame] | 248 | |
| 249 | "$@" |
Damien Martin-Guillerez | ec758db | 2016-01-18 12:14:28 +0000 | [diff] [blame] | 250 | exit $? |
| 251 | EOF |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 252 | chmod 0755 ${ARCHIVE_DIR}/_embedded_binaries/process-wrapper${EXE_EXT} |
Philipp Wollermann | 43c4a1a | 2015-08-25 12:52:57 +0000 | [diff] [blame] | 253 | |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 254 | cp src/main/tools/build_interface_so ${ARCHIVE_DIR}/_embedded_binaries/build_interface_so |
| 255 | cp src/main/tools/jdk.BUILD ${ARCHIVE_DIR}/_embedded_binaries/jdk.BUILD |
| 256 | cp $OUTPUT_DIR/libblaze.jar ${ARCHIVE_DIR} |
Chris Parsons | 5eb86fe | 2016-07-21 15:24:55 +0000 | [diff] [blame] | 257 | cp tools/osx/xcode_locator_stub.sh ${ARCHIVE_DIR}/_embedded_binaries/xcode-locator |
Chris Parsons | f488818 | 2016-01-08 00:42:14 +0000 | [diff] [blame] | 258 | |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 259 | # bazel build using bootstrap version |
| 260 | function bootstrap_build() { |
Dmitry Lomov | f9f2e10 | 2016-01-29 14:26:46 +0000 | [diff] [blame] | 261 | "${JAVA_HOME}/bin/java" \ |
Philipp Wollermann | 74cb8c7 | 2016-07-15 14:01:37 +0000 | [diff] [blame] | 262 | -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Dfile.encoding=ISO-8859-1 \ |
Carmi Grushko | 4068a1d | 2016-06-22 18:43:13 +0000 | [diff] [blame] | 263 | -XX:HeapDumpPath=${OUTPUT_DIR} \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 264 | -Djava.util.logging.config.file=${OUTPUT_DIR}/javalog.properties \ |
Lukacs Berki | 2821972 | 2016-06-30 12:34:39 +0000 | [diff] [blame] | 265 | -Dio.bazel.EnableJni=0 \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 266 | -jar ${ARCHIVE_DIR}/libblaze.jar \ |
| 267 | --batch \ |
| 268 | --install_base=${ARCHIVE_DIR} \ |
| 269 | --output_base=${OUTPUT_DIR}/out \ |
| 270 | --install_md5= \ |
| 271 | --workspace_directory=${PWD} \ |
Kristina Chodorow | 4873e56 | 2016-06-20 14:17:50 +0000 | [diff] [blame] | 272 | --nofatal_event_bus_exceptions \ |
Klaus Aehlig | 276a8cd | 2016-07-11 12:06:07 +0000 | [diff] [blame] | 273 | ${BAZEL_DIR_STARTUP_OPTIONS} \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 274 | build \ |
Damien Martin-Guillerez | 51a204a | 2016-02-08 14:59:59 +0000 | [diff] [blame] | 275 | --ignore_unsupported_sandboxing \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 276 | --startup_time=329 --extract_data_time=523 \ |
Klaus Aehlig | 7038d3f | 2016-03-16 15:41:22 +0000 | [diff] [blame] | 277 | --rc_source=/dev/null --isatty=1 \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 278 | --ignore_client_env \ |
| 279 | --client_cwd=${PWD} \ |
Damien Martin-Guillerez | daffc35 | 2016-01-18 15:20:32 +0000 | [diff] [blame] | 280 | "${@}" |
| 281 | } |