]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/native/FMILibrary/ThirdParty/c99_snprintf/CMakeLists.txt
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / ThirdParty / c99_snprintf / CMakeLists.txt
diff --git a/org.simantics.fmil.core/native/FMILibrary/ThirdParty/c99_snprintf/CMakeLists.txt b/org.simantics.fmil.core/native/FMILibrary/ThirdParty/c99_snprintf/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6f513b4
--- /dev/null
@@ -0,0 +1,129 @@
+#    Copyright (C) 2012 Modelon AB\r
+\r
+#    This program is free software: you can redistribute it and/or modify\r
+#    it under the terms of the BSD style license.\r
+\r
+#    This program is distributed in the hope that it will be useful,\r
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+#    FMILIB_License.txt file for more details.\r
+\r
+#    You should have received a copy of the FMILIB_License.txt file\r
+#    along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
+\r
+if(NOT C99SNPRINTFDIR)\r
+    set(C99SNPRINTFDIR ${FMILIBRARYHOME}/ThirdParty/c99_snprintf)\r
+    set(C99SNPRINTF_LIBRARIES c99snprintf)    \r
+\r
+INCLUDE (CheckIncludeFiles) \r
+CHECK_INCLUDE_FILES(stdarg.h HAVE_STDARG_H) \r
+CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)\r
+CHECK_INCLUDE_FILES(stddef.h HAVE_STDDEF_H)
+CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
+CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
+CHECK_INCLUDE_FILES(inttypes.h         HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILES(locale.h           HAVE_LOCALE_H)
+
+INCLUDE (CheckSymbolExists)\r
+INCLUDE (CheckFunctionExists)\r
+CHECK_SYMBOL_EXISTS(snprintf  stdio.h HAVE_SNPRINTF_SYM)
+CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF_SYM)
+CHECK_SYMBOL_EXISTS(asprintf  stdio.h HAVE_ASPRINTF_SYM)\r
+CHECK_FUNCTION_EXISTS(snprintf  HAVE_SNPRINTF_FCN)\r
+CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF_FCN)\r
+CHECK_FUNCTION_EXISTS(asprintf  HAVE_ASPRINTF_FCN)\r
+
+FMIL_EVAL_CONDITION(HAVE_SNPRINTF   HAVE_SNPRINTF_SYM  OR HAVE_SNPRINTF_FCN)\r
+FMIL_EVAL_CONDITION(HAVE_VASPRINTF  HAVE_VASPRINTF_SYM OR HAVE_VASPRINTF_FCN)\r
+FMIL_EVAL_CONDITION(HAVE_ASPRINTF   HAVE_ASPRINTF_SYM  OR HAVE_ASPRINTF_FCN)\r
+\r
+CHECK_FUNCTION_EXISTS(localeconv       HAVE_LOCALECONV)\r
\r
+ INCLUDE (CheckTypeSize) \r
+ # SET(CMAKE_EXTRA_INCLUDE_FILES header)\r
+#CHECK_TYPE_SIZE(type variable)\r
+# SET(CMAKE_EXTRA_INCLUDE_FILES) \r
+ CHECK_TYPE_SIZE("long double" HAVE_LONG_DOUBLE)\r
+ CHECK_TYPE_SIZE("long long int"       HAVE_LONG_LONG_INT)\r
+ CHECK_TYPE_SIZE("unsigned long long int"      HAVE_UNSIGNED_LONG_LONG_INT)\r
\r
+SET(CMAKE_EXTRA_INCLUDE_FILES locale.h)\r
+CHECK_TYPE_SIZE("struct lconv" LCONV)\r
+SET(CMAKE_EXTRA_INCLUDE_FILES)\r
+include(CheckStructHasMember)\r
+CHECK_STRUCT_HAS_MEMBER ("struct lconv" decimal_point locale.h HAVE_LCONV_DECIMAL_POINT)\r
+CHECK_STRUCT_HAS_MEMBER ("struct lconv" thousands_sep locale.h HAVE_LCONV_THOUSANDS_SEP)\r
+INCLUDE (CheckSymbolExists) \r
+    \r
+CHECK_TYPE_SIZE(intmax_t       HAVE_INTMAX_T)\r
+CHECK_TYPE_SIZE(uintmax_t      HAVE_UINTMAX_T)\r
+CHECK_TYPE_SIZE(uintptr_t      HAVE_UINTPTR_T)\r
+CHECK_TYPE_SIZE(ptrdiff_t      HAVE_PTRDIFF_T)
+
+include(CheckSymbolExists)
+CHECK_SYMBOL_EXISTS(va_copy stdarg.h HAVE_VA_COPY)
+CHECK_SYMBOL_EXISTS(__va_copy stdarg.h HAVE___VA_COPY)
+\r
+set(CHECKS\r
+        HAVE_SNPRINTF
+        HAVE_VASPRINTF
+        HAVE_ASPRINTF
+        HAVE_STDARG_H\r
+        HAVE_STDDEF_H\r
+        HAVE_STDINT_H\r
+        HAVE_STDLIB_H\r
+        HAVE_INTTYPES_H\r
+        HAVE_LOCALE_H\r
+        HAVE_LOCALECONV\r
+        HAVE_LCONV_DECIMAL_POINT\r
+        HAVE_LCONV_THOUSANDS_SEP\r
+        HAVE_LONG_DOUBLE\r
+        HAVE_LONG_LONG_INT\r
+        HAVE_UNSIGNED_LONG_LONG_INT\r
+        HAVE_INTMAX_T\r
+        HAVE_UINTMAX_T\r
+        HAVE_UINTPTR_T\r
+        HAVE_PTRDIFF_T\r
+        HAVE_VA_COPY\r
+        HAVE___VA_COPY)\r
+
+foreach(check ${CHECKS})\r
+    if(${${check}})\r
+        set(DEFINES ${DEFINES} -D${check}=${${check}})\r
+    endif()\r
+endforeach()\r
+
+if(NOT HAVE_VSNPRINTF)
+    set(DEFINES ${DEFINES} -Drpl_vsnprintf=jm_rpl_vsnprintf)
+endif()
+
+if(NOT HAVE_SNPRINTF)
+    set(DEFINES ${DEFINES}
+        -Dsnprintf=jm_rpl_snprintf
+        -Drpl_snprintf=jm_rpl_snprintf)
+endif()
+
+if(NOT HAVE_VASPRINTF)
+    set(DEFINES ${DEFINES}
+        -Dvasprintf=jm_rpl_vasprintf
+        -Drpl_vasprintf=jm_rpl_vasprintf)
+endif()
+
+if(NOT HAVE_ASPRINTF)
+    set(DEFINES ${DEFINES}
+        -Dasprintf=jm_rpl_asprintf
+        -Drpl_asprintf=jm_rpl_asprintf)
+endif()
+
+add_definitions(${DEFINES})\r
+\r
+file(WRITE ${CMAKE_BINARY_DIR}/c99snprintf_defs "${DEFINES}")\r
+\r
+add_library(c99snprintf c99-snprintf_1.1/snprintf.c)\r
+\r
+if(CYGWIN) \r
+message("not tested")\r
+endif(CYGWIN)\r
+\r
+endif()\r
+\r