xref: /aosp_15_r20/external/cronet/build/config/linux/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2013 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/config/c++/c++.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/config/chromeos/ui_mode.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//build/config/linux/pkg_config.gni")
8*6777b538SAndroid Build Coastguard Workerimport("//build/config/ui.gni")
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Workergroup("linux") {
11*6777b538SAndroid Build Coastguard Worker  visibility = [ "//:optimize_gn_gen" ]
12*6777b538SAndroid Build Coastguard Worker}
13*6777b538SAndroid Build Coastguard Worker
14*6777b538SAndroid Build Coastguard Worker# This is included by reference in the //build/config/compiler config that
15*6777b538SAndroid Build Coastguard Worker# is applied to all targets. It is here to separate out the logic that is
16*6777b538SAndroid Build Coastguard Worker# Linux-only. This is not applied to Android, but is applied to ChromeOS.
17*6777b538SAndroid Build Coastguard Workerconfig("compiler") {
18*6777b538SAndroid Build Coastguard Worker  if (current_cpu == "arm64") {
19*6777b538SAndroid Build Coastguard Worker    import("//build/config/arm.gni")
20*6777b538SAndroid Build Coastguard Worker    cflags = []
21*6777b538SAndroid Build Coastguard Worker    asmflags = []
22*6777b538SAndroid Build Coastguard Worker    if (arm_control_flow_integrity == "standard") {
23*6777b538SAndroid Build Coastguard Worker      cflags += [ "-mbranch-protection=standard" ]
24*6777b538SAndroid Build Coastguard Worker      asmflags += [ "-mbranch-protection=standard" ]
25*6777b538SAndroid Build Coastguard Worker    } else if (arm_control_flow_integrity == "pac") {
26*6777b538SAndroid Build Coastguard Worker      cflags += [ "-mbranch-protection=pac-ret" ]
27*6777b538SAndroid Build Coastguard Worker      asmflags += [ "-mbranch-protection=pac-ret" ]
28*6777b538SAndroid Build Coastguard Worker    }
29*6777b538SAndroid Build Coastguard Worker  }
30*6777b538SAndroid Build Coastguard Worker}
31*6777b538SAndroid Build Coastguard Worker
32*6777b538SAndroid Build Coastguard Worker# This is included by reference in the //build/config/compiler:runtime_library
33*6777b538SAndroid Build Coastguard Worker# config that is applied to all targets. It is here to separate out the logic
34*6777b538SAndroid Build Coastguard Worker# that is Linux-only. Please see that target for advice on what should go in
35*6777b538SAndroid Build Coastguard Worker# :runtime_library vs. :compiler.
36*6777b538SAndroid Build Coastguard Workerconfig("runtime_library") {
37*6777b538SAndroid Build Coastguard Worker  # Set here because OS_CHROMEOS cannot be autodetected in build_config.h like
38*6777b538SAndroid Build Coastguard Worker  # OS_LINUX and the like.
39*6777b538SAndroid Build Coastguard Worker  if (is_chromeos) {
40*6777b538SAndroid Build Coastguard Worker    defines = [ "OS_CHROMEOS" ]
41*6777b538SAndroid Build Coastguard Worker  }
42*6777b538SAndroid Build Coastguard Worker
43*6777b538SAndroid Build Coastguard Worker  if ((!is_chromeos || default_toolchain != "//build/toolchain/cros:target") &&
44*6777b538SAndroid Build Coastguard Worker      (!use_custom_libcxx || current_cpu == "mipsel")) {
45*6777b538SAndroid Build Coastguard Worker    libs = [ "atomic" ]
46*6777b538SAndroid Build Coastguard Worker  }
47*6777b538SAndroid Build Coastguard Worker}
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard Workerconfig("libcap") {
50*6777b538SAndroid Build Coastguard Worker  libs = [ "cap" ]
51*6777b538SAndroid Build Coastguard Worker}
52*6777b538SAndroid Build Coastguard Worker
53*6777b538SAndroid Build Coastguard Workerconfig("libresolv") {
54*6777b538SAndroid Build Coastguard Worker  libs = [ "resolv" ]
55*6777b538SAndroid Build Coastguard Worker}
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard Workerif (use_glib) {
58*6777b538SAndroid Build Coastguard Worker  pkg_config("glib") {
59*6777b538SAndroid Build Coastguard Worker    packages = [
60*6777b538SAndroid Build Coastguard Worker      "glib-2.0",
61*6777b538SAndroid Build Coastguard Worker      "gmodule-2.0",
62*6777b538SAndroid Build Coastguard Worker      "gobject-2.0",
63*6777b538SAndroid Build Coastguard Worker      "gthread-2.0",
64*6777b538SAndroid Build Coastguard Worker    ]
65*6777b538SAndroid Build Coastguard Worker    defines = [
66*6777b538SAndroid Build Coastguard Worker      "GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56",
67*6777b538SAndroid Build Coastguard Worker      "GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56",
68*6777b538SAndroid Build Coastguard Worker    ]
69*6777b538SAndroid Build Coastguard Worker  }
70*6777b538SAndroid Build Coastguard Worker}
71