diff options
-rw-r--r-- | cmake/FindWrapRt.cmake | 27 | ||||
-rw-r--r-- | src/corelib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/corelib/configure.cmake | 4 | ||||
-rwxr-xr-x | util/cmake/configurejson2cmake.py | 1 |
4 files changed, 32 insertions, 1 deletions
diff --git a/cmake/FindWrapRt.cmake b/cmake/FindWrapRt.cmake new file mode 100644 index 0000000000..221399b259 --- /dev/null +++ b/cmake/FindWrapRt.cmake @@ -0,0 +1,27 @@ +include(CheckCXXSourceCompiles) + +find_library(LIBRT rt) + +set(_libraries "${CMAKE_REQUIRED_LIBRARIES}") +if(LIBRT_FOUND) + list(APPEND CMAKE_REQUIRED_LIBRARIES "${LIBRT}") +endif() + +check_cxx_source_compiles(" +#include <unistd.h> +#include <time.h> + +int main(int argc, char *argv[]) { + timespec ts; clock_gettime(CLOCK_REALTIME, &ts); +}" HAVE_GETTIME) + +set(CMAKE_REQUIRED_LIBRARIES "${_libraries}") +unset(_libraries) + +add_library(WrapRt INTERFACE) +if (LIBRT_FOUND) + target_link_libraries(WrapRt INTERFACE "${LIBRT}") +endif() + +set(WrapRt_FOUND "${HAVE_GETTIME}") + diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index eaa2ab8654..c56b003137 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -231,6 +231,7 @@ add_qt_module(Core tools/qvsnprintf.cpp LIBRARIES WrapDoubleConversion + WrapRt tinycbor Threads::Threads ZLIB::ZLIB QtHarfBuzz PUBLIC_LIBRARIES Qt::Platform diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 7836577e5c..a8acac8f81 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -18,6 +18,8 @@ find_package(Libsystemd) set_package_properties(Libsystemd PROPERTIES TYPE OPTIONAL) find_package(Atomic) set_package_properties(Atomic PROPERTIES TYPE OPTIONAL) +find_package(WrapRt) +set_package_properties(WrapRt PROPERTIES TYPE OPTIONAL) find_package(PCRE2) set_package_properties(PCRE2 PROPERTIES TYPE REQUIRED) @@ -340,7 +342,7 @@ closelog(); qt_feature("clock_gettime" PRIVATE LABEL "clock_gettime()" - CONDITION UNIX AND libs.librt OR FIXME + CONDITION UNIX AND WrapRt_FOUND ) qt_feature("clock_monotonic" PUBLIC LABEL "POSIX monotonic clock" diff --git a/util/cmake/configurejson2cmake.py b/util/cmake/configurejson2cmake.py index 27a72202d2..03902f1648 100755 --- a/util/cmake/configurejson2cmake.py +++ b/util/cmake/configurejson2cmake.py @@ -67,6 +67,7 @@ def map_library(lib: str) -> Union[str, LibraryMapping, List[str]]: 'libpng': 'PNG', 'libpng': 'PNG', 'libproxy': 'libproxy', + 'librt': 'WrapRt', 'libudev': 'Libudev', 'opengl': LibraryMapping(package="OpenGL", resultVariable="OpenGL_OpenGL"), 'openssl_headers': LibraryMapping(package="OpenSSL", resultVariable="OPENSSL_INCLUDE_DIR", appendFoundSuffix=False), |