blob: b101b0cb224260df3b02db2cbb1986a84db38a7b [file] [log] [blame]
brettwa874dcc2015-08-28 23:59:181# Copyright 2015 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
thomasanderson018ffc7f2017-06-22 01:25:335import("//build/config/c++/c++.gni")
brettwa874dcc2015-08-28 23:59:186import("//build/config/chrome_build.gni")
dpranke3b870612015-09-10 23:42:047import("//build/config/features.gni")
brettw4cab0f12015-09-14 21:40:018import("//build/config/sanitizers/sanitizers.gni")
thomasanderson7a01af42016-10-18 21:22:429import("//build/config/sysroot.gni")
Takuto Ikuta36541eb82018-08-01 02:09:5610import("//build/util/lastchange.gni")
raphael.kubo.da.costadc683d22016-09-17 19:41:1311import("//build/util/process_version.gni")
brettwa874dcc2015-08-28 23:59:1812import("//build/util/version.gni")
Dirk Prankeccc0c362017-09-28 22:15:1113import("//components/nacl/features.gni")
Xiaohan Wang7b76fce32018-10-01 23:21:2914import("//third_party/widevine/cdm/widevine.gni")
Tom Anderson991f4aa2020-05-05 03:42:2315import("//ui/gl/features.gni")
brettwa874dcc2015-08-28 23:59:1816
Xiaohan Wang7b76fce32018-10-01 23:21:2917if (bundle_widevine_cdm) {
Xiaohan Wangcc32f2e2018-01-30 01:09:0518 import("//media/cdm/library_cdm/cdm_paths.gni")
xhwangc3a252b2016-05-23 02:35:4819}
20
Tom Anderson372cee72018-02-23 19:00:1321declare_args() {
22 # Enables checks that ensure the packages are installable on all supported
23 # distributions.
24 enable_distro_version_check = true
Olivier Tilloy70e8efc2020-04-01 22:13:0325
26 # Enable building snap packages
27 enable_snap_package = false
Tom Anderson372cee72018-02-23 19:00:1328}
29
sbcfa8f43b2016-10-05 17:11:3530assert(is_linux)
brettwa874dcc2015-08-28 23:59:1831
Tom Anderson7f6acf62017-09-08 03:13:0932packaging_files_executables = [
Tom Andersone068dcb2017-09-01 18:31:2133 "$root_out_dir/chrome",
34 "$root_out_dir/chrome_sandbox",
Joshua Perazace68e2f2019-09-23 18:44:2435 "$root_out_dir/crashpad_handler",
Tom Andersone068dcb2017-09-01 18:31:2136]
Tom Anderson7f6acf62017-09-08 03:13:0937packaging_files_shlibs = []
Tom Andersone068dcb2017-09-01 18:31:2138
39if (enable_nacl) {
Tom Anderson7f6acf62017-09-08 03:13:0940 packaging_files_executables += [
Tom Andersone068dcb2017-09-01 18:31:2141 "$root_out_dir/nacl_helper",
42 "$root_out_dir/nacl_helper_bootstrap",
43 ]
44
45 if (current_cpu == "x86") {
Tom Anderson7f6acf62017-09-08 03:13:0946 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2147 } else if (current_cpu == "x64") {
Tom Anderson7f6acf62017-09-08 03:13:0948 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2149 } else if (current_cpu == "arm") {
Tom Anderson7f6acf62017-09-08 03:13:0950 packaging_files_executables += [ "$root_out_dir/nacl_irt_arm.nexe" ]
Milko Leporis0f74ee82017-10-02 22:37:0751 } else if (current_cpu == "mipsel") {
52 packaging_files_executables += [ "$root_out_dir/nacl_irt_mips32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2153 }
54}
55
Xiaohan Wang7b76fce32018-10-01 23:21:2956if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:3557 packaging_files_shlibs +=
58 [ "$root_out_dir/$widevine_cdm_path/libwidevinecdm.so" ]
Tom Andersone068dcb2017-09-01 18:31:2159}
60
Tom Anderson991f4aa2020-05-05 03:42:2361if (use_egl) {
62 packaging_files_shlibs += [
63 "$root_out_dir/libEGL.so",
64 "$root_out_dir/libGLESv2.so",
65 ]
66}
67
68if (enable_swiftshader) {
69 packaging_files_shlibs += [
70 "$root_out_dir/swiftshader_libEGL.so",
71 "$root_out_dir/swiftshader_libGLESv2.so",
72 ]
73}
74
Tom Anderson7f6acf62017-09-08 03:13:0975packaging_files_binaries = packaging_files_executables + packaging_files_shlibs
76
Tom Anderson991f4aa2020-05-05 03:42:2377copy("swiftshader_libs") {
78 sources = [
79 "$root_out_dir/swiftshader/libEGL.so",
80 "$root_out_dir/swiftshader/libGLESv2.so",
81 ]
82 outputs = [ "$root_out_dir/swiftshader_{{source_file_part}}" ]
83 public_deps = [
84 "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL",
85 "//third_party/swiftshader/src/OpenGL/libGLESv2:swiftshader_libGLESv2",
86 ]
87}
88
Tom Andersone068dcb2017-09-01 18:31:2189# TODO(mmoss) Any convenient way to get all the relevant build files?
90# (e.g. all locales, resources, etc.)
91packaging_files = packaging_files_binaries + [
92 "$root_out_dir/xdg-mime",
93 "$root_out_dir/xdg-settings",
94 "$root_out_dir/locales/en-US.pak",
Becca Hughesd89f6ff2017-12-13 13:20:4495 "$root_out_dir/MEIPreload/manifest.json",
96 "$root_out_dir/MEIPreload/preloaded_data.pb",
Tom Andersone068dcb2017-09-01 18:31:2197 ]
98
Tom Andersona80a9b42017-09-07 02:35:3399action_foreach("calculate_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50100 deps = [ ":installer_deps" ]
Tom Andersona80a9b42017-09-07 02:35:33101 script = "debian/calculate_package_deps.py"
Tom Andersone068dcb2017-09-01 18:31:21102 sources = packaging_files_binaries
Tom Anderson3a3c5882017-09-12 21:16:24103 inputs = [
104 "debian/deb_version.py",
Lei Zhange680353b2017-09-25 23:03:50105 "debian/dist_package_versions.json",
Tom Anderson3a3c5882017-09-12 21:16:24106 "debian/package_version_interval.py",
Tom Andersonfde653b02020-01-16 02:20:10107 "//third_party/dpkg-shlibdeps/dpkg-shlibdeps.pl",
Tom Anderson3a3c5882017-09-12 21:16:24108 ]
Nico Weber74eeac72020-01-17 00:16:50109 outputs = [ "$root_out_dir/deb_{{source_name_part}}.deps" ]
Tom Andersone068dcb2017-09-01 18:31:21110 args = [
111 "{{source}}",
112 rebase_path(sysroot, root_build_dir),
113 target_cpu,
Tom Andersona80a9b42017-09-07 02:35:33114 "deb_{{source_name_part}}.deps",
Tom Andersone068dcb2017-09-01 18:31:21115 ]
Tom Anderson372cee72018-02-23 19:00:13116 if (is_desktop_linux && target_cpu == "x64" && enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57117 args += [ "--distro-check" ]
118 }
Tom Andersone068dcb2017-09-01 18:31:21119}
120
Tom Andersona80a9b42017-09-07 02:35:33121action("merge_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50122 deps = [ ":calculate_deb_dependencies" ]
Tom Andersona80a9b42017-09-07 02:35:33123 script = "debian/merge_package_versions.py"
Tom Anderson21254bb2017-09-07 04:07:18124 additional_deps = "debian/additional_deps"
125 inputs = [
126 additional_deps,
Tom Anderson3a3c5882017-09-12 21:16:24127 "debian/deb_version.py",
128 "debian/package_version_interval.py",
Tom Andersona80a9b42017-09-07 02:35:33129 ]
Nico Weber74eeac72020-01-17 00:16:50130 outputs = [ "$root_out_dir/deb_common.deps" ]
Tom Anderson21254bb2017-09-07 04:07:18131 args = [
132 "deb_common.deps",
133 rebase_path(additional_deps, root_build_dir),
134 ]
Tom Andersona80a9b42017-09-07 02:35:33135 args += rebase_path(get_target_outputs(":calculate_deb_dependencies"),
136 root_build_dir)
137}
138
Tom Anderson7f6acf62017-09-08 03:13:09139action_foreach("calculate_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50140 deps = [ ":installer_deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09141 script = "rpm/calculate_package_deps.py"
142 sources = packaging_files_binaries
Nico Weber74eeac72020-01-17 00:16:50143 inputs = [ "rpm/dist_package_provides.json" ]
144 outputs = [ "$root_out_dir/rpm_{{source_name_part}}.deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09145 args = [
146 "{{source}}",
147 "rpm_{{source_name_part}}.deps",
148 ]
149 args += rebase_path(packaging_files_shlibs, root_build_dir)
Tom Anderson372cee72018-02-23 19:00:13150 if (is_desktop_linux && target_cpu == "x64" && enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57151 args += [ "--distro-check" ]
152 }
Tom Anderson7f6acf62017-09-08 03:13:09153}
154
155action("merge_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50156 deps = [ ":calculate_rpm_dependencies" ]
Tom Anderson7f6acf62017-09-08 03:13:09157 script = "rpm/merge_package_deps.py"
Tom Anderson3a3c5882017-09-12 21:16:24158 additional_deps = "rpm/additional_deps"
Nico Weber74eeac72020-01-17 00:16:50159 inputs = [ additional_deps ]
160 outputs = [ "$root_out_dir/rpm_common.deps" ]
Tom Anderson3a3c5882017-09-12 21:16:24161 args = [
162 "rpm_common.deps",
163 rebase_path(additional_deps, root_build_dir),
164 ]
Tom Anderson7f6acf62017-09-08 03:13:09165 args += rebase_path(get_target_outputs(":calculate_rpm_dependencies"),
166 root_build_dir)
167}
168
Tom Andersonce16a0c2017-09-02 00:27:51169action("strip_chrome_binary") {
170 prog_name = "$root_out_dir/chrome"
171 debug_file = prog_name + ".debug"
172 stripped_file = prog_name + ".stripped"
Nico Weber74eeac72020-01-17 00:16:50173 deps = [ "//chrome" ]
Tom Anderson2bb2b382017-09-26 20:21:53174 script = "//build/gn_run_binary.py"
Tom Andersonce16a0c2017-09-02 00:27:51175 sources = [
Lei Zhang57032b32019-07-03 21:26:10176 "//buildtools/third_party/eu-strip/bin/eu-strip",
Tom Andersonce16a0c2017-09-02 00:27:51177 prog_name,
178 ]
179 outputs = [
180 debug_file,
181 stripped_file,
182 ]
183 args = [
Michael Spangab3960d2019-01-30 17:06:47184 rebase_path("//buildtools/third_party/eu-strip/bin/eu-strip",
185 root_build_dir),
Tom Anderson2bb2b382017-09-26 20:21:53186 "-o",
Tom Andersonce16a0c2017-09-02 00:27:51187 rebase_path(stripped_file, root_build_dir),
Tom Anderson2bb2b382017-09-26 20:21:53188 "-f",
189 rebase_path(debug_file, root_build_dir),
190 rebase_path(prog_name, root_build_dir),
Tom Andersonce16a0c2017-09-02 00:27:51191 ]
192}
193
Tom Anderson991f4aa2020-05-05 03:42:23194# This target builds all "normal" Linux installers. You must set
195# is_component_build=false before building this target.
brettwa874dcc2015-08-28 23:59:18196group("linux") {
197 deps = [
198 ":beta",
199 ":stable",
200 ":unstable",
201 ]
202}
203
204branding_dir = "//chrome/app/theme/$branding_path_component"
205branding_dir_100 =
206 "//chrome/app/theme/default_100_percent/$branding_path_component"
207
208copy("common_packaging_files") {
209 visibility = [ ":*" ]
210 sources = [
Tom Anderson64b96142017-09-26 21:00:54211 "//chrome/app/resources/manpage.1.in",
brettwa874dcc2015-08-28 23:59:18212 "common/apt.include",
213 "common/default-app-block.template",
214 "common/default-app.template",
215 "common/desktop.template",
brettwa874dcc2015-08-28 23:59:18216 "common/installer.include",
217 "common/postinst.include",
218 "common/prerm.include",
219 "common/repo.cron",
220 "common/rpm.include",
221 "common/rpmrepo.cron",
222 "common/symlinks.include",
223 "common/variables.include",
224 "common/wrapper",
225 ]
226
sbcfa8f43b2016-10-05 17:11:35227 if (is_chrome_branded) {
tomas.popeladd765c02017-03-21 14:44:16228 sources += [
229 "common/google-chrome/google-chrome.appdata.xml.template",
230 "common/google-chrome/google-chrome.info",
231 ]
sbcfa8f43b2016-10-05 17:11:35232 } else {
tomas.popeladd765c02017-03-21 14:44:16233 sources += [
234 "common/chromium-browser/chromium-browser.appdata.xml",
235 "common/chromium-browser/chromium-browser.info",
236 ]
sbcfa8f43b2016-10-05 17:11:35237 }
238
Michael Spangab3960d2019-01-30 17:06:47239 sources += [ "//buildtools/third_party/eu-strip/bin/eu-strip" ]
brettwa874dcc2015-08-28 23:59:18240
Nico Weber74eeac72020-01-17 00:16:50241 outputs = [ "$root_out_dir/installer/common/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18242}
243
244copy("deb_packaging_files") {
245 visibility = [ ":*" ]
246 sources = [
247 "debian/build.sh",
248 "debian/changelog.template",
249 "debian/control.template",
250 "debian/debian.menu",
Tom Anderson0a880b62019-12-18 18:52:10251 "debian/manual_recommends",
brettwa874dcc2015-08-28 23:59:18252 "debian/postinst",
253 "debian/postrm",
254 "debian/prerm",
255 ]
Nico Weber74eeac72020-01-17 00:16:50256 outputs = [ "$root_out_dir/installer/debian/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18257}
258
259copy("theme_files") {
260 visibility = [ ":*" ]
261 sources = [
262 "$branding_dir/BRANDING",
263 "$branding_dir/linux/product_logo_32.xpm",
264 "$branding_dir/product_logo_128.png",
brettwa874dcc2015-08-28 23:59:18265 "$branding_dir/product_logo_24.png",
266 "$branding_dir/product_logo_256.png",
267 "$branding_dir/product_logo_48.png",
268 "$branding_dir/product_logo_64.png",
269 "$branding_dir_100/product_logo_16.png",
270 "$branding_dir_100/product_logo_32.png",
271 ]
Tom Andersonc8ebf272017-11-17 23:41:33272 if (is_chrome_branded) {
273 sources += [
274 "$branding_dir/linux/product_logo_32_beta.xpm",
275 "$branding_dir/linux/product_logo_32_dev.xpm",
276 "$branding_dir/product_logo_128_beta.png",
277 "$branding_dir/product_logo_128_dev.png",
Tom Andersonc8ebf272017-11-17 23:41:33278 "$branding_dir/product_logo_24_beta.png",
279 "$branding_dir/product_logo_24_dev.png",
280 "$branding_dir/product_logo_256_beta.png",
281 "$branding_dir/product_logo_256_dev.png",
282 "$branding_dir/product_logo_48_beta.png",
283 "$branding_dir/product_logo_48_dev.png",
284 "$branding_dir/product_logo_64_beta.png",
285 "$branding_dir/product_logo_64_dev.png",
286 "$branding_dir_100/product_logo_16_beta.png",
287 "$branding_dir_100/product_logo_16_dev.png",
288 "$branding_dir_100/product_logo_32_beta.png",
289 "$branding_dir_100/product_logo_32_dev.png",
290 ]
291 }
Nico Weber74eeac72020-01-17 00:16:50292 outputs = [ "$root_out_dir/installer/theme/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18293}
294
295if (!is_chromeos) {
296 copy("rpm_packaging_files") {
297 visibility = [ ":*" ]
298 sources = [
299 "rpm/build.sh",
300 "rpm/chrome.spec.template",
brettwa874dcc2015-08-28 23:59:18301 ]
Nico Weber74eeac72020-01-17 00:16:50302 outputs = [ "$root_out_dir/installer/rpm/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18303 }
304}
305
306process_version("save_build_info") {
307 # Just output the default version info variables (no template).
308 process_only = true
raphael.kubo.da.costadc683d22016-09-17 19:41:13309 sources = [
raphael.kubo.da.costadc683d22016-09-17 19:41:13310 "//chrome/VERSION",
311 branding_file_path,
Takuto Ikuta36541eb82018-08-01 02:09:56312 lastchange_file,
raphael.kubo.da.costadc683d22016-09-17 19:41:13313 ]
brettwa874dcc2015-08-28 23:59:18314 output = "$root_out_dir/installer/version.txt"
315}
316
317# Dependencies for all Linux installer targets.
318group("installer_deps") {
mcgrathr6edf192f2015-10-19 19:39:11319 # Though many of these things appear in data_deps further down the
320 # dependency chain, they must appear here as public_deps so that they can
321 # be listed as inputs to the actions that depend on ":installer_deps"
322 # and are guaranteed to have been built before those actions run.
323
brettwa874dcc2015-08-28 23:59:18324 public_deps = [
325 ":common_packaging_files",
326 ":deb_packaging_files",
327 ":save_build_info",
Tom Andersonce16a0c2017-09-02 00:27:51328 ":strip_chrome_binary",
brettwa874dcc2015-08-28 23:59:18329 ":theme_files",
330 "//chrome",
331 "//chrome:packed_resources",
Becca Hughesd89f6ff2017-12-13 13:20:44332 "//chrome/browser/resources/media/mei_preload:component",
brettwa874dcc2015-08-28 23:59:18333 "//sandbox/linux:chrome_sandbox",
Joshua Perazace68e2f2019-09-23 18:44:24334 "//third_party/crashpad/crashpad/handler:crashpad_handler",
brettwa874dcc2015-08-28 23:59:18335 ]
dpranke3b870612015-09-10 23:42:04336 if (enable_nacl) {
mcgrathr6edf192f2015-10-19 19:39:11337 public_deps += [
brettwf4b4a4282015-12-16 00:41:13338 "//components/nacl/loader:nacl_helper",
mcgrathr6edf192f2015-10-19 19:39:11339
340 # These are data_deps of nacl_helper, but that is not enough,
341 # as explained above.
342 "//native_client/src/trusted/service_runtime/linux:bootstrap",
343 "//ppapi/native_client:irt",
344 ]
dpranke3b870612015-09-10 23:42:04345 }
Xiaohan Wang7b76fce32018-10-01 23:21:29346 if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:35347 public_deps += [ "//third_party/widevine/cdm" ]
brettwa874dcc2015-08-28 23:59:18348 }
Tom Anderson991f4aa2020-05-05 03:42:23349 if (use_egl) {
350 public_deps += [
351 "//third_party/angle:libEGL",
352 "//third_party/angle:libGLESv2",
353 ]
354 }
355 if (enable_swiftshader) {
356 public_deps += [ ":swiftshader_libs" ]
357 }
brettwa874dcc2015-08-28 23:59:18358 if (!is_chromeos) {
359 public_deps += [ ":rpm_packaging_files" ]
360 }
361}
362
363# Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
364#
365# channel:
366# Name of the channel.
367template("linux_package") {
368 assert(defined(invoker.channel))
369 channel = invoker.channel
370
Olivier Tilloy70e8efc2020-04-01 22:13:03371 if (is_chrome_branded) {
372 package = "google-chrome"
373 } else {
374 package = "chromium-browser"
375 }
376
brettwa874dcc2015-08-28 23:59:18377 deb_target_name = "${target_name}_deb"
378 action(deb_target_name) {
379 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53380 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18381
382 if (current_cpu == "x86") {
383 deb_arch = "i386"
384 } else if (current_cpu == "x64") {
385 deb_arch = "amd64"
386 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28387 deb_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53388 } else if (current_cpu == "arm64") {
389 deb_arch = "arm64"
Milko Leporis0f74ee82017-10-02 22:37:07390 } else if (current_cpu == "mipsel") {
391 deb_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19392 } else if (current_cpu == "mips64el") {
393 deb_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18394 } else {
395 assert(false, "Linux installer not configured for this architecture.")
396 }
397
Tom Andersone068dcb2017-09-01 18:31:21398 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50399 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}-1_${deb_arch}.deb" ]
brettwa874dcc2015-08-28 23:59:18400
401 args = [
brettwa874dcc2015-08-28 23:59:18402 rebase_path("$root_out_dir/installer/debian/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18403 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28404 deb_arch,
brettwa874dcc2015-08-28 23:59:18405 "-c",
406 invoker.channel,
407 "-d",
408 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35409 "-o",
410 rebase_path(root_out_dir, root_build_dir),
thomasanderson7a01af42016-10-18 21:22:42411 "-s",
Tom Anderson04125932017-11-28 03:13:13412 rebase_path(sysroot, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42413 "-t",
414 target_os,
brettwa874dcc2015-08-28 23:59:18415 ]
Tom Andersoncae008e2017-09-01 01:47:35416 if (is_official_build) {
417 args += [ "-f" ]
418 }
brettwa874dcc2015-08-28 23:59:18419 deps = [
420 ":installer_deps",
Tom Anderson21254bb2017-09-07 04:07:18421 ":merge_deb_dependencies",
brettwa874dcc2015-08-28 23:59:18422 ]
423 }
424
425 if (!is_chromeos) {
426 rpm_target_name = "${target_name}_rpm"
427 action(rpm_target_name) {
428 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53429 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18430
431 if (current_cpu == "x86") {
432 rpm_arch = "i386"
433 } else if (current_cpu == "x64") {
434 rpm_arch = "x86_64"
435 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28436 rpm_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53437 } else if (current_cpu == "arm64") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28438 rpm_arch = "aarch64"
Milko Leporis0f74ee82017-10-02 22:37:07439 } else if (current_cpu == "mipsel") {
440 rpm_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19441 } else if (current_cpu == "mips64el") {
442 rpm_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18443 } else {
444 assert(false, "Linux installer not configured for this architecture.")
445 }
446
Tom Andersone068dcb2017-09-01 18:31:21447 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50448 outputs = [ "$root_out_dir/${package}-${channel}-${chrome_version_full}-1.${rpm_arch}.rpm" ]
brettwa874dcc2015-08-28 23:59:18449
450 args = [
brettwa874dcc2015-08-28 23:59:18451 rebase_path("$root_out_dir/installer/rpm/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18452 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28453 rpm_arch,
brettwa874dcc2015-08-28 23:59:18454 "-c",
455 invoker.channel,
456 "-d",
457 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35458 "-o",
459 rebase_path(root_out_dir, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42460 "-t",
461 target_os,
brettwa874dcc2015-08-28 23:59:18462 ]
Tom Andersoncae008e2017-09-01 01:47:35463 if (is_official_build) {
464 args += [ "-f" ]
465 }
brettwa874dcc2015-08-28 23:59:18466 deps = [
467 ":installer_deps",
Tom Anderson3a3c5882017-09-12 21:16:24468 ":merge_rpm_dependencies",
brettwa874dcc2015-08-28 23:59:18469 ]
470 }
Olivier Tilloy70e8efc2020-04-01 22:13:03471
472 if (enable_snap_package) {
473 snap_target_name = "${target_name}_snap"
474 action(snap_target_name) {
475 visibility = [ ":*" ]
476 deps = [
477 ":installer_deps",
478 ":save_build_info",
479 ]
480 script = "//build/gn_run_binary.py"
481 sources = [
482 "snap/chrome.launcher.in",
483 "snap/snapcraft.yaml.in",
484 ]
485 if (!is_chrome_branded) {
486 package = "chromium"
487 }
488 if (current_cpu == "x86") {
489 snap_arch = "i386"
490 } else if (current_cpu == "x64") {
491 snap_arch = "amd64"
492 } else if (current_cpu == "arm") {
493 snap_arch = "armhf"
494 } else if (current_cpu == "arm64") {
495 snap_arch = "arm64"
496 } else {
497 assert(false, "Linux installer not configured for this architecture.")
498 }
499 args = [
500 rebase_path("snap/build.sh", root_build_dir),
501 package,
502 channel,
503 chrome_version_full,
504 snap_arch,
505 target_os,
506 ]
507 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}_${snap_arch}.snap" ]
508 }
509 }
brettwa874dcc2015-08-28 23:59:18510 }
511
512 group(target_name) {
Nico Weber74eeac72020-01-17 00:16:50513 deps = [ ":$deb_target_name" ]
brettwa874dcc2015-08-28 23:59:18514 if (!is_chromeos) {
515 deps += [ ":$rpm_target_name" ]
Olivier Tilloy70e8efc2020-04-01 22:13:03516 if (enable_snap_package) {
517 deps += [ ":$snap_target_name" ]
518 }
brettwa874dcc2015-08-28 23:59:18519 }
520 }
521}
522
523# Standard packages.
524linux_package("stable") {
525 channel = "stable"
526}
527linux_package("beta") {
528 channel = "beta"
529}
530linux_package("unstable") {
531 channel = "unstable"
532}