blob: 5ea7f7dc6c4dc9aa1eff6c6071e6d73cde3c48a1 (
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
try_compile(
HAVE_REGEX
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/regex_test.c"
)
try_compile(
HAVE_STRNDUP
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/strndup_test.c"
)
try_compile(
HAVE_RAND_R
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/rand_r_test.c"
)
try_compile(
HAVE_PTHREAD_SETNAME_GNU
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/pthread_setname_gnu_test.c"
COMPILE_DEFINITIONS "-D_GNU_SOURCE"
LINK_LIBRARIES "-lpthread"
)
try_compile(
HAVE_PTHREAD_SETNAME_DARWIN
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/pthread_setname_darwin_test.c"
COMPILE_DEFINITIONS "-D_DARWIN_C_SOURCE"
LINK_LIBRARIES "-lpthread"
)
try_compile(
HAVE_PTHREAD_SETNAME_FREEBSD
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/pthread_setname_freebsd_test.c"
LINK_LIBRARIES "-lpthread"
)
# Atomic 32 tests {
set(LINK_ATOMIC NO)
set(HAVE_ATOMICS_32 NO)
set(HAVE_ATOMICS_32_SYNC NO)
try_compile(
_atomics_32
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/atomic_32_test.c"
)
if(_atomics_32)
set(HAVE_ATOMICS_32 YES)
else()
try_compile(
_atomics_32_lib
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/atomic_32_test.c"
LINK_LIBRARIES "-latomic"
)
if(_atomics_32_lib)
set(HAVE_ATOMICS_32 YES)
set(LINK_ATOMIC YES)
else()
try_compile(
HAVE_ATOMICS_32_SYNC
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/sync_32_test.c"
)
endif()
endif()
# }
# Atomic 64 tests {
set(HAVE_ATOMICS_64 NO)
set(HAVE_ATOMICS_64_SYNC NO)
try_compile(
_atomics_64
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/atomic_64_test.c"
)
if(_atomics_64)
set(HAVE_ATOMICS_64 YES)
else()
try_compile(
_atomics_64_lib
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/atomic_64_test.c"
LINK_LIBRARIES "-latomic"
)
if(_atomics_64_lib)
set(HAVE_ATOMICS_64 YES)
set(LINK_ATOMIC YES)
else()
try_compile(
HAVE_ATOMICS_64_SYNC
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/sync_64_test.c"
)
endif()
endif()
# }
# C11 threads
try_compile(
WITH_C11THREADS
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/c11threads_test.c"
LINK_LIBRARIES "-pthread"
)
# }
# CRC32C {
try_compile(
WITH_CRC32C_HW
"${CMAKE_CURRENT_BINARY_DIR}/try_compile"
"${TRYCOMPILE_SRC_DIR}/crc32c_hw_test.c"
)
# }
|