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().