diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2021-07-02 08:47:32 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2021-07-09 12:50:50 (GMT) |
commit | 14e57e9637964594461711954c6c906bc22eb7c7 (patch) | |
tree | 7e6bbfb2303d1c4377470180a36a6103df1a55fb /Modules/CMakeSwiftInformation.cmake | |
parent | 9c5132a586562c00511fd8ff2bac0250c70dae95 (diff) | |
download | CMake-14e57e9637964594461711954c6c906bc22eb7c7.zip CMake-14e57e9637964594461711954c6c906bc22eb7c7.tar.gz CMake-14e57e9637964594461711954c6c906bc22eb7c7.tar.bz2 |
LINK_WHAT_YOU_USE feature: externalize configuration
Currently, this feature is only supported on ELF platforms. So, the property
LINK_WHAT_YOU_USE will be ignored for other plateforms.
Moreover, flags and commands are now controled by CMake variables.
Fixes: #20174
Diffstat (limited to 'Modules/CMakeSwiftInformation.cmake')
-rw-r--r-- | Modules/CMakeSwiftInformation.cmake | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Modules/CMakeSwiftInformation.cmake b/Modules/CMakeSwiftInformation.cmake index 8f0909c..ecad1d5 100644 --- a/Modules/CMakeSwiftInformation.cmake +++ b/Modules/CMakeSwiftInformation.cmake @@ -70,6 +70,15 @@ set(CMAKE_Swift_FLAGS_RELEASE_INIT "-O") set(CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT "-O -g") set(CMAKE_Swift_FLAGS_MINSIZEREL_INIT "-Osize") +if(CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + if(NOT DEFINED CMAKE_Swift_LINK_WHAT_YOU_USE_FLAG) + set(CMAKE_Swift_LINK_WHAT_YOU_USE_FLAG "LINKER:--no-as-needed") + endif() + if(NOT DEFINED CMAKE_LINK_WHAT_YOU_USE_CHECK) + set(CMAKE_LINK_WHAT_YOU_USE_CHECK ldd -u -r) + endif() +endif() + cmake_initialize_per_config_variable(CMAKE_Swift_FLAGS "Swift Compiler Flags") # NOTE(compnerd) we do not have an object compile rule since we build the objects as part of the link step |