| INCLUDE( CheckIncludeFile ) |
| INCLUDE( CheckFunctionExists ) |
| INCLUDE( CheckSymbolExists ) |
| INCLUDE( CheckCSourceCompiles ) |
| |
| SET( PACKAGE ${PACKAGE_NAME} ) |
| SET( VERSION ${PACKAGE_VERSION} ) |
| |
| SET( BINARYDIR ${CMAKE_BINARY_DIR} ) |
| SET( SOURCEDIR ${CMAKE_SOURCE_DIR} ) |
| |
| # HEADER FILES |
| CHECK_INCLUDE_FILE( sys/byteorder.h HAVE_SYS_BYTEORDER_H ) |
| CHECK_INCLUDE_FILE( AvailabilityMacros.h HAVE_AVAILABILITY_MACROS_H ) |
| CHECK_INCLUDE_FILE( TargetConditionals.h HAVE_TARGET_CONDITIONALS_H ) |
| CHECK_INCLUDE_FILE( libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H ) |
| |
| # FUNCTIONS |
| CHECK_FUNCTION_EXISTS( sysconf HAVE_SYSCONF ) |
| CHECK_SYMBOL_EXISTS( OSAtomicCompareAndSwapInt libkern/OSAtomic.h HAVE_OSATOMIC_COMPARE_AND_SWAP_INT ) |
| CHECK_SYMBOL_EXISTS( OSAtomicCompareAndSwapLong libkern/OSAtomic.h HAVE_OSATOMIC_COMPARE_AND_SWAP_LONG ) |
| |
| # BUILTIN |
| CHECK_C_SOURCE_COMPILES( " |
| volatile int a; |
| int main(int argc, char *argv[]) { |
| (void)__sync_bool_compare_and_swap(&a, 1, 2); |
| return 0; |
| } |
| " HAVE_SYNC_BOOL_COMPARE_AND_SWAP_INT ) |
| |
| CHECK_C_SOURCE_COMPILES( " |
| volatile long a; |
| int main(int argc, char *argv[]) { |
| (void)__sync_bool_compare_and_swap(&a, 1, 2); |
| return 0; |
| } |
| " HAVE_SYNC_BOOL_COMPARE_AND_SWAP_LONG ) |