summaryrefslogtreecommitdiff
path: root/deps/v8/build/config/c++/c++.gni
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-07 22:45:47 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-07 22:45:47 +0200
commit65e39b7046a29aa299f06285441b62bcf1e4df01 (patch)
tree2eb012aabb59533b954aa169199733292de336cf /deps/v8/build/config/c++/c++.gni
parent936cd90b7def6ef7c1e0b80265a9dc77a9ad23c6 (diff)
downloadandroid-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.tar.gz
android-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.tar.bz2
android-node-v8-65e39b7046a29aa299f06285441b62bcf1e4df01.zip
Move v8/build into this repository.
Since we need to patch some files, we don't let depot_tools manage these files anymore. build.git commit a0b2e3b2708bcf81ec00ac1738b586bcc5e04eea
Diffstat (limited to 'deps/v8/build/config/c++/c++.gni')
-rw-r--r--deps/v8/build/config/c++/c++.gni64
1 files changed, 64 insertions, 0 deletions
diff --git a/deps/v8/build/config/c++/c++.gni b/deps/v8/build/config/c++/c++.gni
new file mode 100644
index 0000000000..4deaf03575
--- /dev/null
+++ b/deps/v8/build/config/c++/c++.gni
@@ -0,0 +1,64 @@
+# Copyright 2017 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/sanitizers/sanitizers.gni")
+
+declare_args() {
+ # Use in-tree libc++ (buildtools/third_party/libc++ and
+ # buildtools/third_party/libc++abi) instead of the system C++ library for C++
+ # standard library support.
+ # Don't check in changes that set this to false for more platforms; doing so
+ # is not supported.
+ use_custom_libcxx =
+ is_fuchsia || is_android || is_mac || is_ios ||
+ (is_linux &&
+ (!is_chromeos || default_toolchain != "//build/toolchain/cros:target"))
+
+ # Use libc++ instead of stdlibc++ when using the host_cpu toolchain, even if
+ # use_custom_libcxx is false. This is useful for cross-compiles where a custom
+ # toolchain for the target_cpu has been set as the default toolchain, but
+ # use_custom_libcxx should still be true when building for the host. The
+ # expected usage is to set use_custom_libcxx=false and
+ # use_custom_libcxx_for_host=true in the passed in buildargs.
+ use_custom_libcxx_for_host = false
+}
+
+use_custom_libcxx =
+ use_custom_libcxx || (use_custom_libcxx_for_host && current_cpu == host_cpu)
+use_custom_libcxx = use_custom_libcxx && !is_nacl
+
+declare_args() {
+ # WARNING: Setting this to a non-default value is highly discouraged.
+ # If true, libc++ will be built as a shared library; otherwise libc++ will be
+ # linked statically. Setting this to something other than the default is
+ # unsupported and can be broken by libc++ rolls. Note that if this is set to
+ # true, you must also set libcxx_abi_unstable=false, which is bad for
+ # performance and memory use.
+ libcxx_is_shared = use_custom_libcxx && is_component_build
+}
+
+# libc++abi needs to be exported from executables to be picked up by shared
+# libraries on certain instrumented builds.
+export_libcxxabi_from_executables =
+ use_custom_libcxx && !is_win && !is_component_build &&
+ (is_asan || is_ubsan_vptr)
+
+# On Android, many shared libraries get loaded from the context of a JRE. In
+# this case, there's no "main executable" to export libc++abi from. We could
+# export libc++abi from each "toplevel" shared library instead, but that would
+# require adding an explicit dependency for each one, and might introduce
+# subtle, hard-to-fix problems down the line if the dependency is missing.
+#
+# export_libcxxabi_from_executables was added to avoid having an RPATH set in
+# static sanitizer builds just for executables to find libc++. But on Android,
+# the Bionic dynamic loader doesn't even look at RPATH; instead, LD_LIBRARY_PATH
+# is set for tests. Because of this, we make libc++ a shared library on android
+# since it should get loaded properly.
+if (is_android && export_libcxxabi_from_executables) {
+ export_libcxxabi_from_executables = false
+ libcxx_is_shared = true
+}
+
+libcxx_prefix = "//buildtools/third_party/libc++/trunk"
+libcxxabi_prefix = "//buildtools/third_party/libc++abi/trunk"