mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
100 lines
3.3 KiB
Plaintext
100 lines
3.3 KiB
Plaintext
|
# 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/sysroot.gni")
|
||
|
import("//build/config/mac/mac_sdk.gni")
|
||
|
import("//build/config/mac/symbols.gni")
|
||
|
|
||
|
# 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.
|
||
|
config("compiler") {
|
||
|
# These flags are shared between the C compiler and linker.
|
||
|
common_mac_flags = []
|
||
|
|
||
|
# CPU architecture.
|
||
|
if (current_cpu == "x64") {
|
||
|
common_mac_flags += [
|
||
|
"-arch",
|
||
|
"x86_64",
|
||
|
]
|
||
|
} else if (current_cpu == "x86") {
|
||
|
common_mac_flags += [
|
||
|
"-arch",
|
||
|
"i386",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# This is here so that all files get recompiled after an Xcode update.
|
||
|
# (defines are passed via the command line, and build system rebuild things
|
||
|
# when their commandline changes). Nothing should ever read this define.
|
||
|
defines = [ "CR_XCODE_VERSION=$xcode_version" ]
|
||
|
|
||
|
asmflags = common_mac_flags
|
||
|
cflags = common_mac_flags
|
||
|
|
||
|
# Without this, the constructors and destructors of a C++ object inside
|
||
|
# an Objective C struct won't be called, which is very bad.
|
||
|
cflags_objcc = [ "-fobjc-call-cxx-cdtors" ]
|
||
|
|
||
|
ldflags = common_mac_flags
|
||
|
|
||
|
# Create a new read-only segment for protected memory. The default segments
|
||
|
# (__TEXT and __DATA) are mapped read-execute and read-write by default.
|
||
|
ldflags += [ "-segprot", "PROTECTED_MEMORY", "rw", "r" ]
|
||
|
|
||
|
if (save_unstripped_output) {
|
||
|
ldflags += [ "-Wcrl,unstripped," + rebase_path(root_out_dir) ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# 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 Mac-only. Please see that target for advice on what should go in
|
||
|
# :runtime_library vs. :compiler.
|
||
|
config("runtime_library") {
|
||
|
common_flags = [
|
||
|
"-isysroot",
|
||
|
rebase_path(sysroot, root_build_dir),
|
||
|
"-mmacosx-version-min=$mac_deployment_target",
|
||
|
]
|
||
|
|
||
|
asmflags = common_flags
|
||
|
cflags = common_flags
|
||
|
ldflags = common_flags
|
||
|
|
||
|
# Prevent Mac OS X AssertMacros.h (included by system header) from defining
|
||
|
# macros that collide with common names, like 'check', 'require', and
|
||
|
# 'verify'.
|
||
|
# http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/AssertMacros.h
|
||
|
defines = [ "__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0" ]
|
||
|
}
|
||
|
|
||
|
# On Mac, this is used for everything except static libraries.
|
||
|
config("mac_dynamic_flags") {
|
||
|
ldflags = [ "-Wl,-ObjC" ] # Always load Objective-C categories and classes.
|
||
|
|
||
|
if (is_component_build) {
|
||
|
ldflags += [
|
||
|
# Path for loading shared libraries for unbundled binaries.
|
||
|
"-Wl,-rpath,@loader_path/.",
|
||
|
|
||
|
# Path for loading shared libraries for bundled binaries. Get back from
|
||
|
# Binary.app/Contents/MacOS.
|
||
|
"-Wl,-rpath,@loader_path/../../..",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# The ldflags referenced below are handled by
|
||
|
# //build/toolchain/mac/linker_driver.py.
|
||
|
# Remove this config if a target wishes to change the arguments passed to the
|
||
|
# strip command during linking. This config by default strips all symbols
|
||
|
# from a binary, but some targets may wish to specify an exports file to
|
||
|
# preserve specific symbols.
|
||
|
config("strip_all") {
|
||
|
if (enable_stripping) {
|
||
|
ldflags = [ "-Wcrl,strip,-x,-S" ]
|
||
|
}
|
||
|
}
|