blob: 29366fb5c5c857a0a235e9be6cd7483768444cc7 [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")
Yuta Hijikata2ae70cd2020-12-09 09:47:037import("//build/config/chromeos/ui_mode.gni")
dpranke3b870612015-09-10 23:42:048import("//build/config/features.gni")
brettw4cab0f12015-09-14 21:40:019import("//build/config/sanitizers/sanitizers.gni")
thomasanderson7a01af42016-10-18 21:22:4210import("//build/config/sysroot.gni")
Takuto Ikuta36541eb82018-08-01 02:09:5611import("//build/util/lastchange.gni")
raphael.kubo.da.costadc683d22016-09-17 19:41:1312import("//build/util/process_version.gni")
brettwa874dcc2015-08-28 23:59:1813import("//build/util/version.gni")
Dirk Prankeccc0c362017-09-28 22:15:1114import("//components/nacl/features.gni")
Xiaohan Wang7b76fce32018-10-01 23:21:2915import("//third_party/widevine/cdm/widevine.gni")
Tom Anderson991f4aa2020-05-05 03:42:2316import("//ui/gl/features.gni")
brettwa874dcc2015-08-28 23:59:1817
Xiaohan Wang7b76fce32018-10-01 23:21:2918if (bundle_widevine_cdm) {
Xiaohan Wangcc32f2e2018-01-30 01:09:0519 import("//media/cdm/library_cdm/cdm_paths.gni")
xhwangc3a252b2016-05-23 02:35:4820}
21
Tom Anderson372cee72018-02-23 19:00:1322declare_args() {
23 # Enables checks that ensure the packages are installable on all supported
24 # distributions.
25 enable_distro_version_check = true
Olivier Tilloy70e8efc2020-04-01 22:13:0326
27 # Enable building snap packages
Thomas Andersonfebdf3b2020-06-09 18:22:4928 enable_snap_package = false
Tom Anderson372cee72018-02-23 19:00:1329}
30
Sean McAllisterd3bd1532020-07-30 18:43:5731assert(is_linux || is_chromeos)
brettwa874dcc2015-08-28 23:59:1832
Tom Anderson7f6acf62017-09-08 03:13:0933packaging_files_executables = [
Tom Andersone068dcb2017-09-01 18:31:2134 "$root_out_dir/chrome",
35 "$root_out_dir/chrome_sandbox",
Joshua Perazace68e2f2019-09-23 18:44:2436 "$root_out_dir/crashpad_handler",
Tom Andersone068dcb2017-09-01 18:31:2137]
Tom Anderson7f6acf62017-09-08 03:13:0938packaging_files_shlibs = []
Tom Andersone068dcb2017-09-01 18:31:2139
40if (enable_nacl) {
Tom Anderson7f6acf62017-09-08 03:13:0941 packaging_files_executables += [
Tom Andersone068dcb2017-09-01 18:31:2142 "$root_out_dir/nacl_helper",
43 "$root_out_dir/nacl_helper_bootstrap",
44 ]
45
46 if (current_cpu == "x86") {
Tom Anderson7f6acf62017-09-08 03:13:0947 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2148 } else if (current_cpu == "x64") {
Tom Anderson7f6acf62017-09-08 03:13:0949 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2150 } else if (current_cpu == "arm") {
Tom Anderson7f6acf62017-09-08 03:13:0951 packaging_files_executables += [ "$root_out_dir/nacl_irt_arm.nexe" ]
Milko Leporis0f74ee82017-10-02 22:37:0752 } else if (current_cpu == "mipsel") {
53 packaging_files_executables += [ "$root_out_dir/nacl_irt_mips32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2154 }
55}
56
Xiaohan Wang7b76fce32018-10-01 23:21:2957if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:3558 packaging_files_shlibs +=
59 [ "$root_out_dir/$widevine_cdm_path/libwidevinecdm.so" ]
Tom Andersone068dcb2017-09-01 18:31:2160}
61
Tom Anderson991f4aa2020-05-05 03:42:2362if (use_egl) {
63 packaging_files_shlibs += [
64 "$root_out_dir/libEGL.so",
65 "$root_out_dir/libGLESv2.so",
66 ]
67}
68
69if (enable_swiftshader) {
70 packaging_files_shlibs += [
71 "$root_out_dir/swiftshader_libEGL.so",
72 "$root_out_dir/swiftshader_libGLESv2.so",
73 ]
74}
75
Tom Anderson7f6acf62017-09-08 03:13:0976packaging_files_binaries = packaging_files_executables + packaging_files_shlibs
77
Tom Anderson991f4aa2020-05-05 03:42:2378copy("swiftshader_libs") {
79 sources = [
80 "$root_out_dir/swiftshader/libEGL.so",
81 "$root_out_dir/swiftshader/libGLESv2.so",
82 ]
83 outputs = [ "$root_out_dir/swiftshader_{{source_file_part}}" ]
84 public_deps = [
85 "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL",
86 "//third_party/swiftshader/src/OpenGL/libGLESv2:swiftshader_libGLESv2",
87 ]
88}
89
Tom Andersone068dcb2017-09-01 18:31:2190# TODO(mmoss) Any convenient way to get all the relevant build files?
91# (e.g. all locales, resources, etc.)
92packaging_files = packaging_files_binaries + [
93 "$root_out_dir/xdg-mime",
94 "$root_out_dir/xdg-settings",
95 "$root_out_dir/locales/en-US.pak",
Becca Hughesd89f6ff2017-12-13 13:20:4496 "$root_out_dir/MEIPreload/manifest.json",
97 "$root_out_dir/MEIPreload/preloaded_data.pb",
Tom Andersone068dcb2017-09-01 18:31:2198 ]
99
Tom Andersona80a9b42017-09-07 02:35:33100action_foreach("calculate_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50101 deps = [ ":installer_deps" ]
Tom Andersona80a9b42017-09-07 02:35:33102 script = "debian/calculate_package_deps.py"
Tom Andersone068dcb2017-09-01 18:31:21103 sources = packaging_files_binaries
Tom Anderson3a3c5882017-09-12 21:16:24104 inputs = [
105 "debian/deb_version.py",
Lei Zhange680353b2017-09-25 23:03:50106 "debian/dist_package_versions.json",
Tom Anderson3a3c5882017-09-12 21:16:24107 "debian/package_version_interval.py",
Tom Andersonfde653b02020-01-16 02:20:10108 "//third_party/dpkg-shlibdeps/dpkg-shlibdeps.pl",
Tom Anderson3a3c5882017-09-12 21:16:24109 ]
Nico Weber74eeac72020-01-17 00:16:50110 outputs = [ "$root_out_dir/deb_{{source_name_part}}.deps" ]
Tom Andersone068dcb2017-09-01 18:31:21111 args = [
112 "{{source}}",
113 rebase_path(sysroot, root_build_dir),
114 target_cpu,
Tom Andersona80a9b42017-09-07 02:35:33115 "deb_{{source_name_part}}.deps",
Tom Andersone068dcb2017-09-01 18:31:21116 ]
Yuta Hijikata2ae70cd2020-12-09 09:47:03117 if ((is_linux || is_chromeos_lacros) && target_cpu == "x64" &&
118 enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57119 args += [ "--distro-check" ]
120 }
Tom Andersone068dcb2017-09-01 18:31:21121}
122
Tom Andersona80a9b42017-09-07 02:35:33123action("merge_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50124 deps = [ ":calculate_deb_dependencies" ]
Tom Andersona80a9b42017-09-07 02:35:33125 script = "debian/merge_package_versions.py"
Tom Anderson21254bb2017-09-07 04:07:18126 additional_deps = "debian/additional_deps"
127 inputs = [
128 additional_deps,
Tom Anderson3a3c5882017-09-12 21:16:24129 "debian/deb_version.py",
130 "debian/package_version_interval.py",
Tom Andersona80a9b42017-09-07 02:35:33131 ]
Nico Weber74eeac72020-01-17 00:16:50132 outputs = [ "$root_out_dir/deb_common.deps" ]
Tom Anderson21254bb2017-09-07 04:07:18133 args = [
134 "deb_common.deps",
135 rebase_path(additional_deps, root_build_dir),
136 ]
Tom Andersona80a9b42017-09-07 02:35:33137 args += rebase_path(get_target_outputs(":calculate_deb_dependencies"),
138 root_build_dir)
139}
140
Tom Anderson7f6acf62017-09-08 03:13:09141action_foreach("calculate_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50142 deps = [ ":installer_deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09143 script = "rpm/calculate_package_deps.py"
144 sources = packaging_files_binaries
Nico Weber74eeac72020-01-17 00:16:50145 inputs = [ "rpm/dist_package_provides.json" ]
146 outputs = [ "$root_out_dir/rpm_{{source_name_part}}.deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09147 args = [
148 "{{source}}",
149 "rpm_{{source_name_part}}.deps",
150 ]
151 args += rebase_path(packaging_files_shlibs, root_build_dir)
Yuta Hijikata2ae70cd2020-12-09 09:47:03152 if ((is_linux || is_chromeos_lacros) && target_cpu == "x64" &&
153 enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57154 args += [ "--distro-check" ]
155 }
Tom Anderson7f6acf62017-09-08 03:13:09156}
157
158action("merge_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50159 deps = [ ":calculate_rpm_dependencies" ]
Tom Anderson7f6acf62017-09-08 03:13:09160 script = "rpm/merge_package_deps.py"
Tom Anderson3a3c5882017-09-12 21:16:24161 additional_deps = "rpm/additional_deps"
Nico Weber74eeac72020-01-17 00:16:50162 inputs = [ additional_deps ]
163 outputs = [ "$root_out_dir/rpm_common.deps" ]
Tom Anderson3a3c5882017-09-12 21:16:24164 args = [
165 "rpm_common.deps",
166 rebase_path(additional_deps, root_build_dir),
167 ]
Tom Anderson7f6acf62017-09-08 03:13:09168 args += rebase_path(get_target_outputs(":calculate_rpm_dependencies"),
169 root_build_dir)
170}
171
Tom Andersonce16a0c2017-09-02 00:27:51172action("strip_chrome_binary") {
173 prog_name = "$root_out_dir/chrome"
174 debug_file = prog_name + ".debug"
175 stripped_file = prog_name + ".stripped"
Nico Weber74eeac72020-01-17 00:16:50176 deps = [ "//chrome" ]
Tom Anderson2bb2b382017-09-26 20:21:53177 script = "//build/gn_run_binary.py"
Tom Andersonce16a0c2017-09-02 00:27:51178 sources = [
Lei Zhang57032b32019-07-03 21:26:10179 "//buildtools/third_party/eu-strip/bin/eu-strip",
Tom Andersonce16a0c2017-09-02 00:27:51180 prog_name,
181 ]
182 outputs = [
183 debug_file,
184 stripped_file,
185 ]
186 args = [
Michael Spangab3960d2019-01-30 17:06:47187 rebase_path("//buildtools/third_party/eu-strip/bin/eu-strip",
188 root_build_dir),
Tom Anderson2bb2b382017-09-26 20:21:53189 "-o",
Tom Andersonce16a0c2017-09-02 00:27:51190 rebase_path(stripped_file, root_build_dir),
Tom Anderson2bb2b382017-09-26 20:21:53191 "-f",
192 rebase_path(debug_file, root_build_dir),
193 rebase_path(prog_name, root_build_dir),
Tom Andersonce16a0c2017-09-02 00:27:51194 ]
195}
196
Tom Anderson991f4aa2020-05-05 03:42:23197# This target builds all "normal" Linux installers. You must set
198# is_component_build=false before building this target.
brettwa874dcc2015-08-28 23:59:18199group("linux") {
200 deps = [
201 ":beta",
202 ":stable",
203 ":unstable",
204 ]
205}
206
207branding_dir = "//chrome/app/theme/$branding_path_component"
208branding_dir_100 =
209 "//chrome/app/theme/default_100_percent/$branding_path_component"
210
211copy("common_packaging_files") {
212 visibility = [ ":*" ]
213 sources = [
Tom Anderson64b96142017-09-26 21:00:54214 "//chrome/app/resources/manpage.1.in",
brettwa874dcc2015-08-28 23:59:18215 "common/apt.include",
216 "common/default-app-block.template",
217 "common/default-app.template",
218 "common/desktop.template",
brettwa874dcc2015-08-28 23:59:18219 "common/installer.include",
220 "common/postinst.include",
221 "common/prerm.include",
222 "common/repo.cron",
223 "common/rpm.include",
224 "common/rpmrepo.cron",
225 "common/symlinks.include",
226 "common/variables.include",
227 "common/wrapper",
228 ]
229
sbcfa8f43b2016-10-05 17:11:35230 if (is_chrome_branded) {
tomas.popeladd765c02017-03-21 14:44:16231 sources += [
232 "common/google-chrome/google-chrome.appdata.xml.template",
233 "common/google-chrome/google-chrome.info",
234 ]
sbcfa8f43b2016-10-05 17:11:35235 } else {
tomas.popeladd765c02017-03-21 14:44:16236 sources += [
237 "common/chromium-browser/chromium-browser.appdata.xml",
238 "common/chromium-browser/chromium-browser.info",
239 ]
sbcfa8f43b2016-10-05 17:11:35240 }
241
Michael Spangab3960d2019-01-30 17:06:47242 sources += [ "//buildtools/third_party/eu-strip/bin/eu-strip" ]
brettwa874dcc2015-08-28 23:59:18243
Nico Weber74eeac72020-01-17 00:16:50244 outputs = [ "$root_out_dir/installer/common/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18245}
246
247copy("deb_packaging_files") {
248 visibility = [ ":*" ]
249 sources = [
250 "debian/build.sh",
251 "debian/changelog.template",
252 "debian/control.template",
253 "debian/debian.menu",
Tom Anderson0a880b62019-12-18 18:52:10254 "debian/manual_recommends",
brettwa874dcc2015-08-28 23:59:18255 "debian/postinst",
256 "debian/postrm",
257 "debian/prerm",
258 ]
Nico Weber74eeac72020-01-17 00:16:50259 outputs = [ "$root_out_dir/installer/debian/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18260}
261
262copy("theme_files") {
263 visibility = [ ":*" ]
264 sources = [
265 "$branding_dir/BRANDING",
266 "$branding_dir/linux/product_logo_32.xpm",
267 "$branding_dir/product_logo_128.png",
brettwa874dcc2015-08-28 23:59:18268 "$branding_dir/product_logo_24.png",
269 "$branding_dir/product_logo_256.png",
270 "$branding_dir/product_logo_48.png",
271 "$branding_dir/product_logo_64.png",
272 "$branding_dir_100/product_logo_16.png",
273 "$branding_dir_100/product_logo_32.png",
274 ]
Tom Andersonc8ebf272017-11-17 23:41:33275 if (is_chrome_branded) {
276 sources += [
277 "$branding_dir/linux/product_logo_32_beta.xpm",
278 "$branding_dir/linux/product_logo_32_dev.xpm",
279 "$branding_dir/product_logo_128_beta.png",
280 "$branding_dir/product_logo_128_dev.png",
Tom Andersonc8ebf272017-11-17 23:41:33281 "$branding_dir/product_logo_24_beta.png",
282 "$branding_dir/product_logo_24_dev.png",
283 "$branding_dir/product_logo_256_beta.png",
284 "$branding_dir/product_logo_256_dev.png",
285 "$branding_dir/product_logo_48_beta.png",
286 "$branding_dir/product_logo_48_dev.png",
287 "$branding_dir/product_logo_64_beta.png",
288 "$branding_dir/product_logo_64_dev.png",
289 "$branding_dir_100/product_logo_16_beta.png",
290 "$branding_dir_100/product_logo_16_dev.png",
291 "$branding_dir_100/product_logo_32_beta.png",
292 "$branding_dir_100/product_logo_32_dev.png",
293 ]
294 }
Nico Weber74eeac72020-01-17 00:16:50295 outputs = [ "$root_out_dir/installer/theme/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18296}
297
Yuta Hijikata2ae70cd2020-12-09 09:47:03298if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18299 copy("rpm_packaging_files") {
300 visibility = [ ":*" ]
301 sources = [
302 "rpm/build.sh",
303 "rpm/chrome.spec.template",
brettwa874dcc2015-08-28 23:59:18304 ]
Nico Weber74eeac72020-01-17 00:16:50305 outputs = [ "$root_out_dir/installer/rpm/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18306 }
307}
308
309process_version("save_build_info") {
310 # Just output the default version info variables (no template).
311 process_only = true
raphael.kubo.da.costadc683d22016-09-17 19:41:13312 sources = [
raphael.kubo.da.costadc683d22016-09-17 19:41:13313 "//chrome/VERSION",
314 branding_file_path,
Takuto Ikuta36541eb82018-08-01 02:09:56315 lastchange_file,
raphael.kubo.da.costadc683d22016-09-17 19:41:13316 ]
brettwa874dcc2015-08-28 23:59:18317 output = "$root_out_dir/installer/version.txt"
318}
319
320# Dependencies for all Linux installer targets.
321group("installer_deps") {
mcgrathr6edf192f2015-10-19 19:39:11322 # Though many of these things appear in data_deps further down the
323 # dependency chain, they must appear here as public_deps so that they can
324 # be listed as inputs to the actions that depend on ":installer_deps"
325 # and are guaranteed to have been built before those actions run.
326
brettwa874dcc2015-08-28 23:59:18327 public_deps = [
328 ":common_packaging_files",
329 ":deb_packaging_files",
330 ":save_build_info",
Tom Andersonce16a0c2017-09-02 00:27:51331 ":strip_chrome_binary",
brettwa874dcc2015-08-28 23:59:18332 ":theme_files",
333 "//chrome",
334 "//chrome:packed_resources",
Becca Hughesd89f6ff2017-12-13 13:20:44335 "//chrome/browser/resources/media/mei_preload:component",
brettwa874dcc2015-08-28 23:59:18336 "//sandbox/linux:chrome_sandbox",
Joshua Perazace68e2f2019-09-23 18:44:24337 "//third_party/crashpad/crashpad/handler:crashpad_handler",
brettwa874dcc2015-08-28 23:59:18338 ]
dpranke3b870612015-09-10 23:42:04339 if (enable_nacl) {
mcgrathr6edf192f2015-10-19 19:39:11340 public_deps += [
brettwf4b4a4282015-12-16 00:41:13341 "//components/nacl/loader:nacl_helper",
mcgrathr6edf192f2015-10-19 19:39:11342
343 # These are data_deps of nacl_helper, but that is not enough,
344 # as explained above.
345 "//native_client/src/trusted/service_runtime/linux:bootstrap",
346 "//ppapi/native_client:irt",
347 ]
dpranke3b870612015-09-10 23:42:04348 }
Xiaohan Wang7b76fce32018-10-01 23:21:29349 if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:35350 public_deps += [ "//third_party/widevine/cdm" ]
brettwa874dcc2015-08-28 23:59:18351 }
Tom Anderson991f4aa2020-05-05 03:42:23352 if (use_egl) {
353 public_deps += [
354 "//third_party/angle:libEGL",
355 "//third_party/angle:libGLESv2",
356 ]
357 }
358 if (enable_swiftshader) {
359 public_deps += [ ":swiftshader_libs" ]
360 }
Yuta Hijikata2ae70cd2020-12-09 09:47:03361 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18362 public_deps += [ ":rpm_packaging_files" ]
363 }
364}
365
366# Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
367#
368# channel:
369# Name of the channel.
370template("linux_package") {
371 assert(defined(invoker.channel))
372 channel = invoker.channel
373
Olivier Tilloy70e8efc2020-04-01 22:13:03374 if (is_chrome_branded) {
375 package = "google-chrome"
376 } else {
377 package = "chromium-browser"
378 }
379
brettwa874dcc2015-08-28 23:59:18380 deb_target_name = "${target_name}_deb"
381 action(deb_target_name) {
382 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53383 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18384
385 if (current_cpu == "x86") {
386 deb_arch = "i386"
387 } else if (current_cpu == "x64") {
388 deb_arch = "amd64"
389 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28390 deb_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53391 } else if (current_cpu == "arm64") {
392 deb_arch = "arm64"
Milko Leporis0f74ee82017-10-02 22:37:07393 } else if (current_cpu == "mipsel") {
394 deb_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19395 } else if (current_cpu == "mips64el") {
396 deb_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18397 } else {
398 assert(false, "Linux installer not configured for this architecture.")
399 }
400
Tom Andersone068dcb2017-09-01 18:31:21401 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50402 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}-1_${deb_arch}.deb" ]
brettwa874dcc2015-08-28 23:59:18403
404 args = [
brettwa874dcc2015-08-28 23:59:18405 rebase_path("$root_out_dir/installer/debian/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18406 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28407 deb_arch,
brettwa874dcc2015-08-28 23:59:18408 "-c",
409 invoker.channel,
410 "-d",
411 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35412 "-o",
413 rebase_path(root_out_dir, root_build_dir),
thomasanderson7a01af42016-10-18 21:22:42414 "-s",
Tom Anderson04125932017-11-28 03:13:13415 rebase_path(sysroot, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42416 "-t",
417 target_os,
brettwa874dcc2015-08-28 23:59:18418 ]
Tom Andersoncae008e2017-09-01 01:47:35419 if (is_official_build) {
420 args += [ "-f" ]
421 }
brettwa874dcc2015-08-28 23:59:18422 deps = [
423 ":installer_deps",
Tom Anderson21254bb2017-09-07 04:07:18424 ":merge_deb_dependencies",
brettwa874dcc2015-08-28 23:59:18425 ]
426 }
427
Yuta Hijikata2ae70cd2020-12-09 09:47:03428 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18429 rpm_target_name = "${target_name}_rpm"
430 action(rpm_target_name) {
431 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53432 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18433
434 if (current_cpu == "x86") {
435 rpm_arch = "i386"
436 } else if (current_cpu == "x64") {
437 rpm_arch = "x86_64"
438 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28439 rpm_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53440 } else if (current_cpu == "arm64") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28441 rpm_arch = "aarch64"
Milko Leporis0f74ee82017-10-02 22:37:07442 } else if (current_cpu == "mipsel") {
443 rpm_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19444 } else if (current_cpu == "mips64el") {
445 rpm_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18446 } else {
447 assert(false, "Linux installer not configured for this architecture.")
448 }
449
Tom Andersone068dcb2017-09-01 18:31:21450 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50451 outputs = [ "$root_out_dir/${package}-${channel}-${chrome_version_full}-1.${rpm_arch}.rpm" ]
brettwa874dcc2015-08-28 23:59:18452
453 args = [
brettwa874dcc2015-08-28 23:59:18454 rebase_path("$root_out_dir/installer/rpm/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18455 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28456 rpm_arch,
brettwa874dcc2015-08-28 23:59:18457 "-c",
458 invoker.channel,
459 "-d",
460 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35461 "-o",
462 rebase_path(root_out_dir, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42463 "-t",
464 target_os,
brettwa874dcc2015-08-28 23:59:18465 ]
Tom Andersoncae008e2017-09-01 01:47:35466 if (is_official_build) {
467 args += [ "-f" ]
468 }
brettwa874dcc2015-08-28 23:59:18469 deps = [
470 ":installer_deps",
Tom Anderson3a3c5882017-09-12 21:16:24471 ":merge_rpm_dependencies",
brettwa874dcc2015-08-28 23:59:18472 ]
473 }
Olivier Tilloy70e8efc2020-04-01 22:13:03474
475 if (enable_snap_package) {
476 snap_target_name = "${target_name}_snap"
477 action(snap_target_name) {
478 visibility = [ ":*" ]
479 deps = [
480 ":installer_deps",
481 ":save_build_info",
482 ]
483 script = "//build/gn_run_binary.py"
484 sources = [
485 "snap/chrome.launcher.in",
486 "snap/snapcraft.yaml.in",
487 ]
488 if (!is_chrome_branded) {
489 package = "chromium"
490 }
491 if (current_cpu == "x86") {
492 snap_arch = "i386"
493 } else if (current_cpu == "x64") {
494 snap_arch = "amd64"
495 } else if (current_cpu == "arm") {
496 snap_arch = "armhf"
497 } else if (current_cpu == "arm64") {
498 snap_arch = "arm64"
499 } else {
500 assert(false, "Linux installer not configured for this architecture.")
501 }
502 args = [
503 rebase_path("snap/build.sh", root_build_dir),
504 package,
505 channel,
506 chrome_version_full,
507 snap_arch,
508 target_os,
509 ]
510 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}_${snap_arch}.snap" ]
511 }
512 }
brettwa874dcc2015-08-28 23:59:18513 }
514
515 group(target_name) {
Nico Weber74eeac72020-01-17 00:16:50516 deps = [ ":$deb_target_name" ]
Yuta Hijikata2ae70cd2020-12-09 09:47:03517 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18518 deps += [ ":$rpm_target_name" ]
Olivier Tilloy70e8efc2020-04-01 22:13:03519 if (enable_snap_package) {
520 deps += [ ":$snap_target_name" ]
521 }
brettwa874dcc2015-08-28 23:59:18522 }
523 }
524}
525
526# Standard packages.
527linux_package("stable") {
528 channel = "stable"
529}
530linux_package("beta") {
531 channel = "beta"
532}
533linux_package("unstable") {
534 channel = "unstable"
535}