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