| # 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("//build/config/c++/c++.gni") |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/linux/pkg_config.gni") |
| import("//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") { |
| } |
| |
| # 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" ] |
| } |
| |
| if ((!(is_chromeos_ash || is_chromeos_lacros) || |
| default_toolchain != "//build/toolchain/cros:target") && |
| (!use_custom_libcxx || current_cpu == "mipsel")) { |
| libs = [ "atomic" ] |
| } |
| } |
| |
| config("libcap") { |
| libs = [ "cap" ] |
| } |
| |
| config("libresolv") { |
| libs = [ "resolv" ] |
| } |
| |
| if (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" ] |
| } |