CMake: Find librt
Change-Id: Ibc39ba7a385146cd0428b78e12a793f0ddbfae91 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
This commit is contained in:
parent
df2975236d
commit
bebbb41030
27
cmake/FindWrapRt.cmake
Normal file
27
cmake/FindWrapRt.cmake
Normal file
@ -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}")
|
||||
|
@ -231,6 +231,7 @@ add_qt_module(Core
|
||||
tools/qvsnprintf.cpp
|
||||
LIBRARIES
|
||||
WrapDoubleConversion
|
||||
WrapRt
|
||||
tinycbor Threads::Threads ZLIB::ZLIB
|
||||
QtHarfBuzz
|
||||
PUBLIC_LIBRARIES Qt::Platform
|
||||
|
@ -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"
|
||||
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user