]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/ThirdParty/c99_snprintf/CMakeLists.txt
Switch to full JavaSE-11+ compatibility
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / ThirdParty / c99_snprintf / CMakeLists.txt
1 #    Copyright (C) 2012 Modelon AB\r
2 \r
3 #    This program is free software: you can redistribute it and/or modify\r
4 #    it under the terms of the BSD style license.\r
5 \r
6 #    This program is distributed in the hope that it will be useful,\r
7 #    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
8 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
9 #    FMILIB_License.txt file for more details.\r
10 \r
11 #    You should have received a copy of the FMILIB_License.txt file\r
12 #    along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
13 \r
14 if(NOT C99SNPRINTFDIR)\r
15     set(C99SNPRINTFDIR ${FMILIBRARYHOME}/ThirdParty/c99_snprintf)\r
16     set(C99SNPRINTF_LIBRARIES c99snprintf)    \r
17 \r
18 INCLUDE (CheckIncludeFiles) \r
19 CHECK_INCLUDE_FILES(stdarg.h HAVE_STDARG_H) \r
20 CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)\r
21 CHECK_INCLUDE_FILES(stddef.h HAVE_STDDEF_H)
22 CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
23 CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
24 CHECK_INCLUDE_FILES(inttypes.h  HAVE_INTTYPES_H)
25 CHECK_INCLUDE_FILES(locale.h    HAVE_LOCALE_H)
26
27 INCLUDE (CheckSymbolExists)\r
28 INCLUDE (CheckFunctionExists)\r
29 CHECK_SYMBOL_EXISTS(snprintf  stdio.h HAVE_SNPRINTF_SYM)
30 CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF_SYM)
31 CHECK_SYMBOL_EXISTS(asprintf  stdio.h HAVE_ASPRINTF_SYM)\r
32 CHECK_FUNCTION_EXISTS(snprintf  HAVE_SNPRINTF_FCN)\r
33 CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF_FCN)\r
34 CHECK_FUNCTION_EXISTS(asprintf  HAVE_ASPRINTF_FCN)\r
35
36 FMIL_EVAL_CONDITION(HAVE_SNPRINTF   HAVE_SNPRINTF_SYM  OR HAVE_SNPRINTF_FCN)\r
37 FMIL_EVAL_CONDITION(HAVE_VASPRINTF  HAVE_VASPRINTF_SYM OR HAVE_VASPRINTF_FCN)\r
38 FMIL_EVAL_CONDITION(HAVE_ASPRINTF   HAVE_ASPRINTF_SYM  OR HAVE_ASPRINTF_FCN)\r
39 \r
40 CHECK_FUNCTION_EXISTS(localeconv        HAVE_LOCALECONV)\r
41  \r
42  INCLUDE (CheckTypeSize) \r
43  # SET(CMAKE_EXTRA_INCLUDE_FILES header)\r
44 #CHECK_TYPE_SIZE(type variable)\r
45 # SET(CMAKE_EXTRA_INCLUDE_FILES) \r
46  CHECK_TYPE_SIZE("long double" HAVE_LONG_DOUBLE)\r
47  CHECK_TYPE_SIZE("long long int"        HAVE_LONG_LONG_INT)\r
48  CHECK_TYPE_SIZE("unsigned long long int"       HAVE_UNSIGNED_LONG_LONG_INT)\r
49  \r
50 SET(CMAKE_EXTRA_INCLUDE_FILES locale.h)\r
51 CHECK_TYPE_SIZE("struct lconv" LCONV)\r
52 SET(CMAKE_EXTRA_INCLUDE_FILES)\r
53 include(CheckStructHasMember)\r
54 CHECK_STRUCT_HAS_MEMBER ("struct lconv" decimal_point locale.h HAVE_LCONV_DECIMAL_POINT)\r
55 CHECK_STRUCT_HAS_MEMBER ("struct lconv" thousands_sep locale.h HAVE_LCONV_THOUSANDS_SEP)\r
56 INCLUDE (CheckSymbolExists) \r
57     \r
58 CHECK_TYPE_SIZE(intmax_t        HAVE_INTMAX_T)\r
59 CHECK_TYPE_SIZE(uintmax_t       HAVE_UINTMAX_T)\r
60 CHECK_TYPE_SIZE(uintptr_t       HAVE_UINTPTR_T)\r
61 CHECK_TYPE_SIZE(ptrdiff_t       HAVE_PTRDIFF_T)
62
63 include(CheckSymbolExists)
64 CHECK_SYMBOL_EXISTS(va_copy stdarg.h HAVE_VA_COPY)
65 CHECK_SYMBOL_EXISTS(__va_copy stdarg.h HAVE___VA_COPY)
66 \r
67 set(CHECKS\r
68         HAVE_SNPRINTF
69         HAVE_VASPRINTF
70         HAVE_ASPRINTF
71         HAVE_STDARG_H\r
72         HAVE_STDDEF_H\r
73         HAVE_STDINT_H\r
74         HAVE_STDLIB_H\r
75         HAVE_INTTYPES_H\r
76         HAVE_LOCALE_H\r
77         HAVE_LOCALECONV\r
78         HAVE_LCONV_DECIMAL_POINT\r
79         HAVE_LCONV_THOUSANDS_SEP\r
80         HAVE_LONG_DOUBLE\r
81         HAVE_LONG_LONG_INT\r
82         HAVE_UNSIGNED_LONG_LONG_INT\r
83         HAVE_INTMAX_T\r
84         HAVE_UINTMAX_T\r
85         HAVE_UINTPTR_T\r
86         HAVE_PTRDIFF_T\r
87         HAVE_VA_COPY\r
88         HAVE___VA_COPY)\r
89
90 foreach(check ${CHECKS})\r
91     if(${${check}})\r
92         set(DEFINES ${DEFINES} -D${check}=${${check}})\r
93     endif()\r
94 endforeach()\r
95
96 if(NOT HAVE_VSNPRINTF)
97     set(DEFINES ${DEFINES} -Drpl_vsnprintf=jm_rpl_vsnprintf)
98 endif()
99
100 if(NOT HAVE_SNPRINTF)
101     set(DEFINES ${DEFINES}
102         -Dsnprintf=jm_rpl_snprintf
103         -Drpl_snprintf=jm_rpl_snprintf)
104 endif()
105
106 if(NOT HAVE_VASPRINTF)
107     set(DEFINES ${DEFINES}
108         -Dvasprintf=jm_rpl_vasprintf
109         -Drpl_vasprintf=jm_rpl_vasprintf)
110 endif()
111
112 if(NOT HAVE_ASPRINTF)
113     set(DEFINES ${DEFINES}
114         -Dasprintf=jm_rpl_asprintf
115         -Drpl_asprintf=jm_rpl_asprintf)
116 endif()
117
118 add_definitions(${DEFINES})\r
119 \r
120 file(WRITE ${CMAKE_BINARY_DIR}/c99snprintf_defs "${DEFINES}")\r
121 \r
122 add_library(c99snprintf c99-snprintf_1.1/snprintf.c)\r
123 \r
124 if(CYGWIN) \r
125 message("not tested")\r
126 endif(CYGWIN)\r
127 \r
128 endif()\r
129 \r