Imported Upstream version 2.5.0
[platform/upstream/expat.git] / ConfigureChecks.cmake
1 include(CheckCCompilerFlag)
2 include(CheckCSourceCompiles)
3 include(CheckIncludeFile)
4 include(CheckIncludeFiles)
5 include(CheckLibraryExists)
6 include(CheckSymbolExists)
7 include(TestBigEndian)
8
9 check_include_file("dlfcn.h" HAVE_DLFCN_H)
10 check_include_file("fcntl.h" HAVE_FCNTL_H)
11 check_include_file("inttypes.h" HAVE_INTTYPES_H)
12 check_include_file("memory.h" HAVE_MEMORY_H)
13 check_include_file("stdint.h" HAVE_STDINT_H)
14 check_include_file("stdlib.h" HAVE_STDLIB_H)
15 check_include_file("strings.h" HAVE_STRINGS_H)
16 check_include_file("string.h" HAVE_STRING_H)
17 check_include_file("sys/stat.h" HAVE_SYS_STAT_H)
18 check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
19 check_include_file("unistd.h" HAVE_UNISTD_H)
20
21 check_symbol_exists("getpagesize" "unistd.h" HAVE_GETPAGESIZE)
22 check_symbol_exists("mmap" "sys/mman.h" HAVE_MMAP)
23 check_symbol_exists("getrandom" "sys/random.h" HAVE_GETRANDOM)
24
25 if(EXPAT_WITH_LIBBSD)
26     set(CMAKE_REQUIRED_LIBRARIES "${LIB_BSD}")
27     set(_bsd "bsd/")
28 else()
29     set(_bsd "")
30 endif()
31 check_symbol_exists("arc4random_buf" "${_bsd}stdlib.h" HAVE_ARC4RANDOM_BUF)
32 if(NOT HAVE_ARC4RANDOM_BUF)
33     check_symbol_exists("arc4random" "${_bsd}stdlib.h" HAVE_ARC4RANDOM)
34 endif()
35 set(CMAKE_REQUIRED_LIBRARIES)
36
37 #/* Define to 1 if you have the ANSI C header files. */
38 check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
39
40 test_big_endian(WORDS_BIGENDIAN)
41 #/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
42 if(WORDS_BIGENDIAN)
43     set(BYTEORDER 4321)
44 else(WORDS_BIGENDIAN)
45     set(BYTEORDER 1234)
46 endif(WORDS_BIGENDIAN)
47
48 if(HAVE_SYS_TYPES_H)
49     check_symbol_exists("off_t" "sys/types.h" OFF_T)
50     check_symbol_exists("size_t" "sys/types.h" SIZE_T)
51 else(HAVE_SYS_TYPES_H)
52     set(OFF_T "long")
53     set(SIZE_T "unsigned")
54 endif(HAVE_SYS_TYPES_H)
55
56 check_c_source_compiles("
57         #include <stdlib.h>  /* for NULL */
58         #include <unistd.h>  /* for syscall */
59         #include <sys/syscall.h>  /* for SYS_getrandom */
60         int main() {
61             syscall(SYS_getrandom, NULL, 0, 0);
62             return 0;
63         }"
64     HAVE_SYSCALL_GETRANDOM)
65
66 check_c_compiler_flag("-fno-strict-aliasing" FLAG_NO_STRICT_ALIASING)
67 check_c_compiler_flag("-fvisibility=hidden" FLAG_VISIBILITY)
68
69 check_library_exists(m cos "" _EXPAT_LIBM_FOUND)