Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[cmake] Better detection of snprintf, asprintf, etc.
[simgrid.git] / tools / cmake / CompleteInFiles.cmake
index 1b37d52..0a93421 100644 (file)
@@ -69,6 +69,7 @@ include(CheckTypeSize)
 include(CheckIncludeFile)
 include(CheckIncludeFiles)
 include(CheckLibraryExists)
+include(CheckSymbolExists)
 include(TestBigEndian)
 TEST_BIG_ENDIAN(BIGENDIAN)
 
@@ -150,6 +151,11 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
   set(CMAKE_REQUIRED_DEFINITIONS "-D_XOPEN_SOURCE=700 -D_DARWIN_C_SOURCE")
 endif()
 
+if(MINGW)
+  add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
+  set(CMAKE_REQUIRED_DEFINITIONS "-D__USE_MINGW_ANSI_STDIO=1")
+endif()
+
 CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME)
 CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
 CHECK_INCLUDE_FILE("pthread.h" HAVE_PTHREAD_H)
@@ -186,10 +192,12 @@ CHECK_FUNCTION_EXISTS(sysconf HAVE_SYSCONF)
 CHECK_FUNCTION_EXISTS(readv HAVE_READV)
 CHECK_FUNCTION_EXISTS(popen HAVE_POPEN)
 CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
-CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
-CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF)
-CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF)
-CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
+
+CHECK_SYMBOL_EXISTS(snprintf stdio.h HAVE_SNPRINTF)
+CHECK_SYMBOL_EXISTS(vsnprintf stdio.h HAVE_VSNPRINTF)
+CHECK_SYMBOL_EXISTS(asprintf stdio.h HAVE_ASPRINTF)
+CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF)
+
 CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT)
 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
 CHECK_FUNCTION_EXISTS(process_vm_readv HAVE_PROCESS_VM_READV)