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