-function(check_atomics)
- check_cxx_source_runs("
- #include <atomic>
- int main() {
- std::atomic<int> i(0);
- return atomic_load(&i);
- }"
- HAVE_CXX_STDATOMIC)
- check_c_source_runs("
- #include <stdatomic.h>
- int main() {
- atomic_int i;
- atomic_init(&i, 0);
- return atomic_load(&i);
- }"
- HAVE_C_STDATOMIC)
- foreach(BUILTIN_ATOMIC_PREFIX IN ITEMS _ __c11)
- check_c_source_runs("
- int main() {
- long l = -1;
- return ${BUILTIN_ATOMIC_PREFIX}_atomic_add_fetch(&l,1,__ATOMIC_RELAXED);
- }"
- HAVE_BUILTIN_ATOMIC${BUILTIN_ATOMIC_PREFIX})
- if (HAVE_BUILTIN_ATOMIC${BUILTIN_ATOMIC_PREFIX})
- set(HAVE_BUILTIN_ATOMIC 1)
- break()
- endif()
- endforeach()
- check_c_source_runs("
+
+configure_define(HAVE_ATOMICS)
+
+check_cxx_source("
+ #include <atomic>
+ int main() {
+ std::atomic<int> i(0);
+ return atomic_load(&i);
+ }"
+ HAVE_CXX_STDATOMIC)
+
+check_c_source("
+ #include <stdatomic.h>
+ int main() {
+ atomic_int i;
+ atomic_init(&i, 0);
+ return atomic_load(&i);
+ }"
+ HAVE_C_STDATOMIC)
+
+
+configure_define(HAVE_BUILTIN_ATOMIC)
+configure_define_literal(BUILTIN_ATOMIC_PREFIX)
+foreach(BUILTIN_ATOMIC_PREFIX IN ITEMS __c11 _ "")
+ check_c_source("