xref: /aosp_15_r20/external/flac/cmake/UseSystemExtensions.cmake (revision 600f14f40d737144c998e2ec7a483122d3776fbc)
1*600f14f4SXin Liinclude(CheckCSourceCompiles)
2*600f14f4SXin Li
3*600f14f4SXin Licheck_c_source_compiles("
4*600f14f4SXin Li    #include <wchar.h>
5*600f14f4SXin Li    mbstate_t x;
6*600f14f4SXin Li    int main() { return 0; }"
7*600f14f4SXin Li    HAVE_MBSTATE)
8*600f14f4SXin Liif(NOT HAVE_MBSTATE)
9*600f14f4SXin Li    check_c_source_compiles("
10*600f14f4SXin Li        #define _XOPEN_SOURCE 500
11*600f14f4SXin Li        #include <wchar.h>
12*600f14f4SXin Li        mbstate_t x;
13*600f14f4SXin Li        int main() { return 0; }"
14*600f14f4SXin Li        DODEFINE_XOPEN_SOURCE)
15*600f14f4SXin Liendif()
16*600f14f4SXin Licheck_c_source_compiles("
17*600f14f4SXin Li    #define __EXTENSIONS__ 1
18*600f14f4SXin Li    #include <stdio.h>
19*600f14f4SXin Li    #ifdef HAVE_SYS_TYPES_H
20*600f14f4SXin Li    # include <sys/types.h>
21*600f14f4SXin Li    #endif
22*600f14f4SXin Li    #ifdef HAVE_SYS_STAT_H
23*600f14f4SXin Li    # include <sys/stat.h>
24*600f14f4SXin Li    #endif
25*600f14f4SXin Li    #ifdef STDC_HEADERS
26*600f14f4SXin Li    # include <stdlib.h>
27*600f14f4SXin Li    # include <stddef.h>
28*600f14f4SXin Li    #else
29*600f14f4SXin Li    # ifdef HAVE_STDLIB_H
30*600f14f4SXin Li    #  include <stdlib.h>
31*600f14f4SXin Li    # endif
32*600f14f4SXin Li    #endif
33*600f14f4SXin Li    #ifdef HAVE_STRING_H
34*600f14f4SXin Li    # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
35*600f14f4SXin Li    #  include <memory.h>
36*600f14f4SXin Li    # endif
37*600f14f4SXin Li    # include <string.h>
38*600f14f4SXin Li    #endif
39*600f14f4SXin Li    #ifdef HAVE_STRINGS_H
40*600f14f4SXin Li    # include <strings.h>
41*600f14f4SXin Li    #endif
42*600f14f4SXin Li    #ifdef HAVE_INTTYPES_H
43*600f14f4SXin Li    # include <inttypes.h>
44*600f14f4SXin Li    #endif
45*600f14f4SXin Li    #ifdef HAVE_STDINT_H
46*600f14f4SXin Li    # include <stdint.h>
47*600f14f4SXin Li    #endif
48*600f14f4SXin Li    #ifdef HAVE_UNISTD_H
49*600f14f4SXin Li    # include <unistd.h>
50*600f14f4SXin Li    #endif
51*600f14f4SXin Li    int main() { return 0; }"
52*600f14f4SXin Li    DODEFINE_EXTENSIONS)
53*600f14f4SXin Li
54*600f14f4SXin Liadd_definitions(
55*600f14f4SXin Li    -D_DARWIN_C_SOURCE
56*600f14f4SXin Li    -D_POSIX_PTHREAD_SEMANTICS
57*600f14f4SXin Li    -D__STDC_WANT_IEC_60559_BFP_EXT__
58*600f14f4SXin Li    -D__STDC_WANT_IEC_60559_DFP_EXT__
59*600f14f4SXin Li    -D__STDC_WANT_IEC_60559_FUNCS_EXT__
60*600f14f4SXin Li    -D__STDC_WANT_IEC_60559_TYPES_EXT__
61*600f14f4SXin Li    -D__STDC_WANT_LIB_EXT2__
62*600f14f4SXin Li    -D__STDC_WANT_MATH_SPEC_FUNCS__
63*600f14f4SXin Li    -D_TANDEM_SOURCE)
64