diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e410039..1afe1d13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,24 +167,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) # Check if CLOCK_MONOTONIC is available for clock_gettime(). check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_DECL_CLOCK_MONOTONIC)