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