blob: 4297663191336046be242068601b3b39adcacfff [file] [log] [blame]
# Copyright 2017 The Fuchsia 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/clang/clang.gni")
import("//build/config/sysroot.gni")
config("compiler") {
cflags_cc = [
# macOS needs this to not complain about C++17isms that older macOS
# system libc++ doesn't support. However, we use our own toolchain's
# static libc++ anyway.
"-faligned-allocation",
]
cflags_objcc = [
"-std=c++14",
"-stdlib=libc++",
]
defines = [
# libc++ headers mark some symbols as unavailable on macOS by default
# because the system libc++ doesn't support them. But we use our own
# toolchain's static libc++ anyway.
"_LIBCPP_DISABLE_AVAILABILITY",
]
ldflags = [
"-nostdlib++",
"${clang_prefix}/../lib/libc++.a",
]
configs = [ ":sysroot" ]
}
config("sysroot") {
cflags = [ "--sysroot=$sysroot" ]
ldflags = cflags
asmflags = cflags
}
# On Mac, this is used for everything except static libraries.
config("mac_dynamic_flags") {
ldflags = [
"-Wl,-search_paths_first",
"-L.",
# 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/../../..",
]
}
# On Mac, this is used only for executables.
config("mac_executable_flags") {
ldflags = [ "-Wl,-pie" ] # Position independent.
}
# Standard libraries.
config("default_libs") {
libs = [
"AppKit.framework",
"ApplicationServices.framework",
"Carbon.framework",
"CoreFoundation.framework",
"CoreVideo.framework",
"Foundation.framework",
"OpenGL.framework",
"Security.framework",
"IOKit.framework",
]
}