mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
cmake: Add NO_CACHE_IF_FAILED
option for checking linker flags
Use it for checking `-fsanitize`.
This change improves the user experience when the configuration step
fails due to a missing library. Now, there is no need to manually clean
the CMake cache after installing the required library.
Github-Pull: #32027
Rebased-From: 52ac17757e
This commit is contained in:
parent
7bc7af9951
commit
477345207b
2 changed files with 6 additions and 1 deletions
|
@ -376,6 +376,7 @@ if(SANITIZERS)
|
||||||
int main() { return 0; }
|
int main() { return 0; }
|
||||||
"
|
"
|
||||||
RESULT_VAR linker_supports_sanitizers
|
RESULT_VAR linker_supports_sanitizers
|
||||||
|
NO_CACHE_IF_FAILED
|
||||||
)
|
)
|
||||||
if(NOT linker_supports_sanitizers)
|
if(NOT linker_supports_sanitizers)
|
||||||
message(FATAL_ERROR "Linker did not accept requested flags, you are missing required libraries.")
|
message(FATAL_ERROR "Linker did not accept requested flags, you are missing required libraries.")
|
||||||
|
|
|
@ -20,7 +20,7 @@ In configuration output, this function prints a string by the following pattern:
|
||||||
function(try_append_linker_flag flag)
|
function(try_append_linker_flag flag)
|
||||||
cmake_parse_arguments(PARSE_ARGV 1
|
cmake_parse_arguments(PARSE_ARGV 1
|
||||||
TALF # prefix
|
TALF # prefix
|
||||||
"" # options
|
"NO_CACHE_IF_FAILED" # options
|
||||||
"TARGET;VAR;SOURCE;RESULT_VAR" # one_value_keywords
|
"TARGET;VAR;SOURCE;RESULT_VAR" # one_value_keywords
|
||||||
"IF_CHECK_PASSED" # multi_value_keywords
|
"IF_CHECK_PASSED" # multi_value_keywords
|
||||||
)
|
)
|
||||||
|
@ -68,6 +68,10 @@ function(try_append_linker_flag flag)
|
||||||
if(DEFINED TALF_RESULT_VAR)
|
if(DEFINED TALF_RESULT_VAR)
|
||||||
set(${TALF_RESULT_VAR} "${${result}}" PARENT_SCOPE)
|
set(${TALF_RESULT_VAR} "${${result}}" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT ${result} AND TALF_NO_CACHE_IF_FAILED)
|
||||||
|
unset(${result} CACHE)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
|
Loading…
Add table
Reference in a new issue