Index: third_party/instrumented_libraries/scripts/build_and_package.sh |
diff --git a/third_party/instrumented_libraries/scripts/build_and_package.sh b/third_party/instrumented_libraries/scripts/build_and_package.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..0de0c914dfebf74802e7148817bbb667e85240af |
--- /dev/null |
+++ b/third_party/instrumented_libraries/scripts/build_and_package.sh |
@@ -0,0 +1,87 @@ |
+#!/bin/bash |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+set -eu |
+ |
+supported_build_types="msan-no-origins msan-chained-origins" |
+supported_releases="precise trusty" |
+ubuntu_release=$(lsb_release -cs) |
+ |
+function show_help { |
+ echo "Usage: build_and_package.sh <build_type>" |
+ echo "Supported build types: all ${supported_build_types}" |
+} |
+ |
+function build_libraries { |
+ local build_type=$1 |
+ case ${build_type} in |
+ "msan-chained-origins") |
+ local gyp_defines="msan=1 msan_track_origins=2" |
+ ;; |
+ "msan-no-origins") |
+ local gyp_defines="msan=1 msan_track_origins=0" |
+ ;; |
+ *) |
+ show_help |
+ exit 1 |
+ ;; |
+ esac |
+ |
+ local archive_name=${build_type}-${ubuntu_release} |
+ local out_dir=out-${archive_name} |
+ |
+ echo "Building instrumented libraries in ${out_dir}..." |
+ |
+ rm -rf $out_dir |
+ mkdir $out_dir |
+ |
+ GYP_DEFINES="${gyp_defines} \ |
+ use_instrumented_libraries=1 instrumented_libraries_jobs=8" \ |
+ GYP_GENERATOR_FLAGS="output_dir=${out_dir}" \ |
+ gclient runhooks |
+ |
+ ninja -j4 -C ${out_dir}/Release instrumented_libraries |
+ |
+ echo "Creating archive ${archive_name}.tgz..." |
+ |
+ files=$(ls -1 ${out_dir}/Release/instrumented_libraries) |
+ |
+ tar zcf ${archive_name}.tgz -C ${out_dir}/Release/instrumented_libraries \ |
+ --exclude="?san/*.txt" ${files} |
+ |
+ echo To upload, run: |
+ echo upload_to_google_storage.py -b \ |
+ chromium-instrumented-libraries ${archive_name}.tgz |
+ echo You should then commit the resulting .sha1 file. |
+} |
+ |
+if ! [[ "${supported_releases}" =~ ${ubuntu_release} ]] |
+then |
+ echo "Unsupported Ubuntu release: ${ubuntu_release}" |
+ echo "Supported releases: ${supported_releases}" |
+ exit 1 |
+fi |
+ |
+if [ -z "${1-}" ] |
+then |
+ show_help |
+ exit 0 |
+fi |
+ |
+if ! [[ "all ${supported_build_types}" =~ $1 ]] |
+then |
+ show_help |
+ exit 1 |
+fi |
+if [ "$1" == "all" ] |
+then |
+ for build_type in ${supported_build_types} |
+ do |
+ build_libraries ${build_type} |
+ done |
+else |
+ build_libraries $1 |
+fi |
+ |