blob: c84bf89718bb2778cc6cd2de45af10bd1ac7f444 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
include(CheckCXXSourceCompiles)
include(CheckCXXSourceRuns)
include(CheckLibraryExists)
check_library_exists(pthread pthread_condattr_setclock "" HAVE_PTHREAD_CONDATTR_SETCLOCK)
check_include_files(uuid/uuid.h HAVE_LIBUUID_H)
if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
set(CMAKE_REQUIRED_LIBRARIES uuid)
endif()
check_function_exists(uuid_generate_random HAVE_UUID_GENERATE_RANDOM)
check_function_exists(uuid_generate HAVE_UUID_GENERATE)
set(CMAKE_REQUIRED_LIBRARIES)
check_cxx_source_runs("
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
int main()
{
int ret;
struct timespec ts;
ret = clock_gettime(CLOCK_MONOTONIC, &ts);
exit(ret);
}" HAVE_CLOCK_MONOTONIC)
check_cxx_source_runs("
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
int main()
{
int ret;
struct timespec ts;
ret = clock_gettime(CLOCK_MONOTONIC_COARSE, &ts);
exit(ret);
}" HAVE_CLOCK_MONOTONIC_COARSE)
check_cxx_source_runs("
#include <stdlib.h>
#include <mach/mach_time.h>
int main()
{
int ret;
mach_timebase_info_data_t timebaseInfo;
ret = mach_timebase_info(&timebaseInfo);
mach_absolute_time();
exit(ret);
}" HAVE_MACH_ABSOLUTE_TIME)
set(CMAKE_REQUIRED_LIBRARIES pthread)
check_cxx_source_runs("
#include <stdlib.h>
#include <sched.h>
int main(void)
{
if (sched_getcpu() >= 0)
{
exit(0);
}
exit(1);
}" HAVE_SCHED_GETCPU)
set(CMAKE_REQUIRED_LIBRARIES)
if(NOT HAVE_LIBUUID_H)
unset(HAVE_LIBUUID_H CACHE)
message(FATAL_ERROR "Cannot find libuuid. Try installing uuid-dev or the appropriate packages for your platform")
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|