check_include_file(unistd.h HAVE_UNISTD_H)
endif()
-if(MSVC)
- set(INLINE_KEYWORD "inline")
-else()
- # Inspired from /usr/share/autoconf/autoconf/c.m4
- foreach(inline_keyword "inline" "__inline__" "__inline")
- if(NOT DEFINED C_INLINE)
- set(CMAKE_REQUIRED_DEFINITIONS_SAVE ${CMAKE_REQUIRED_DEFINITIONS})
- set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- "-Dinline=${inline_keyword}")
- check_c_source_compiles("
- typedef int foo_t;
- static inline foo_t static_foo() {return 0;}
- foo_t foo(){return 0;}
- int main(int argc, char *argv[]) {return 0;}"
- C_HAS_${inline_keyword})
- set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_SAVE})
- if(C_HAS_${inline_keyword})
- set(C_INLINE TRUE)
- set(INLINE_KEYWORD "${inline_keyword}")
- endif()
- endif()
- endforeach()
+# Inspired from /usr/share/autoconf/autoconf/c.m4
+foreach(inline_keyword "inline" "__inline__" "__inline")
if(NOT DEFINED C_INLINE)
- set(INLINE_KEYWORD)
- endif()
+ set(CMAKE_REQUIRED_DEFINITIONS_SAVE ${CMAKE_REQUIRED_DEFINITIONS})
+ set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ "-Dinline=${inline_keyword}")
+ check_c_source_compiles("
+ typedef int foo_t;
+ static inline foo_t static_foo() {return 0;}
+ foo_t foo(){return 0;}
+ int main(int argc, char *argv[]) {return 0;}"
+ C_HAS_${inline_keyword})
+ set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_SAVE})
+ if(C_HAS_${inline_keyword})
+ set(C_INLINE TRUE)
+ set(INLINE_KEYWORD "${inline_keyword}")
+ endif()
+ endif()
+endforeach()
+if(NOT DEFINED C_INLINE)
+ set(INLINE_KEYWORD)
endif()
tif_write.c
tif_zip.c
tif_stream.cxx
+ snprintf.c
t4.h
tif_dir.h
tif_fax3.h
--- /dev/null
+/**
+ * Workaround for lack of snprintf(3) in Visual Studio. See
+ * http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010/8712996#8712996
+ * It's a trivial wrapper around the builtin _vsnprintf_s and
+ * _vscprintf functions.
+ */
+
+#ifdef _MSC_VER
+
+#include <stdio.h>
+#include <stdarg.h>
+
+int _TIFF_vsnprintf_f(char* str, size_t size, const char* format, va_list ap)
+{
+ int count = -1;
+
+ if (size != 0)
+ count = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
+ if (count == -1)
+ count = _vscprintf(format, ap);
+
+ return count;
+}
+
+int _TIFF_snprintf_f(char* str, size_t size, const char* format, ...)
+{
+ int count;
+ va_list ap;
+
+ va_start(ap, format);
+ count = vsnprintf(str, size, format, ap);
+ va_end(ap);
+
+ return count;
+}
+
+#endif // _MSC_VER
+