From ed1273d4ddee160f847cbee28714c79353022a3c Mon Sep 17 00:00:00 2001 From: RichardLuo Date: Tue, 25 Jun 2024 22:57:53 +0800 Subject: [PATCH] [libc++] change the visibility of libc++ header to public in libcxx module (#91240) This PR addresses a problem that headers may not be able to be found if `#include` is used with std modules. Consider the following file: #include import std; int main(int, const char **) { } Boost will include something from libc++, but we are using -nostdinc++ at [1] so the compiler can not find any default std header. Therefore the locally built header needs to be public. [1]: https://github.com/RichardLuo0/llvm-project/blob/15fdd47c4b110b64dc61f636e42e0484bf8bdbe0/libcxx/modules/CMakeLists.txt.in#L52 --- libcxx/modules/CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/modules/CMakeLists.txt.in b/libcxx/modules/CMakeLists.txt.in index c35f6fecb1fd..9fef16e9cefd 100644 --- a/libcxx/modules/CMakeLists.txt.in +++ b/libcxx/modules/CMakeLists.txt.in @@ -41,7 +41,7 @@ target_sources(std std.cppm ) -target_include_directories(std SYSTEM PRIVATE @LIBCXX_CONFIGURED_INCLUDE_DIRS@) +target_include_directories(std SYSTEM PUBLIC @LIBCXX_CONFIGURED_INCLUDE_DIRS@) if (NOT @LIBCXX_ENABLE_EXCEPTIONS@) target_compile_options(std PUBLIC -fno-exceptions)