-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[libc++] Install modules. #75741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[libc++] Install modules. #75741
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_TEST_PARAMS "std=c++20" CACHE STRING "") | ||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_TEST_PARAMS "std=c++23" CACHE STRING "") | ||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_TEST_PARAMS "std=c++26" CACHE STRING "") | ||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_HARDENING_MODE "extensive" CACHE STRING "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_TEST_PARAMS "enable_experimental=False" CACHE STRING "") | ||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_MONOTONIC_CLOCK OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
set(LIBCXX_INSTALL_MODULES ON CACHE BOOL "") # TODO MODULES Remove when enabled automatically. | ||
set(LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
mordante marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"version": 1, | ||
"revision": 1, | ||
"modules": [ | ||
{ | ||
"logical-name": "std", | ||
"source-path": "@LIBCXX_MODULE_RELATIVE_PATH@/std.cppm", | ||
"is-standard-library": true, | ||
"local-arguments": { | ||
"system-include-directories": [ | ||
"@LIBCXX_MODULE_RELATIVE_PATH@" | ||
] | ||
} | ||
}, | ||
{ | ||
"logical-name": "std.compat", | ||
"source-path": "@LIBCXX_MODULE_RELATIVE_PATH@/std.compat.cppm", | ||
"is-std-library": true, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This isn't consistent with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could we please use valid python identifiers for keys? That way we can load the json into typed models. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or has that ship sailed? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FWIW, P1689 uses kebab-case as well. Note that 18 is in rc3; I don't know how much "Python APIs are easier" is to make a release blocker versus "the file is not consistent with itself". Something for release managers to decide. Note that there's nothing stopping a typed model from acting on it as-is because a function can transform these into identifier names (IME, the explicitness from things like There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure. I agree that this probably isn't important enough to do anything about. And standardizing behind a specific format is more important. But I also don't think it's unreasonable to prefer interacting with the data in a typed/schema-enforced way, and that treating keys as identifiers rather than strings is preferable to achieve that. However, if they're no tooling that yet depends on the format, I think it's worth changing. Because consistency isn't everything, but it's nice to have, and we might lose the ability to have it later. That said, this can land after the release, it's just a little uglier of a scenario. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've no strong opinion about the naming. However as mentioned in the commit message the naming is based on a discussion in SG15 and as @mathstuf mentioned is used in P1689. (clang-scan-deps and CMake (and probably others too) have implemented this paper.) So IMO changing the naming should be discussed in SG15. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Thanks for catching this. I should have used copy-paste programming ;-) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
No problem. Was very confused when "no such key" errors came up. Changed it to the one in the line it complained about…still errored. Finally saw the difference. Just glad I got around to testing this before the final release. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. btw does that mean you're working on implementing this is CMake? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep :) . |
||
"local-arguments": { | ||
"system-include-directories": [ | ||
"@LIBCXX_MODULE_RELATIVE_PATH@" | ||
] | ||
} | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -398,18 +398,23 @@ if (NOT CMAKE_CONFIGURATION_TYPES) | |
endif() | ||
if(LIBCXX_INSTALL_HEADERS) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In your commit message, please explain what the patch does. In particular, please explain the location where we install the You referenced the SG15 discussion, but I would like us to capture the important points of that discussion in the commit message. |
||
set(header_install_target install-cxx-headers) | ||
endif() | ||
if(LIBCXX_INSTALL_MODULES) | ||
set(module_install_target install-cxx-modules) | ||
endif() | ||
add_custom_target(install-cxx | ||
DEPENDS ${lib_install_target} | ||
cxx_experimental | ||
mordante marked this conversation as resolved.
Show resolved
Hide resolved
|
||
${header_install_target} | ||
${module_install_target} | ||
COMMAND "${CMAKE_COMMAND}" | ||
-DCMAKE_INSTALL_COMPONENT=cxx | ||
-P "${LIBCXX_BINARY_DIR}/cmake_install.cmake") | ||
add_custom_target(install-cxx-stripped | ||
DEPENDS ${lib_install_target} | ||
cxx_experimental | ||
${header_install_target} | ||
${module_install_target} | ||
COMMAND "${CMAKE_COMMAND}" | ||
-DCMAKE_INSTALL_COMPONENT=cxx | ||
-DCMAKE_INSTALL_DO_STRIP=1 | ||
|
Uh oh!
There was an error while loading. Please reload this page.