From: Chad Versace <[email protected]>

Set CMake cache var PIGLIT_HAS_POSIX_CLOCK_MONOTONIC if
clock_gettime() is available with CLOCK_MONOTONIC.

Tests that need to measure time, such as GL_ARB_sync tests, will use
Posix clocks.

v2: ([email protected])
 * PIGLIT_HAS_POSIX_CLOCKS => PIGLIT_HAS_POSIX_CLOCK_MONOTONIC
 * Link with librt. On older systems, clocks_gettime may be in
   librt rather than glibc.

CC: Nicholas Mack <[email protected]>
Signed-off-by: Chad Versace <[email protected]>
Cc: Chad Versace <[email protected]>
Cc: Ian Romanick <[email protected]>
Signed-off-by: Jordan Justen <[email protected]>
---
 CMakeLists.txt |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ec5ddf..7404287 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 2.6)
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
 
 INCLUDE (CheckCCompilerFlag)
+INCLUDE (CheckCSourceCompiles)
 INCLUDE (CheckCXXCompilerFlag)
 INCLUDE (CheckFunctionExists)
 INCLUDE (CheckIncludeFile)
@@ -266,6 +267,24 @@ else (APPLE)
        )
 endif (APPLE)
 
+FIND_LIBRARY(HAVE_LIBRT NAMES rt)
+if(HAVE_LIBRT)
+    set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} rt)
+endif()
+check_c_source_compiles(
+       "
+       #define _POSIX_C_SOURCE 199309L
+       #include <time.h>
+       int main() { return clock_gettime(CLOCK_MONOTONIC, NULL); }
+       "
+       PIGLIT_HAS_POSIX_CLOCK_MONOTONIC
+)
+set(CMAKE_REQUIRED_LIBRARIES)
+
+if(PIGLIT_HAS_POSIX_CLOCK_MONOTONIC)
+    add_definitions(-DPIGLIT_HAS_POSIX_CLOCK_MONOTONIC)
+endif()
+
 FIND_LIBRARY(OPENGL_egl_LIBRARY
       NAMES EGL
       PATHS /usr/lib
-- 
1.7.10.4

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to