Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 1 | # Packaging |
| 2 | |
Lukacs Berki | c4e74d1 | 2015-11-10 15:28:00 +0000 | [diff] [blame] | 3 | md5_cmd = "set -e -o pipefail && cat $(SRCS) | sort | %s | awk '{ print $$1; }' > $@" |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 4 | |
| 5 | # TODO(bazel-team): find a better way to handle dylib extensions. |
| 6 | filegroup( |
| 7 | name = "libunix", |
| 8 | srcs = select({ |
| 9 | ":darwin": ["//src/main/native:libunix.dylib"], |
Chris Parsons | 5d96a28 | 2015-10-29 17:14:20 +0000 | [diff] [blame] | 10 | ":darwin_x86_64": ["//src/main/native:libunix.dylib"], |
Dmitry Lomov | 458ccd0 | 2016-02-02 20:30:32 +0000 | [diff] [blame] | 11 | ":windows": [], |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 12 | "//conditions:default": ["//src/main/native:libunix.so"], |
| 13 | }), |
Kristina Chodorow | 3835893 | 2015-06-26 14:31:50 +0000 | [diff] [blame] | 14 | visibility = [ |
Kristina Chodorow | 3835893 | 2015-06-26 14:31:50 +0000 | [diff] [blame] | 15 | "//src/test/java:__pkg__", |
Kristina Chodorow | 0716303 | 2015-09-04 17:37:17 +0000 | [diff] [blame] | 16 | "//src/tools/generate_workspace:__pkg__", |
Kristina Chodorow | 3835893 | 2015-06-26 14:31:50 +0000 | [diff] [blame] | 17 | ], |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 18 | ) |
| 19 | |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 20 | [genrule( |
| 21 | name = "install_base_key-file" + suffix, |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 22 | srcs = [ |
Han-Wen Nienhuys | 27760a6 | 2015-11-30 17:27:34 +0000 | [diff] [blame] | 23 | "//src/main/java/com/google/devtools/build/lib:bazel/BazelServer_deploy.jar", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 24 | "//src/main/cpp:client", |
| 25 | ":libunix", |
| 26 | "//src/main/tools:build-runfiles", |
| 27 | "//src/main/tools:process-wrapper", |
Chris Parsons | f488818 | 2016-01-08 00:42:14 +0000 | [diff] [blame] | 28 | "//src/main/tools:xcode-locator", |
Thiago Farina | 24375ef | 2015-05-15 13:23:56 +0000 | [diff] [blame] | 29 | "//src/main/tools:namespace-sandbox", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 30 | "//src/main/tools:build_interface_so", |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 31 | ] + embedded_tools, |
| 32 | outs = ["install_base_key" + suffix], |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 33 | cmd = select({ |
| 34 | ":darwin": md5_cmd % "/sbin/md5", |
Chris Parsons | 5d96a28 | 2015-10-29 17:14:20 +0000 | [diff] [blame] | 35 | ":darwin_x86_64": md5_cmd % "/sbin/md5", |
Googler | bdbf75f | 2015-11-17 12:50:44 +0000 | [diff] [blame] | 36 | ":freebsd": md5_cmd % "/sbin/md5", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 37 | "//conditions:default": md5_cmd % "md5sum", |
| 38 | }), |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 39 | ) for suffix, embedded_tools in { |
| 40 | "": [":embedded_tools"], |
| 41 | "_notools": [], |
| 42 | }.items()] |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 43 | |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 44 | # Try to grab the java version from the java_toolchain. |
Damien Martin-Guillerez | 4bf2c1a | 2015-10-02 09:19:18 +0000 | [diff] [blame] | 45 | # Unfortunately, we don't have access to the javac options |
| 46 | # so we cannot get it from the command-line options. |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 47 | genquery( |
| 48 | name = "java_toolchain_content", |
| 49 | expression = "kind(java_toolchain, deps(//tools/defaults:java_toolchain))", |
| 50 | opts = ["--output=xml"], |
| 51 | scope = ["//tools/defaults:java_toolchain"], |
| 52 | ) |
| 53 | |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 54 | genrule( |
| 55 | name = "java-version", |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 56 | srcs = [":java_toolchain_content"], |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 57 | outs = ["java.version"], |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 58 | cmd = """ |
| 59 | VERSION_LINE=$$(cat $< | grep target_version); |
Lukacs Berki | 30bed8f | 2015-10-26 12:18:24 +0000 | [diff] [blame] | 60 | JAVA_VERSION=$$(echo $${VERSION_LINE} | sed 's/.*value="\\([^"]\\)".*/\\1/'); |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 61 | if [ -z "$${JAVA_VERSION}" ]; then |
Damien Martin-Guillerez | 9c5deb6 | 2015-09-15 07:38:26 +0000 | [diff] [blame] | 62 | echo "1.8" >$@ # Java 8 is the default |
Damien Martin-Guillerez | b6afdbd | 2015-05-27 18:29:18 +0000 | [diff] [blame] | 63 | elif [[ "$${JAVA_VERSION}" =~ ^[0-9]+$$ ]]; then |
| 64 | echo "1.$${JAVA_VERSION}" >$@ # Add 1. before 7 or 8 |
| 65 | else |
| 66 | echo "$${JAVA_VERSION}" >$@ |
| 67 | fi |
| 68 | """, |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 69 | ) |
| 70 | |
Damien Martin-Guillerez | 3d796fe | 2016-01-11 10:07:57 +0000 | [diff] [blame] | 71 | filegroup( |
| 72 | name = "darwin_tools", |
| 73 | srcs = [ |
| 74 | "//src/tools/xcode/actoolwrapper:actoolwrapper", |
| 75 | "//src/tools/xcode/ibtoolwrapper:ibtoolwrapper", |
| 76 | "//src/tools/xcode/momcwrapper:momcwrapper", |
| 77 | "//src/tools/xcode/swiftstdlibtoolwrapper:swiftstdlibtoolwrapper", |
| 78 | "//src/tools/xcode/environment:environment_plist", |
| 79 | "//src/tools/xcode/xcrunwrapper:xcrunwrapper", |
| 80 | "//src/objc_tools/bundlemerge:bundlemerge_deploy.jar", |
| 81 | "//src/objc_tools/plmerge:plmerge_deploy.jar", |
| 82 | "//src/objc_tools/xcodegen:xcodegen_deploy.jar", |
| 83 | "//src/tools/xcode/realpath:realpath", |
| 84 | ] + select({ |
| 85 | ":iphonesdk": ["//src/tools/xcode/stdredirect:StdRedirect.dylib"], |
| 86 | "//conditions:default": [], |
| 87 | }), |
| 88 | ) |
| 89 | |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 90 | genrule( |
Lukacs Berki | 8b2e6b8 | 2015-10-06 07:43:36 +0000 | [diff] [blame] | 91 | name = "embedded_tools", |
Damien Martin-Guillerez | 1299767 | 2015-09-03 21:54:08 +0000 | [diff] [blame] | 92 | srcs = [ |
Lukacs Berki | 6eaaf94 | 2015-10-27 13:04:58 +0000 | [diff] [blame] | 93 | ":create_embedded_tools.sh", |
Lukacs Berki | 8b2e6b8 | 2015-10-06 07:43:36 +0000 | [diff] [blame] | 94 | "//tools:embedded_tools_srcs", |
Damien Martin-Guillerez | 1299767 | 2015-09-03 21:54:08 +0000 | [diff] [blame] | 95 | "//third_party:srcs", |
Alex Humesky | 6d00468 | 2015-10-02 22:57:09 +0000 | [diff] [blame] | 96 | "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper:srcs", |
Lukacs Berki | 6eaaf94 | 2015-10-27 13:04:58 +0000 | [diff] [blame] | 97 | "//src/tools/android/java/com/google/devtools/build/android:embedded_tools", |
Googler | 5e34a3d | 2015-12-03 15:17:55 +0000 | [diff] [blame] | 98 | "//src/tools/android/java/com/google/devtools/build/android/ideinfo:embedded_tools", |
Lukacs Berki | 6eaaf94 | 2015-10-27 13:04:58 +0000 | [diff] [blame] | 99 | "//src/tools/android/java/com/google/devtools/build/android/idlclass:embedded_tools", |
Damien Martin-Guillerez | 1299767 | 2015-09-03 21:54:08 +0000 | [diff] [blame] | 100 | "//src/tools/android/java/com/google/devtools/build/android/incrementaldeployment:srcs", |
Lukacs Berki | 6eaaf94 | 2015-10-27 13:04:58 +0000 | [diff] [blame] | 101 | "//src/tools/android/java/com/google/devtools/build/android/ziputils:embedded_tools", |
Damien Martin-Guillerez | 1299767 | 2015-09-03 21:54:08 +0000 | [diff] [blame] | 102 | "//src/main/protobuf:srcs", |
Lukacs Berki | 9b1e3a2 | 2015-11-18 09:55:46 +0000 | [diff] [blame] | 103 | "//src/java_tools/buildjar:JavaBuilder_deploy.jar", |
| 104 | "//src/java_tools/singlejar:SingleJar_deploy.jar", |
| 105 | "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:GenClass_deploy.jar", |
Damien Martin-Guillerez | eea8efa | 2016-01-13 09:08:48 +0000 | [diff] [blame] | 106 | "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar", |
Lukacs Berki | 9b1e3a2 | 2015-11-18 09:55:46 +0000 | [diff] [blame] | 107 | "//third_party/ijar", |
Alex Humesky | 6ba5c97 | 2016-01-11 22:46:40 +0000 | [diff] [blame] | 108 | "//third_party/java/apkbuilder:embedded_tools", |
Damien Martin-Guillerez | 3d796fe | 2016-01-11 10:07:57 +0000 | [diff] [blame] | 109 | ] + select({ |
| 110 | ":darwin": [":darwin_tools"], |
| 111 | ":darwin_x86_64": [":darwin_tools"], |
| 112 | "//conditions:default": [], |
| 113 | }), |
Lukacs Berki | 8b2e6b8 | 2015-10-06 07:43:36 +0000 | [diff] [blame] | 114 | outs = ["embedded_tools.zip"], |
Lukacs Berki | 6eaaf94 | 2015-10-27 13:04:58 +0000 | [diff] [blame] | 115 | cmd = "$(location :create_embedded_tools.sh) $@ $(SRCS)", |
Damien Martin-Guillerez | 1299767 | 2015-09-03 21:54:08 +0000 | [diff] [blame] | 116 | ) |
| 117 | |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 118 | [genrule( |
| 119 | name = "package-zip" + suffix, |
| 120 | srcs = ([":embedded_tools.zip"] if embed else []) + [ |
| 121 | # The script assumes that the embedded tools zip (if exists) is the |
| 122 | # first item here, the deploy jar the second and install base key is the |
| 123 | # third |
Han-Wen Nienhuys | 27760a6 | 2015-11-30 17:27:34 +0000 | [diff] [blame] | 124 | "//src/main/java/com/google/devtools/build/lib:bazel/BazelServer_deploy.jar", |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 125 | "install_base_key" + suffix, |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 126 | "//src/main/cpp:client", |
| 127 | ":libunix", |
| 128 | "//src/main/tools:build-runfiles", |
| 129 | "//src/main/tools:process-wrapper", |
Chris Parsons | f488818 | 2016-01-08 00:42:14 +0000 | [diff] [blame] | 130 | "//src/main/tools:xcode-locator", |
Kristina Chodorow | b5ecdab | 2015-03-16 17:55:04 +0000 | [diff] [blame] | 131 | "//src/main/tools:jdk-support", |
Thiago Farina | 24375ef | 2015-05-15 13:23:56 +0000 | [diff] [blame] | 132 | "//src/main/tools:namespace-sandbox", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 133 | "//src/main/tools:build_interface_so", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 134 | ":java-version", |
| 135 | ], |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 136 | outs = ["package" + suffix + ".zip"], |
| 137 | cmd = "$(location :package-bazel.sh) $@ " + ("" if embed else "''") + " $(SRCS)", |
| 138 | tools = ["package-bazel.sh"], |
| 139 | ) for suffix, embed in [ |
| 140 | ("", True), |
| 141 | ("_notools", False), |
| 142 | ]] |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 143 | |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 144 | [genrule( |
| 145 | name = "bazel-bin" + suffix, |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 146 | srcs = [ |
| 147 | "//src/main/cpp:client", |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 148 | "package-zip" + suffix, |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 149 | ], |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 150 | outs = ["bazel" + suffix], |
| 151 | cmd = "cat $(location //src/main/cpp:client) $(location :package-zip" + suffix + ") > $@ && zip -qA $@", |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 152 | executable = 1, |
| 153 | output_to_bindir = 1, |
Damien Martin-Guillerez | 5f9c6ba | 2015-04-09 21:10:33 +0000 | [diff] [blame] | 154 | visibility = [ |
| 155 | "//scripts:__pkg__", # For bash completion generation |
Damien Martin-Guillerez | ab13f68 | 2015-07-28 08:19:32 +0000 | [diff] [blame] | 156 | "//scripts/packages:__pkg__", # For installer generation |
Damien Martin-Guillerez | 5f9c6ba | 2015-04-09 21:10:33 +0000 | [diff] [blame] | 157 | "//src/test:__subpackages__", # For integration tests |
| 158 | ], |
Lukacs Berki | eb851fe | 2015-10-19 10:52:31 +0000 | [diff] [blame] | 159 | ) for suffix in [ |
| 160 | "", |
| 161 | "_notools", |
| 162 | ]] |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 163 | |
Dmitry Lomov | 9d40a60 | 2016-02-15 16:15:03 +0000 | [diff] [blame^] | 164 | # Build an executable named `bazel.exe`. |
| 165 | # Works on all platforms but only makes sense on Windows. |
| 166 | # Workaround for non-configurability of genrule's `outs` attribute. |
| 167 | [genrule( |
| 168 | name = "bazel-bin" + suffix + ".exe", |
| 169 | srcs = [":bazel-bin" + suffix], |
| 170 | outs = ["bazel" + suffix + ".exe"], |
| 171 | cmd = "cp $(location :bazel-bin" + suffix + ") $@", |
| 172 | executable = 1, |
| 173 | output_to_bindir = 1, |
| 174 | visibility = [ |
| 175 | "//scripts:__pkg__", # For bash completion generation |
| 176 | "//scripts/packages:__pkg__", # For installer generation |
| 177 | "//src/test:__subpackages__", # For integration tests |
| 178 | ], |
| 179 | ) for suffix in [ |
| 180 | "", |
| 181 | "_notools", |
| 182 | ]] |
| 183 | |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 184 | config_setting( |
| 185 | name = "darwin", |
| 186 | values = {"cpu": "darwin"}, |
| 187 | visibility = ["//visibility:public"], |
| 188 | ) |
Doug Rabson | 709bc61 | 2015-08-25 14:12:00 +0000 | [diff] [blame] | 189 | |
| 190 | config_setting( |
Chris Parsons | 5d96a28 | 2015-10-29 17:14:20 +0000 | [diff] [blame] | 191 | name = "darwin_x86_64", |
| 192 | values = {"cpu": "darwin_x86_64"}, |
| 193 | visibility = ["//visibility:public"], |
| 194 | ) |
| 195 | |
| 196 | config_setting( |
Damien Martin-Guillerez | 3d796fe | 2016-01-11 10:07:57 +0000 | [diff] [blame] | 197 | name = "iphonesdk", |
| 198 | values = {"define": "IPHONE_SDK=1"}, |
| 199 | visibility = ["//visibility:public"], |
| 200 | ) |
| 201 | |
| 202 | config_setting( |
Doug Rabson | 709bc61 | 2015-08-25 14:12:00 +0000 | [diff] [blame] | 203 | name = "freebsd", |
| 204 | values = {"cpu": "freebsd"}, |
| 205 | visibility = ["//visibility:public"], |
| 206 | ) |
Dmitry Lomov | 197fd6a | 2015-12-06 21:53:16 +0000 | [diff] [blame] | 207 | |
| 208 | config_setting( |
| 209 | name = "windows", |
Dmitry Lomov | 458ccd0 | 2016-02-02 20:30:32 +0000 | [diff] [blame] | 210 | values = {"cpu": "x64_windows"}, |
Dmitry Lomov | 197fd6a | 2015-12-06 21:53:16 +0000 | [diff] [blame] | 211 | visibility = ["//visibility:public"], |
| 212 | ) |