[PATCH] D74247: [gn build] make 'clang' target depend on libcxx/include on mac
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 10 04:45:04 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3dc47979bb9e: [gn build] make 'clang' target depend on libcxx/include on mac (authored by thakis).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74247/new/
https://reviews.llvm.org/D74247
Files:
llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Index: llvm/utils/gn/secondary/libcxx/include/BUILD.gn
===================================================================
--- llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+++ llvm/utils/gn/secondary/libcxx/include/BUILD.gn
@@ -210,7 +210,18 @@
"wchar.h",
"wctype.h",
]
- deps = [ "//libcxxabi/include" ]
+ deps = []
+ if (target_os != "mac" && target_os != "win") {
+ # libcxx/cmake/Modules/HandleLibCXXABI.cmake sets
+ # LIBCXX_CXX_ABI_HEADER_TARGET if the libcxx abi library either of
+ # "libstdc++", "libsupc++", "libcxxabi", "libcxxrt", but not if it's "none",
+ # "default", or "vcruntime". So on Windows, these don't get copied due to
+ # LIBCXX_CXX_ABI_HEADER_TARGET not being set.
+ # On macOS, libcxx/CMakeLists.txt sets LIBCXX_CXX_ABI_SYSTEM to 1, which
+ # causes an empty header list to be passed to setup_abi_lib, so these
+ # don't get copied on macOS due to that.
+ deps += [ "//libcxxabi/include" ]
+ }
if (!libcxx_needs_site_config) {
sources += [ "__config" ]
} else {
Index: llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
===================================================================
--- llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
+++ llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
@@ -80,6 +80,13 @@
plist = get_target_outputs(":write_info_plist")
ldflags = [ "-Wl,-sectcreate,__TEXT,__info_plist," +
rebase_path(plist[0], root_out_dir) ]
+
+ # On macOS, libcxx headers are bundled with the compiler, not with the
+ # sysroot. As a convenience, automatically copy them over when buildling
+ # clang. This is different from the CMake build, which requires devs to
+ # explicitly build the "libcxx" target (which also needlessly compiles the
+ # libcxx sources) to get a working compiler.
+ deps += [ "//libcxx/include" ]
}
sources = [
"cc1_main.cpp",
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74247.243513.patch
Type: text/x-patch
Size: 1912 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200210/3716f564/attachment.bin>
More information about the llvm-commits
mailing list