summaryrefslogtreecommitdiffstats
path: root/cmake/FindWrapRt.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindWrapRt.cmake')
-rw-r--r--cmake/FindWrapRt.cmake29
1 files changed, 23 insertions, 6 deletions
diff --git a/cmake/FindWrapRt.cmake b/cmake/FindWrapRt.cmake
index 779d18d1a0..b394b062da 100644
--- a/cmake/FindWrapRt.cmake
+++ b/cmake/FindWrapRt.cmake
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
# We can't create the same interface imported target multiple times, CMake will complain if we do
# that. This can happen if the find_package call is done in multiple different subdirectories.
if(TARGET WrapRt::WrapRt)
@@ -18,17 +21,31 @@ if(LIBRT)
endif()
check_cxx_source_compiles("
-#include <unistd.h>
#include <time.h>
+#include <unistd.h>
-int main(int argc, char *argv[]) {
- timespec ts; clock_gettime(CLOCK_REALTIME, &ts);
-}" HAVE_GETTIME)
+int main(int, char **) {
+ struct timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+ return 0;
+}
+" HAVE_GETTIME)
-cmake_pop_check_state()
+check_cxx_source_compiles("
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+
+int main(int, char **) {
+ shm_open(\"test\", O_RDWR | O_CREAT | O_EXCL, 0666);
+ shm_unlink(\"test\");
+ return 0;
+}
+" HAVE_SHM_OPEN_SHM_UNLINK)
+cmake_pop_check_state()
-if(HAVE_GETTIME)
+if(HAVE_GETTIME OR HAVE_SHM_OPEN_SHM_UNLINK)
set(WrapRt_FOUND ON)
add_library(WrapRt::WrapRt INTERFACE IMPORTED)
if (LIBRT)