summaryrefslogtreecommitdiff
path: root/Source/WebKit2/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/CMakeLists.txt')
-rw-r--r--Source/WebKit2/CMakeLists.txt35
1 files changed, 30 insertions, 5 deletions
diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt
index e5d08ed68..aa7863cbd 100644
--- a/Source/WebKit2/CMakeLists.txt
+++ b/Source/WebKit2/CMakeLists.txt
@@ -1,3 +1,6 @@
+include(CheckCXXSourceCompiles)
+include(CheckFunctionExists)
+
set(WebKit2_INCLUDE_DIRECTORIES
"${JAVASCRIPTCORE_DIR}/llint"
"${WEBKIT2_DIR}"
@@ -740,11 +743,33 @@ set(PluginProcess_LIBRARIES
WebKit2
)
-# librt is needed for shm_open on Linux.
-find_library(LIBRT_LIBRARIES NAMES rt)
-mark_as_advanced(LIBRT_LIBRARIES)
-if (LIBRT_LIBRARIES)
- list(APPEND WebKit2_LIBRARIES ${LIBRT_LIBRARIES})
+if (COMPILER_IS_GCC_OR_CLANG)
+ set(ATOMIC_TEST_SOURCE
+ "
+ #include <atomic>
+ int main() { std::atomic<int64_t> i(0); i++; return 0; }
+ "
+ )
+ check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_IS_BUILTIN)
+ if (NOT ATOMIC_INT64_IS_BUILTIN)
+ set(CMAKE_REQUIRED_LIBRARIES atomic)
+ check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_REQUIRES_LIBATOMIC)
+ if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
+ list(APPEND WebKit2_LIBRARIES atomic)
+ endif ()
+ unset(CMAKE_REQUIRED_LIBRARIES)
+ endif ()
+endif ()
+
+if (UNIX)
+ check_function_exists(shm_open SHM_OPEN_EXISTS)
+ if (NOT SHM_OPEN_EXISTS)
+ set(CMAKE_REQUIRED_LIBRARIES rt)
+ check_function_exists(shm_open SHM_OPEN_REQUIRES_LIBRT)
+ if (SHM_OPEN_REQUIRES_LIBRT)
+ list(APPEND WebKit2_LIBRARIES rt)
+ endif ()
+ endif ()
endif ()
macro(ADD_WEBKIT2_PREFIX_HEADER _target)