diff options
author | Jia Tan <jiat0218@gmail.com> | 2023-09-12 22:36:12 +0800 |
---|---|---|
committer | Jia Tan <jiat0218@gmail.com> | 2023-10-31 01:03:25 +0800 |
commit | a70e96d2da761b8b3a77bf14e08002d871e5950b (patch) | |
tree | 86b9f052d205849feb7547a68e9e630b4e37dbaa /CMakeLists.txt | |
parent | CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. (diff) | |
download | xz-a70e96d2da761b8b3a77bf14e08002d871e5950b.tar.xz |
CMake: Fix time.h checks not running on second CMake run.
If CMake was configured more than once, HAVE_CLOCK_GETTIME and
HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
for librt being needed to provide HAVE_CLOCK_GETTIME was also
simplified.
Diffstat (limited to '')
-rw-r--r-- | CMakeLists.txt | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f17fe081..d81fefe0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,24 +150,26 @@ tuklib_integer(ALL) # Check for clock_gettime(). Do this before checking for threading so # that we know there if CLOCK_MONOTONIC is available. -if(NOT WIN32 AND NOT DEFINED HAVE_CLOCK_GETTIME) +if(NOT WIN32) check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME) + if(NOT HAVE_CLOCK_GETTIME) # With glibc <= 2.17 or Solaris 10 this needs librt. - unset(HAVE_CLOCK_GETTIME CACHE) - + # Add librt for the next check for HAVE_CLOCK_GETTIME. If it is + # found after including the library, we know that librt is required. list(INSERT CMAKE_REQUIRED_LIBRARIES 0 rt) - check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME) + check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME_LIBRT) - # If it was found now, add it to all targets and keep it - # in CMAKE_REQUIRED_LIBRARIES for further tests too. - if(HAVE_CLOCK_GETTIME) + # If it was found now, add librt to all targets and keep it in + # CMAKE_REQUIRED_LIBRARIES for further tests too. + if(HAVE_CLOCK_GETTIME_LIBRT) link_libraries(rt) else() list(REMOVE_AT CMAKE_REQUIRED_LIBRARIES 0) endif() endif() - if(HAVE_CLOCK_GETTIME) + + if(HAVE_CLOCK_GETTIME OR HAVE_CLOCK_GETTIME_LIBRT) add_compile_definitions(HAVE_CLOCK_GETTIME) # Check if CLOCK_MONOTONIC is available for clock_gettime(). |