81 lines
2.5 KiB
Text
81 lines
2.5 KiB
Text
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("//chromium/build/config/c++/c++.gni")
|
|
import("//chromium/build/config/chromeos/ui_mode.gni")
|
|
import("//chromium/build/config/linux/pkg_config.gni")
|
|
import("//chromium/build/config/ui.gni")
|
|
|
|
group("linux") {
|
|
visibility = [ "//:optimize_gn_gen" ]
|
|
}
|
|
|
|
# This is included by reference in the //build/config/compiler config that
|
|
# is applied to all targets. It is here to separate out the logic that is
|
|
# Linux-only. This is not applied to Android, but is applied to ChromeOS.
|
|
config("compiler") {
|
|
if (target_cpu == "arm64") {
|
|
import("//chromium/build/config/arm.gni")
|
|
cflags = []
|
|
asmflags = []
|
|
if (arm_control_flow_integrity == "standard") {
|
|
cflags += [ "-mbranch-protection=standard" ]
|
|
asmflags += [ "-mbranch-protection=standard" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
# This is included by reference in the //build/config/compiler:runtime_library
|
|
# config that is applied to all targets. It is here to separate out the logic
|
|
# that is Linux-only. Please see that target for advice on what should go in
|
|
# :runtime_library vs. :compiler.
|
|
config("runtime_library") {
|
|
# Set here because OS_CHROMEOS cannot be autodetected in build_config.h like
|
|
# OS_LINUX and the like.
|
|
if (is_chromeos) {
|
|
defines = [ "OS_CHROMEOS" ]
|
|
}
|
|
|
|
# Mozilla disable libatomic on linux builds
|
|
if (false) {
|
|
if ((!(is_chromeos_ash || is_chromeos_lacros) ||
|
|
default_toolchain != "//chromium/build/toolchain/cros:target") &&
|
|
(!use_custom_libcxx || target_cpu == "mipsel")) {
|
|
libs = [ "atomic" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
config("libcap") {
|
|
libs = [ "cap" ]
|
|
}
|
|
|
|
config("libresolv") {
|
|
libs = [ "resolv" ]
|
|
}
|
|
|
|
# Mozilla disable glib - Bug 1654112 (hg sha 127ace4d8887)
|
|
if (false && use_glib) {
|
|
pkg_config("glib") {
|
|
packages = [
|
|
"glib-2.0",
|
|
"gmodule-2.0",
|
|
"gobject-2.0",
|
|
"gthread-2.0",
|
|
]
|
|
defines = [
|
|
"GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40",
|
|
"GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40",
|
|
]
|
|
}
|
|
}
|
|
|
|
# Ensures all exported symbols are added to the dynamic symbol table. This is
|
|
# necessary to expose Chrome's custom operator new() and operator delete() (and
|
|
# other memory-related symbols) to libraries. Otherwise, they might
|
|
# (de)allocate memory on a different heap, which would spell trouble if pointers
|
|
# to heap-allocated memory are passed over shared library boundaries.
|
|
config("export_dynamic") {
|
|
ldflags = [ "-rdynamic" ]
|
|
}
|