aboutsummaryrefslogtreecommitdiffhomepage
path: root/compile.sh
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2015-06-05 10:50:43 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-06-05 11:34:40 +0000
commitd6f4808784f364ec40e000d69c82b7dd752c65e8 (patch)
tree4ace8d3f60dc52328a9667ec316cf80a55f00a6f /compile.sh
parent92e945ad89759610839f8855f19d32d375fd3da7 (diff)
Bootstrapping tools using Bazel
Added target to use java skylark rules to bootstrap JavaBuilder and SingleJar. Uses thoses target to bootstrap JavaBuilder and SingleJar and compiles all tools using Bazel. -- Change-Id: I5142917c8b31e04015fbab89382df36b4892d8c6 Reviewed-on: https://bazel-review.googlesource.com/#/c/1451/ MOS_MIGRATED_REVID=95281092
Diffstat (limited to 'compile.sh')
-rwxr-xr-xcompile.sh87
1 files changed, 40 insertions, 47 deletions
diff --git a/compile.sh b/compile.sh
index 7001939a70..48a498faa8 100755
--- a/compile.sh
+++ b/compile.sh
@@ -52,10 +52,6 @@ EXE_EXT=""
PROTO_FILES=$(ls src/main/protobuf/*.proto)
LIBRARY_JARS=$(find third_party -name *.jar | tr "\n" " ")
DIRS=$(echo src/{main/java,tools/xcode-common/java/com/google/devtools/build/xcode/{common,util}} output/src)
-SINGLEJAR_DIRS="src/java_tools/singlejar/java src/main/java/com/google/devtools/build/lib/shell"
-SINGLEJAR_LIBRARIES="third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar"
-BUILDJAR_DIRS="src/java_tools/buildjar/java/com/google/devtools/build/buildjar output/src/com/google/devtools/build/lib/view/proto"
-BUILDJAR_LIBRARIES="third_party/error_prone/error_prone_core-2.0.2.jar third_party/guava/guava-18.0.jar third_party/protobuf/protobuf-2.5.0.jar third_party/jsr305/jsr-305.jar"
MSYS_DLLS=""
PATHSEP=":"
@@ -316,32 +312,8 @@ EOF
output third_party/javascript
fi
-if [ -z "${BAZEL_SKIP_SINGLEJAR_COMPILATION}" ]; then
- # Compile singlejar, a jar suitable for deployment.
- java_compilation "SingleJar tool" "$SINGLEJAR_DIRS" "$SINGLEJAR_LIBRARIES" \
- "output/singlejar"
-
- create_deploy_jar "SingleJar_deploy" \
- "com.google.devtools.build.singlejar.SingleJar" "output/singlejar"
- mkdir -p tools/jdk
- cp -f output/singlejar/SingleJar_deploy.jar tools/jdk
-fi
-
-if [ -z "${BAZEL_SKIP_BUILDJAR_COMPILATION}" ]; then
- # Compile buildjar, a wrapper around javac.
- java_compilation "JavaBuilder tool" "$BUILDJAR_DIRS" "$BUILDJAR_LIBRARIES" \
- "output/buildjar" $JAVA_HOME/lib/tools.jar
-
- create_deploy_jar "JavaBuilder_deploy" \
- "com.google.devtools.build.buildjar.BazelJavaBuilder" "output/buildjar"
- mkdir -p tools/jdk
- cp -f output/buildjar/JavaBuilder_deploy.jar tools/jdk
-fi
-
cc_build "client" "objs" "output/client" ${BLAZE_CC_FILES[@]}
-LDFLAGS="$LDFLAGS -lz" cc_build "ijar" "ijar" "tools/jdk/ijar" ${IJAR_CC_FILES[@]}
-
if [ ! -z "$JNILIB" ] ; then
log "Compiling JNI libraries..."
for FILE in "${NATIVE_CC_FILES[@]}"; do
@@ -397,30 +369,51 @@ zip -qA output/bazel \
chmod 755 output/bazel
-if [[ $PLATFORM == "darwin" ]]; then
- log "Creating objc helper tools..."
-
- zip_common="src/tools/xcode-common/java/com/google/devtools/build/xcode/zip src/tools/xcode-common/java/com/google/devtools/build/xcode/util src/java_tools/singlejar/java/com/google/devtools/build/zip src/java_tools/singlejar/java/com/google/devtools/build/singlejar/ZipCombiner.java src/java_tools/singlejar/java/com/google/devtools/build/singlejar/ZipEntryFilter.java src/java_tools/singlejar/java/com/google/devtools/build/singlejar/CopyEntryFilter.java"
-
- java_compilation "actoolzip" "src/tools/xcode-common/java/com/google/devtools/build/xcode/actoolzip src/tools/xcode-common/java/com/google/devtools/build/xcode/zippingoutput ${zip_common}" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar" "output/actoolzip"
- create_deploy_jar "precomp_actoolzip_deploy" "com.google.devtools.build.xcode.actoolzip.ActoolZip" "output/actoolzip"
-
- java_compilation "ibtoolzip" "src/tools/xcode-common/java/com/google/devtools/build/xcode/ibtoolzip src/tools/xcode-common/java/com/google/devtools/build/xcode/zippingoutput ${zip_common}" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar" "output/ibtoolzip"
- create_deploy_jar "precomp_ibtoolzip_deploy" "com.google.devtools.build.xcode.ibtoolzip.IbtoolZip" "output/ibtoolzip"
+function bootstrap_tool() {
+ output/bazel --blazerc=/dev/null build \
+ --singlejar_top=//src/java_tools/singlejar:bootstrap_deploy.jar \
+ --javabuilder_top=//src/java_tools/buildjar:bootstrap_deploy.jar \
+ --javacopt="-source ${JAVA_VERSION} -target ${JAVA_VERSION}" \
+ "${@}"
+}
- java_compilation "momczip" "src/objc_tools/momczip/java/com/google/devtools/build/xcode/momczip src/tools/xcode-common/java/com/google/devtools/build/xcode/zippingoutput ${zip_common}" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar" "output/momczip"
- create_deploy_jar "precomp_momczip_deploy" "com.google.devtools.build.xcode.momczip.MomcZip" "output/momczip"
+# Compile ijar
+bootstrap_tool //third_party/ijar
+mkdir -p tools/jdk
+cp -f bazel-bin/third_party/ijar/ijar tools/jdk
+chmod 755 tools/jdk/ijar
- java_compilation "bundlemerge" "src/objc_tools/bundlemerge/java/com/google/devtools/build/xcode/bundlemerge src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge src/tools/xcode-common/java/com/google/devtools/build/xcode/common output/src/com/google/devtools/build/xcode/bundlemerge/proto/BundleMergeProtos.java ${zip_common} third_party/java/dd_plist src/main/java/com/google/devtools/common/options" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar third_party/protobuf/protobuf-2.5.0.jar" "output/bundlemerge"
- create_deploy_jar "precomp_bundlemerge_deploy" "com.google.devtools.build.xcode.bundlemerge.BundleMerge" "output/bundlemerge"
+if [ -z "${BAZEL_SKIP_SINGLEJAR_COMPILATION}" ]; then
+ # Compile singlejar, a jar suitable for deployment.
+ bootstrap_tool //src/java_tools/singlejar:SingleJar_deploy.jar
+ mkdir -p tools/jdk
+ cp -f bazel-bin/src/java_tools/singlejar/SingleJar_deploy.jar tools/jdk
+ chmod 644 tools/jdk/SingleJar_deploy.jar
+fi
- java_compilation "plmerge" "src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge src/tools/xcode-common/java/com/google/devtools/build/xcode/common third_party/java/dd_plist src/main/java/com/google/devtools/common/options ${zip_common}" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar" "output/plmerge"
- create_deploy_jar "precomp_plmerge_deploy" "com.google.devtools.build.xcode.plmerge.PlMerge" "output/plmerge"
+if [ -z "${BAZEL_SKIP_BUILDJAR_COMPILATION}" ]; then
+ bootstrap_tool //src/java_tools/buildjar:JavaBuilder_deploy.jar
+ mkdir -p tools/jdk
+ cp -f bazel-bin/src/java_tools/buildjar/JavaBuilder_deploy.jar tools/jdk
+ chmod 644 tools/jdk/JavaBuilder_deploy.jar
+fi
- java_compilation "xcodegen" "src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen src/main/java/com/google/devtools/common/options output/src/com/google/devtools/build/xcode/xcodegen/proto/XcodeGenProtos.java third_party/java/buck-ios-support/java src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge src/tools/xcode-common/java/com/google/devtools/build/xcode/common src/tools/xcode-common/java/com/google/devtools/build/xcode/util third_party/java/dd_plist" "third_party/guava/guava-18.0.jar third_party/jsr305/jsr-305.jar third_party/protobuf/protobuf-2.5.0.jar" "output/xcodegen"
- create_deploy_jar "precomp_xcodegen_deploy" "com.google.devtools.build.xcode.xcodegen.XcodeGen" "output/xcodegen"
+if [[ $PLATFORM == "darwin" ]] && [ -z "${BAZEL_SKIP_OBJCTOOLS_COMPILATION}" ]; then
+ log "Creating objc helper tools..."
- cp -f output/actoolzip/precomp_actoolzip_deploy.jar output/ibtoolzip/precomp_ibtoolzip_deploy.jar output/momczip/precomp_momczip_deploy.jar output/bundlemerge/precomp_bundlemerge_deploy.jar output/plmerge/precomp_plmerge_deploy.jar output/xcodegen/precomp_xcodegen_deploy.jar tools/objc/
+ OBJC_TOOLS="src/tools/xcode-common/java/com/google/devtools/build/xcode/actoolzip:actoolzip_deploy.jar \
+ src/tools/xcode-common/java/com/google/devtools/build/xcode/ibtoolzip:ibtoolzip_deploy.jar \
+ src/objc_tools/momczip:momczip_deploy.jar \
+ src/objc_tools/bundlemerge:bundlemerge_deploy.jar \
+ src/objc_tools/plmerge:plmerge_deploy.jar \
+ src/objc_tools/xcodegen:xcodegen_deploy.jar"
+ bootstrap_tool ${OBJC_TOOLS}
+
+ for i in ${OBJC_TOOLS}; do
+ p=bazel-bin/$(echo $i | sed "s|:|/|")
+ cp $p tools/objc/precomp_$(basename $p)
+ chmod 0644 tools/objc/precomp_$(basename $p)
+ done
fi
# Create a bazelrc file with the base_workspace directory in the package path.