[ASan] use correct C-version of strchr on Windows
[blocksruntime.git] / cmake / ConfigureChecks.cmake
blobb72a390af8cfd353a4aacaded4a0e91a0df00c7f
1 INCLUDE( CheckIncludeFile )
2 INCLUDE( CheckFunctionExists )
3 INCLUDE( CheckSymbolExists )
4 INCLUDE( CheckCSourceCompiles )
6 SET( PACKAGE ${PACKAGE_NAME} )
7 SET( VERSION ${PACKAGE_VERSION} )
9 SET( BINARYDIR ${CMAKE_BINARY_DIR} )
10 SET( SOURCEDIR ${CMAKE_SOURCE_DIR} )
12 # HEADER FILES
13 CHECK_INCLUDE_FILE( sys/byteorder.h HAVE_SYS_BYTEORDER_H )
14 CHECK_INCLUDE_FILE( AvailabilityMacros.h HAVE_AVAILABILITY_MACROS_H )
15 CHECK_INCLUDE_FILE( TargetConditionals.h HAVE_TARGET_CONDITIONALS_H )
16 CHECK_INCLUDE_FILE( libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H )
18 # FUNCTIONS
19 CHECK_FUNCTION_EXISTS( sysconf HAVE_SYSCONF )
20 CHECK_SYMBOL_EXISTS( OSAtomicCompareAndSwapInt libkern/OSAtomic.h HAVE_OSATOMIC_COMPARE_AND_SWAP_INT )
21 CHECK_SYMBOL_EXISTS( OSAtomicCompareAndSwapLong libkern/OSAtomic.h HAVE_OSATOMIC_COMPARE_AND_SWAP_LONG )
23 # BUILTIN
24 CHECK_C_SOURCE_COMPILES( "
25 volatile int a;
26 int main(int argc, char *argv[]) {
27   (void)__sync_bool_compare_and_swap(&a, 1, 2);
28   return 0;
30 " HAVE_SYNC_BOOL_COMPARE_AND_SWAP_INT )
32 CHECK_C_SOURCE_COMPILES( "
33 volatile long a;
34 int main(int argc, char *argv[]) {
35   (void)__sync_bool_compare_and_swap(&a, 1, 2);
36   return 0;
38 " HAVE_SYNC_BOOL_COMPARE_AND_SWAP_LONG )