File: CheckAtomic.cmake

package info (click to toggle)
p8-platform 2.1.0.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 504 kB
  • ctags: 1,296
  • sloc: cpp: 5,674; ansic: 766; makefile: 5
file content (10 lines) | stat: -rw-r--r-- 614 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
include(CheckCXXSourceCompiles)

check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
if (HAVE_LIBATOMIC)
  list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
endif()

CHECK_CXX_SOURCE_COMPILES("int main() { long* temp=0; long ret=__sync_add_and_fetch(temp, 1); return 0; }" HAS_BUILTIN_SYNC_ADD_AND_FETCH)
CHECK_CXX_SOURCE_COMPILES("int main() { long* temp=0; long ret=__sync_sub_and_fetch(temp, 1); return 0; }" HAS_BUILTIN_SYNC_SUB_AND_FETCH)
CHECK_CXX_SOURCE_COMPILES("int main() { long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1); return 0; }" HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP)