blob: 6fc5568464cee7ba0496b3581bf8ba170645c2d6 [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")
Sven Zheng361d7c72021-02-04 03:07:4311import("//build/linux/strip_binary.gni")
Takuto Ikuta36541eb82018-08-01 02:09:5612import("//build/util/lastchange.gni")
raphael.kubo.da.costadc683d22016-09-17 19:41:1313import("//build/util/process_version.gni")
brettwa874dcc2015-08-28 23:59:1814import("//build/util/version.gni")
Dirk Prankeccc0c362017-09-28 22:15:1115import("//components/nacl/features.gni")
Sophie Chang09b6dbbb72022-01-20 02:49:3316import("//components/optimization_guide/features.gni")
Jonah Ryan-Davis0d073c42021-06-10 23:38:1617import("//third_party/angle/gni/angle.gni")
Xiaohan Wang7b76fce32018-10-01 23:21:2918import("//third_party/widevine/cdm/widevine.gni")
Tom Anderson991f4aa2020-05-05 03:42:2319import("//ui/gl/features.gni")
brettwa874dcc2015-08-28 23:59:1820
Xiaohan Wang7b76fce32018-10-01 23:21:2921if (bundle_widevine_cdm) {
Xiaohan Wangcc32f2e2018-01-30 01:09:0522 import("//media/cdm/library_cdm/cdm_paths.gni")
xhwangc3a252b2016-05-23 02:35:4823}
24
Tom Anderson372cee72018-02-23 19:00:1325declare_args() {
26 # Enables checks that ensure the packages are installable on all supported
27 # distributions.
28 enable_distro_version_check = true
Olivier Tilloy70e8efc2020-04-01 22:13:0329
30 # Enable building snap packages
Thomas Andersonfebdf3b2020-06-09 18:22:4931 enable_snap_package = false
Tom Anderson372cee72018-02-23 19:00:1332}
33
Sean McAllisterd3bd1532020-07-30 18:43:5734assert(is_linux || is_chromeos)
brettwa874dcc2015-08-28 23:59:1835
Tom Anderson7f6acf62017-09-08 03:13:0936packaging_files_executables = [
Tom Andersone068dcb2017-09-01 18:31:2137 "$root_out_dir/chrome",
Matthew Dentonf9d1fd92021-08-03 22:40:0438 "$root_out_dir/chrome_crashpad_handler",
Tom Andersone068dcb2017-09-01 18:31:2139 "$root_out_dir/chrome_sandbox",
Tom Andersone068dcb2017-09-01 18:31:2140]
Tom Anderson7f6acf62017-09-08 03:13:0941packaging_files_shlibs = []
Tom Andersone068dcb2017-09-01 18:31:2142
43if (enable_nacl) {
Tom Anderson7f6acf62017-09-08 03:13:0944 packaging_files_executables += [
Tom Andersone068dcb2017-09-01 18:31:2145 "$root_out_dir/nacl_helper",
46 "$root_out_dir/nacl_helper_bootstrap",
47 ]
48
49 if (current_cpu == "x86") {
Tom Anderson7f6acf62017-09-08 03:13:0950 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2151 } else if (current_cpu == "x64") {
Tom Anderson7f6acf62017-09-08 03:13:0952 packaging_files_executables += [ "$root_out_dir/nacl_irt_x86_64.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2153 } else if (current_cpu == "arm") {
Tom Anderson7f6acf62017-09-08 03:13:0954 packaging_files_executables += [ "$root_out_dir/nacl_irt_arm.nexe" ]
Milko Leporis0f74ee82017-10-02 22:37:0755 } else if (current_cpu == "mipsel") {
56 packaging_files_executables += [ "$root_out_dir/nacl_irt_mips32.nexe" ]
Tom Andersone068dcb2017-09-01 18:31:2157 }
58}
59
Xiaohan Wang7b76fce32018-10-01 23:21:2960if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:3561 packaging_files_shlibs +=
62 [ "$root_out_dir/$widevine_cdm_path/libwidevinecdm.so" ]
Tom Andersone068dcb2017-09-01 18:31:2163}
64
Tom Anderson991f4aa2020-05-05 03:42:2365if (use_egl) {
66 packaging_files_shlibs += [
67 "$root_out_dir/libEGL.so",
68 "$root_out_dir/libGLESv2.so",
69 ]
Jonah Ryan-Davis0d073c42021-06-10 23:38:1670 if (angle_shared_libvulkan && !is_chromeos) {
71 packaging_files_shlibs += [ "$root_out_dir/libvulkan.so.1" ]
72 }
Tom Anderson991f4aa2020-05-05 03:42:2373}
74
75if (enable_swiftshader) {
76 packaging_files_shlibs += [
77 "$root_out_dir/swiftshader_libEGL.so",
78 "$root_out_dir/swiftshader_libGLESv2.so",
Jonah Ryan-Davisded0a1b2021-04-13 16:48:4279 "$root_out_dir/libvk_swiftshader.so",
Tom Anderson991f4aa2020-05-05 03:42:2380 ]
81}
82
Sophie Chang09b6dbbb72022-01-20 02:49:3383if (build_with_internal_optimization_guide) {
84 packaging_files_shlibs +=
85 [ "$root_out_dir/liboptimization_guide_internal.so" ]
86}
87
Tom Anderson7f6acf62017-09-08 03:13:0988packaging_files_binaries = packaging_files_executables + packaging_files_shlibs
89
Tom Anderson991f4aa2020-05-05 03:42:2390copy("swiftshader_libs") {
91 sources = [
92 "$root_out_dir/swiftshader/libEGL.so",
93 "$root_out_dir/swiftshader/libGLESv2.so",
94 ]
95 outputs = [ "$root_out_dir/swiftshader_{{source_file_part}}" ]
96 public_deps = [
97 "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL",
98 "//third_party/swiftshader/src/OpenGL/libGLESv2:swiftshader_libGLESv2",
Tom Anderson991f4aa2020-05-05 03:42:2399 ]
100}
101
Tom Andersone068dcb2017-09-01 18:31:21102# TODO(mmoss) Any convenient way to get all the relevant build files?
103# (e.g. all locales, resources, etc.)
104packaging_files = packaging_files_binaries + [
Jonah Ryan-Davisbb8b4cae2021-04-23 20:44:52105 "$root_out_dir/vk_swiftshader_icd.json",
Tom Andersone068dcb2017-09-01 18:31:21106 "$root_out_dir/xdg-mime",
107 "$root_out_dir/xdg-settings",
108 "$root_out_dir/locales/en-US.pak",
Becca Hughesd89f6ff2017-12-13 13:20:44109 "$root_out_dir/MEIPreload/manifest.json",
110 "$root_out_dir/MEIPreload/preloaded_data.pb",
Tom Andersone068dcb2017-09-01 18:31:21111 ]
112
Tom Andersona80a9b42017-09-07 02:35:33113action_foreach("calculate_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50114 deps = [ ":installer_deps" ]
Tom Andersona80a9b42017-09-07 02:35:33115 script = "debian/calculate_package_deps.py"
Tom Andersone068dcb2017-09-01 18:31:21116 sources = packaging_files_binaries
Tom Anderson3a3c5882017-09-12 21:16:24117 inputs = [
118 "debian/deb_version.py",
Lei Zhange680353b2017-09-25 23:03:50119 "debian/dist_package_versions.json",
Tom Anderson3a3c5882017-09-12 21:16:24120 "debian/package_version_interval.py",
Tom Andersonfde653b02020-01-16 02:20:10121 "//third_party/dpkg-shlibdeps/dpkg-shlibdeps.pl",
Tom Anderson3a3c5882017-09-12 21:16:24122 ]
Nico Weber74eeac72020-01-17 00:16:50123 outputs = [ "$root_out_dir/deb_{{source_name_part}}.deps" ]
Tom Andersone068dcb2017-09-01 18:31:21124 args = [
125 "{{source}}",
126 rebase_path(sysroot, root_build_dir),
127 target_cpu,
Tom Andersona80a9b42017-09-07 02:35:33128 "deb_{{source_name_part}}.deps",
Tom Andersone068dcb2017-09-01 18:31:21129 ]
Yuta Hijikata2ae70cd2020-12-09 09:47:03130 if ((is_linux || is_chromeos_lacros) && target_cpu == "x64" &&
131 enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57132 args += [ "--distro-check" ]
133 }
Tom Andersone068dcb2017-09-01 18:31:21134}
135
Tom Andersona80a9b42017-09-07 02:35:33136action("merge_deb_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50137 deps = [ ":calculate_deb_dependencies" ]
Tom Andersona80a9b42017-09-07 02:35:33138 script = "debian/merge_package_versions.py"
Tom Anderson21254bb2017-09-07 04:07:18139 additional_deps = "debian/additional_deps"
140 inputs = [
141 additional_deps,
Tom Anderson3a3c5882017-09-12 21:16:24142 "debian/deb_version.py",
143 "debian/package_version_interval.py",
Tom Andersona80a9b42017-09-07 02:35:33144 ]
Nico Weber74eeac72020-01-17 00:16:50145 outputs = [ "$root_out_dir/deb_common.deps" ]
Tom Anderson21254bb2017-09-07 04:07:18146 args = [
147 "deb_common.deps",
148 rebase_path(additional_deps, root_build_dir),
149 ]
Tom Andersona80a9b42017-09-07 02:35:33150 args += rebase_path(get_target_outputs(":calculate_deb_dependencies"),
151 root_build_dir)
152}
153
Tom Anderson7f6acf62017-09-08 03:13:09154action_foreach("calculate_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50155 deps = [ ":installer_deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09156 script = "rpm/calculate_package_deps.py"
157 sources = packaging_files_binaries
Nico Weber74eeac72020-01-17 00:16:50158 inputs = [ "rpm/dist_package_provides.json" ]
159 outputs = [ "$root_out_dir/rpm_{{source_name_part}}.deps" ]
Tom Anderson7f6acf62017-09-08 03:13:09160 args = [
161 "{{source}}",
162 "rpm_{{source_name_part}}.deps",
163 ]
164 args += rebase_path(packaging_files_shlibs, root_build_dir)
Yuta Hijikata2ae70cd2020-12-09 09:47:03165 if ((is_linux || is_chromeos_lacros) && target_cpu == "x64" &&
166 enable_distro_version_check) {
Tom Andersonc92bc272017-09-15 23:12:57167 args += [ "--distro-check" ]
168 }
Tom Anderson7f6acf62017-09-08 03:13:09169}
170
171action("merge_rpm_dependencies") {
Nico Weber74eeac72020-01-17 00:16:50172 deps = [ ":calculate_rpm_dependencies" ]
Tom Anderson7f6acf62017-09-08 03:13:09173 script = "rpm/merge_package_deps.py"
Tom Anderson3a3c5882017-09-12 21:16:24174 additional_deps = "rpm/additional_deps"
Nico Weber74eeac72020-01-17 00:16:50175 inputs = [ additional_deps ]
176 outputs = [ "$root_out_dir/rpm_common.deps" ]
Tom Anderson3a3c5882017-09-12 21:16:24177 args = [
178 "rpm_common.deps",
179 rebase_path(additional_deps, root_build_dir),
180 ]
Tom Anderson7f6acf62017-09-08 03:13:09181 args += rebase_path(get_target_outputs(":calculate_rpm_dependencies"),
182 root_build_dir)
183}
184
Sven Zheng361d7c72021-02-04 03:07:43185strip_binary("strip_chrome_binary") {
186 binary_input = "$root_out_dir/chrome"
Nico Weber74eeac72020-01-17 00:16:50187 deps = [ "//chrome" ]
Tom Andersonce16a0c2017-09-02 00:27:51188}
189
Michael Moss28d34ca02021-12-01 02:11:37190strip_binary("strip_chrome_crashpad_handler") {
191 binary_input = "$root_out_dir/chrome_crashpad_handler"
192 deps = [ "//components/crash/core/app:chrome_crashpad_handler" ]
193}
194
195strip_binary("strip_chrome_sandbox") {
196 binary_input = "$root_out_dir/chrome_sandbox"
197 deps = [ "//sandbox/linux:chrome_sandbox" ]
198}
199
200strip_binary("strip_libEGL_shlib") {
201 binary_input = "$root_out_dir/libEGL.so"
202 deps = [ "//third_party/angle:libEGL" ]
203}
204
205strip_binary("strip_libGLESv2_shlib") {
206 binary_input = "$root_out_dir/libGLESv2.so"
207 deps = [ "//third_party/angle:libGLESv2" ]
208}
209
210strip_binary("strip_libvulkan_shlib") {
211 binary_input = "$root_out_dir/libvulkan.so.1"
212 deps = [ "//third_party/vulkan-deps/vulkan-loader/src:libvulkan" ]
213}
214
215strip_binary("strip_swiftshader_libEGL_shlib") {
216 binary_input = "$root_out_dir/swiftshader/libEGL.so"
217 deps = [ "//third_party/swiftshader/src/OpenGL/libEGL:swiftshader_libEGL" ]
218}
219
220strip_binary("strip_swiftshader_libGLESv2_shlib") {
221 binary_input = "$root_out_dir/swiftshader/libGLESv2.so"
222 deps =
223 [ "//third_party/swiftshader/src/OpenGL/libGLESv2:swiftshader_libGLESv2" ]
224}
225
226strip_binary("strip_libvk_swiftshader.shlib") {
227 binary_input = "$root_out_dir/libvk_swiftshader.so"
228 deps = [ "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan" ]
229}
230
231if (enable_nacl) {
232 strip_binary("strip_nacl_helper") {
233 binary_input = "$root_out_dir/nacl_helper"
234 deps = [ "//components/nacl/loader:nacl_helper" ]
235 }
236
237 strip_binary("strip_nacl_helper_bootstrap") {
238 binary_input = "$root_out_dir/nacl_helper_bootstrap"
239 deps = [ "//native_client/src/trusted/service_runtime/linux:bootstrap" ]
240 }
241}
242
Sophie Chang09b6dbbb72022-01-20 02:49:33243if (build_with_internal_optimization_guide) {
244 strip_binary("strip_optimization_guide") {
245 binary_input = "$root_out_dir/liboptimization_guide_internal.so"
246 deps = [
247 "//components/optimization_guide/internal:optimization_guide_internal",
248 ]
249 }
250}
251
Tom Anderson991f4aa2020-05-05 03:42:23252# This target builds all "normal" Linux installers. You must set
253# is_component_build=false before building this target.
brettwa874dcc2015-08-28 23:59:18254group("linux") {
255 deps = [
256 ":beta",
257 ":stable",
258 ":unstable",
259 ]
260}
261
262branding_dir = "//chrome/app/theme/$branding_path_component"
263branding_dir_100 =
264 "//chrome/app/theme/default_100_percent/$branding_path_component"
265
266copy("common_packaging_files") {
267 visibility = [ ":*" ]
268 sources = [
Tom Anderson64b96142017-09-26 21:00:54269 "//chrome/app/resources/manpage.1.in",
brettwa874dcc2015-08-28 23:59:18270 "common/apt.include",
271 "common/default-app-block.template",
272 "common/default-app.template",
273 "common/desktop.template",
brettwa874dcc2015-08-28 23:59:18274 "common/installer.include",
275 "common/postinst.include",
276 "common/prerm.include",
277 "common/repo.cron",
Lei Zhang8d9f0d3f2022-03-18 00:08:26278 "common/repo_variables.include",
brettwa874dcc2015-08-28 23:59:18279 "common/rpm.include",
280 "common/rpmrepo.cron",
281 "common/symlinks.include",
282 "common/variables.include",
283 "common/wrapper",
284 ]
285
sbcfa8f43b2016-10-05 17:11:35286 if (is_chrome_branded) {
tomas.popeladd765c02017-03-21 14:44:16287 sources += [
288 "common/google-chrome/google-chrome.appdata.xml.template",
289 "common/google-chrome/google-chrome.info",
290 ]
sbcfa8f43b2016-10-05 17:11:35291 } else {
tomas.popeladd765c02017-03-21 14:44:16292 sources += [
293 "common/chromium-browser/chromium-browser.appdata.xml",
294 "common/chromium-browser/chromium-browser.info",
295 ]
sbcfa8f43b2016-10-05 17:11:35296 }
297
Michael Spangab3960d2019-01-30 17:06:47298 sources += [ "//buildtools/third_party/eu-strip/bin/eu-strip" ]
brettwa874dcc2015-08-28 23:59:18299
Nico Weber74eeac72020-01-17 00:16:50300 outputs = [ "$root_out_dir/installer/common/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18301}
302
303copy("deb_packaging_files") {
304 visibility = [ ":*" ]
305 sources = [
306 "debian/build.sh",
307 "debian/changelog.template",
308 "debian/control.template",
309 "debian/debian.menu",
Tom Anderson0a880b62019-12-18 18:52:10310 "debian/manual_recommends",
brettwa874dcc2015-08-28 23:59:18311 "debian/postinst",
312 "debian/postrm",
313 "debian/prerm",
314 ]
Nico Weber74eeac72020-01-17 00:16:50315 outputs = [ "$root_out_dir/installer/debian/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18316}
317
318copy("theme_files") {
319 visibility = [ ":*" ]
320 sources = [
321 "$branding_dir/BRANDING",
Tom Anderson4c606e72022-02-17 15:49:14322 "$branding_dir/linux/product_logo_128.png",
323 "$branding_dir/linux/product_logo_24.png",
324 "$branding_dir/linux/product_logo_256.png",
brettwa874dcc2015-08-28 23:59:18325 "$branding_dir/linux/product_logo_32.xpm",
Tom Anderson4c606e72022-02-17 15:49:14326 "$branding_dir/linux/product_logo_48.png",
327 "$branding_dir/linux/product_logo_64.png",
328 "$branding_dir_100/linux/product_logo_16.png",
329 "$branding_dir_100/linux/product_logo_32.png",
brettwa874dcc2015-08-28 23:59:18330 ]
Tom Andersonc8ebf272017-11-17 23:41:33331 if (is_chrome_branded) {
332 sources += [
Tom Anderson4c606e72022-02-17 15:49:14333 "$branding_dir/linux/product_logo_128_beta.png",
334 "$branding_dir/linux/product_logo_128_dev.png",
335 "$branding_dir/linux/product_logo_24_beta.png",
336 "$branding_dir/linux/product_logo_24_dev.png",
337 "$branding_dir/linux/product_logo_256_beta.png",
338 "$branding_dir/linux/product_logo_256_dev.png",
Tom Andersonc8ebf272017-11-17 23:41:33339 "$branding_dir/linux/product_logo_32_beta.xpm",
340 "$branding_dir/linux/product_logo_32_dev.xpm",
Tom Anderson4c606e72022-02-17 15:49:14341 "$branding_dir/linux/product_logo_48_beta.png",
342 "$branding_dir/linux/product_logo_48_dev.png",
343 "$branding_dir/linux/product_logo_64_beta.png",
344 "$branding_dir/linux/product_logo_64_dev.png",
345 "$branding_dir_100/linux/product_logo_16_beta.png",
346 "$branding_dir_100/linux/product_logo_16_dev.png",
347 "$branding_dir_100/linux/product_logo_32_beta.png",
348 "$branding_dir_100/linux/product_logo_32_dev.png",
Tom Andersonc8ebf272017-11-17 23:41:33349 ]
350 }
Nico Weber74eeac72020-01-17 00:16:50351 outputs = [ "$root_out_dir/installer/theme/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18352}
353
Yuta Hijikata2ae70cd2020-12-09 09:47:03354if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18355 copy("rpm_packaging_files") {
356 visibility = [ ":*" ]
357 sources = [
358 "rpm/build.sh",
359 "rpm/chrome.spec.template",
brettwa874dcc2015-08-28 23:59:18360 ]
Nico Weber74eeac72020-01-17 00:16:50361 outputs = [ "$root_out_dir/installer/rpm/{{source_file_part}}" ]
brettwa874dcc2015-08-28 23:59:18362 }
363}
364
365process_version("save_build_info") {
366 # Just output the default version info variables (no template).
367 process_only = true
raphael.kubo.da.costadc683d22016-09-17 19:41:13368 sources = [
raphael.kubo.da.costadc683d22016-09-17 19:41:13369 "//chrome/VERSION",
370 branding_file_path,
Takuto Ikuta36541eb82018-08-01 02:09:56371 lastchange_file,
raphael.kubo.da.costadc683d22016-09-17 19:41:13372 ]
brettwa874dcc2015-08-28 23:59:18373 output = "$root_out_dir/installer/version.txt"
374}
375
376# Dependencies for all Linux installer targets.
377group("installer_deps") {
mcgrathr6edf192f2015-10-19 19:39:11378 # Though many of these things appear in data_deps further down the
379 # dependency chain, they must appear here as public_deps so that they can
380 # be listed as inputs to the actions that depend on ":installer_deps"
381 # and are guaranteed to have been built before those actions run.
382
brettwa874dcc2015-08-28 23:59:18383 public_deps = [
384 ":common_packaging_files",
385 ":deb_packaging_files",
386 ":save_build_info",
Tom Andersonce16a0c2017-09-02 00:27:51387 ":strip_chrome_binary",
Michael Moss28d34ca02021-12-01 02:11:37388 ":strip_chrome_crashpad_handler",
389 ":strip_chrome_sandbox",
brettwa874dcc2015-08-28 23:59:18390 ":theme_files",
391 "//chrome",
392 "//chrome:packed_resources",
Becca Hughesd89f6ff2017-12-13 13:20:44393 "//chrome/browser/resources/media/mei_preload:component",
Matthew Dentonf9d1fd92021-08-03 22:40:04394 "//components/crash/core/app:chrome_crashpad_handler",
brettwa874dcc2015-08-28 23:59:18395 "//sandbox/linux:chrome_sandbox",
brettwa874dcc2015-08-28 23:59:18396 ]
dpranke3b870612015-09-10 23:42:04397 if (enable_nacl) {
mcgrathr6edf192f2015-10-19 19:39:11398 public_deps += [
Michael Moss28d34ca02021-12-01 02:11:37399 ":strip_nacl_helper",
400 ":strip_nacl_helper_bootstrap",
brettwf4b4a4282015-12-16 00:41:13401 "//components/nacl/loader:nacl_helper",
mcgrathr6edf192f2015-10-19 19:39:11402
403 # These are data_deps of nacl_helper, but that is not enough,
404 # as explained above.
405 "//native_client/src/trusted/service_runtime/linux:bootstrap",
406 "//ppapi/native_client:irt",
407 ]
dpranke3b870612015-09-10 23:42:04408 }
Xiaohan Wang7b76fce32018-10-01 23:21:29409 if (bundle_widevine_cdm) {
Xiaohan Wangd5b69c82018-03-20 22:18:35410 public_deps += [ "//third_party/widevine/cdm" ]
brettwa874dcc2015-08-28 23:59:18411 }
Tom Anderson991f4aa2020-05-05 03:42:23412 if (use_egl) {
413 public_deps += [
Michael Moss28d34ca02021-12-01 02:11:37414 ":strip_libEGL_shlib",
415 ":strip_libGLESv2_shlib",
Tom Anderson991f4aa2020-05-05 03:42:23416 "//third_party/angle:libEGL",
417 "//third_party/angle:libGLESv2",
418 ]
Jonah Ryan-Davis0d073c42021-06-10 23:38:16419 if (angle_shared_libvulkan && !is_chromeos) {
Michael Moss28d34ca02021-12-01 02:11:37420 public_deps += [
421 ":strip_libvulkan_shlib",
422 "//third_party/vulkan-deps/vulkan-loader/src:libvulkan",
423 ]
Jonah Ryan-Davis0d073c42021-06-10 23:38:16424 }
Tom Anderson991f4aa2020-05-05 03:42:23425 }
426 if (enable_swiftshader) {
Jonah Ryan-Davisded0a1b2021-04-13 16:48:42427 public_deps += [
Michael Moss28d34ca02021-12-01 02:11:37428 ":strip_libvk_swiftshader.shlib",
429 ":strip_swiftshader_libEGL_shlib",
430 ":strip_swiftshader_libGLESv2_shlib",
Jonah Ryan-Davisded0a1b2021-04-13 16:48:42431 ":swiftshader_libs",
Jonah Ryan-Davisbb8b4cae2021-04-23 20:44:52432 "//third_party/swiftshader/src/Vulkan:icd_file",
Jonah Ryan-Davisded0a1b2021-04-13 16:48:42433 "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan",
434 ]
Tom Anderson991f4aa2020-05-05 03:42:23435 }
Yuta Hijikata2ae70cd2020-12-09 09:47:03436 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18437 public_deps += [ ":rpm_packaging_files" ]
438 }
Sophie Chang09b6dbbb72022-01-20 02:49:33439 if (build_with_internal_optimization_guide) {
440 public_deps += [
441 ":strip_optimization_guide",
442 "//components/optimization_guide/internal:optimization_guide_internal",
443 ]
444 }
brettwa874dcc2015-08-28 23:59:18445}
446
447# Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
448#
449# channel:
450# Name of the channel.
451template("linux_package") {
452 assert(defined(invoker.channel))
453 channel = invoker.channel
454
Olivier Tilloy70e8efc2020-04-01 22:13:03455 if (is_chrome_branded) {
456 package = "google-chrome"
457 } else {
458 package = "chromium-browser"
459 }
460
brettwa874dcc2015-08-28 23:59:18461 deb_target_name = "${target_name}_deb"
462 action(deb_target_name) {
463 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53464 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18465
466 if (current_cpu == "x86") {
467 deb_arch = "i386"
468 } else if (current_cpu == "x64") {
469 deb_arch = "amd64"
470 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28471 deb_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53472 } else if (current_cpu == "arm64") {
473 deb_arch = "arm64"
Milko Leporis0f74ee82017-10-02 22:37:07474 } else if (current_cpu == "mipsel") {
475 deb_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19476 } else if (current_cpu == "mips64el") {
477 deb_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18478 } else {
479 assert(false, "Linux installer not configured for this architecture.")
480 }
481
Tom Andersone068dcb2017-09-01 18:31:21482 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50483 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}-1_${deb_arch}.deb" ]
brettwa874dcc2015-08-28 23:59:18484
485 args = [
brettwa874dcc2015-08-28 23:59:18486 rebase_path("$root_out_dir/installer/debian/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18487 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28488 deb_arch,
brettwa874dcc2015-08-28 23:59:18489 "-c",
490 invoker.channel,
491 "-d",
492 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35493 "-o",
494 rebase_path(root_out_dir, root_build_dir),
thomasanderson7a01af42016-10-18 21:22:42495 "-s",
Tom Anderson04125932017-11-28 03:13:13496 rebase_path(sysroot, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42497 "-t",
498 target_os,
brettwa874dcc2015-08-28 23:59:18499 ]
Tom Andersoncae008e2017-09-01 01:47:35500 if (is_official_build) {
501 args += [ "-f" ]
502 }
brettwa874dcc2015-08-28 23:59:18503 deps = [
504 ":installer_deps",
Tom Anderson21254bb2017-09-07 04:07:18505 ":merge_deb_dependencies",
brettwa874dcc2015-08-28 23:59:18506 ]
507 }
508
Yuta Hijikata2ae70cd2020-12-09 09:47:03509 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18510 rpm_target_name = "${target_name}_rpm"
511 action(rpm_target_name) {
512 visibility = [ ":*" ]
Tom Anderson2bb2b382017-09-26 20:21:53513 script = "//build/gn_run_binary.py"
brettwa874dcc2015-08-28 23:59:18514
515 if (current_cpu == "x86") {
516 rpm_arch = "i386"
517 } else if (current_cpu == "x64") {
518 rpm_arch = "x86_64"
519 } else if (current_cpu == "arm") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28520 rpm_arch = "armhf"
Halton Huoa8501eb2018-06-25 03:46:53521 } else if (current_cpu == "arm64") {
Jiaxun Yangc8ec82ec2020-02-27 02:50:28522 rpm_arch = "aarch64"
Milko Leporis0f74ee82017-10-02 22:37:07523 } else if (current_cpu == "mipsel") {
524 rpm_arch = "mipsel"
Milko Leporisb6e93fc2018-01-24 21:40:19525 } else if (current_cpu == "mips64el") {
526 rpm_arch = "mips64el"
brettwa874dcc2015-08-28 23:59:18527 } else {
528 assert(false, "Linux installer not configured for this architecture.")
529 }
530
Tom Andersone068dcb2017-09-01 18:31:21531 inputs = packaging_files
Nico Weber74eeac72020-01-17 00:16:50532 outputs = [ "$root_out_dir/${package}-${channel}-${chrome_version_full}-1.${rpm_arch}.rpm" ]
brettwa874dcc2015-08-28 23:59:18533
534 args = [
brettwa874dcc2015-08-28 23:59:18535 rebase_path("$root_out_dir/installer/rpm/build.sh", root_build_dir),
brettwa874dcc2015-08-28 23:59:18536 "-a",
Jiaxun Yangc8ec82ec2020-02-27 02:50:28537 rpm_arch,
brettwa874dcc2015-08-28 23:59:18538 "-c",
539 invoker.channel,
540 "-d",
541 branding_path_component,
Tom Andersoncae008e2017-09-01 01:47:35542 "-o",
543 rebase_path(root_out_dir, root_build_dir),
Tom Andersond7f95c632017-12-07 02:18:42544 "-t",
545 target_os,
brettwa874dcc2015-08-28 23:59:18546 ]
Tom Andersoncae008e2017-09-01 01:47:35547 if (is_official_build) {
548 args += [ "-f" ]
549 }
brettwa874dcc2015-08-28 23:59:18550 deps = [
551 ":installer_deps",
Tom Anderson3a3c5882017-09-12 21:16:24552 ":merge_rpm_dependencies",
brettwa874dcc2015-08-28 23:59:18553 ]
554 }
Olivier Tilloy70e8efc2020-04-01 22:13:03555
556 if (enable_snap_package) {
557 snap_target_name = "${target_name}_snap"
558 action(snap_target_name) {
559 visibility = [ ":*" ]
560 deps = [
561 ":installer_deps",
562 ":save_build_info",
563 ]
564 script = "//build/gn_run_binary.py"
565 sources = [
566 "snap/chrome.launcher.in",
567 "snap/snapcraft.yaml.in",
568 ]
569 if (!is_chrome_branded) {
570 package = "chromium"
571 }
572 if (current_cpu == "x86") {
573 snap_arch = "i386"
574 } else if (current_cpu == "x64") {
575 snap_arch = "amd64"
576 } else if (current_cpu == "arm") {
577 snap_arch = "armhf"
578 } else if (current_cpu == "arm64") {
579 snap_arch = "arm64"
580 } else {
581 assert(false, "Linux installer not configured for this architecture.")
582 }
583 args = [
584 rebase_path("snap/build.sh", root_build_dir),
585 package,
586 channel,
587 chrome_version_full,
588 snap_arch,
589 target_os,
590 ]
591 outputs = [ "$root_out_dir/${package}-${channel}_${chrome_version_full}_${snap_arch}.snap" ]
592 }
593 }
brettwa874dcc2015-08-28 23:59:18594 }
595
596 group(target_name) {
Nico Weber74eeac72020-01-17 00:16:50597 deps = [ ":$deb_target_name" ]
Yuta Hijikata2ae70cd2020-12-09 09:47:03598 if (!is_chromeos_ash) {
brettwa874dcc2015-08-28 23:59:18599 deps += [ ":$rpm_target_name" ]
Olivier Tilloy70e8efc2020-04-01 22:13:03600 if (enable_snap_package) {
601 deps += [ ":$snap_target_name" ]
602 }
brettwa874dcc2015-08-28 23:59:18603 }
604 }
605}
606
607# Standard packages.
608linux_package("stable") {
609 channel = "stable"
610}
611linux_package("beta") {
612 channel = "beta"
613}
614linux_package("unstable") {
615 channel = "unstable"
616}