Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add simgrid dependency for bindings.
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index e7e7286..479b997 100644 (file)
@@ -2,6 +2,9 @@ include(CheckFunctionExists)
 include(CheckIncludeFile)
 include(CheckIncludeFiles)
 include(CheckLibraryExists)
+if(APPLE)
+set( CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} /opt/local/include")
+endif(APPLE)
 
 # Checks for header libraries functions.
 
@@ -34,7 +37,8 @@ CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
 CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
 CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
 CHECK_INCLUDE_FILE(string.h HAVE_STRING_H)
-
+CHECK_INCLUDE_FILE(ucontext.h HAVE_UCONTEXT_H)
+CHECK_INCLUDE_FILE(graphviz/cgraph.h HAVE_CGRAPH_H)
 CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
 CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP)
 CHECK_FUNCTION_EXISTS(getdtablesize HAVE_GETDTABLESIZE)
@@ -49,6 +53,11 @@ CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
 CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT)
 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
 
+if(WIN32)
+    set(HAVE_UCONTEXT_H 1)
+    set(HAVE_MAKECONTEXT 1)
+endif(WIN32)
+
 set(CONTEXT_UCONTEXT 0)
 SET(CONTEXT_THREADS 0)
 SET(HAVE_RUBY 0)
@@ -70,11 +79,11 @@ endif(enable_model-checking AND HAVE_MMAP)
 
 if(enable_lua)
        exec_program("lua -v" OUTPUT_VARIABLE LUA_VERSION)
-       string(REGEX MATCH "[0-9].[0-9].[0-9]" LUA_VERSION "${LUA_VERSION}")
-       string(REGEX MATCH "^[0-9]" LUA_MAJOR_VERSION "${LUA_VERSION}")
-       string(REPLACE "${LUA_MAJOR_VERSION}." "" LUA_VERSION "${LUA_VERSION}")
-       string(REGEX MATCH "^[0-9]" LUA_MINOR_VERSION "${LUA_VERSION}")
-       string(REPLACE "${LUA_MINOR_VERSION}." "" LUA_PATCH_VERSION "${LUA_VERSION}")
+       string(REGEX MATCH "[0-9]+[.]+[0-9]+[.]+[0-9]+" LUA_VERSION "${LUA_VERSION}")
+       string(REGEX MATCH "^[0-9]+" LUA_MAJOR_VERSION "${LUA_VERSION}")
+       string(REGEX MATCH "[0-9]+[.]+[0-9]+$" LUA_VERSION "${LUA_VERSION}")
+       string(REGEX MATCH "^[0-9]+" LUA_MINOR_VERSION "${LUA_VERSION}")
+       string(REGEX MATCH "[0-9]+$" LUA_PATCH_VERSION "${LUA_VERSION}")
 
        if(LUA_MAJOR_VERSION MATCHES "5" AND LUA_MINOR_VERSION MATCHES "1")
        
@@ -150,7 +159,7 @@ if(enable_ruby)
                                set(RUBY_LIBRARY_NAME ruby)
                        endif(NOT RUBY_LIBRARY_NAME)
                        string(REGEX REPLACE "libruby.*$" "" RUBY_LIBRARY ${RUBY_LIBRARY})
-                       SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIBRARY}")
+                       SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIBRARY} ")
                        SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_CONFIG_INCLUDE_DIR} ") #path to config.h
                        string(COMPARE EQUAL "${RUBY_INCLUDE_DIR}" "${RUBY_CONFIG_INCLUDE_DIR}" operation)
                        if(NOT operation)
@@ -350,17 +359,16 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn)
 endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn)
 
 if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
-       find_file(GIT ".git" ${PROJECT_DIRECTORY})
+
        exec_program("git --git-dir=${PROJECT_DIRECTORY}/.git log --oneline -1" OUTPUT_VARIABLE "GIT_VERSION")
-       string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
        exec_program("git --git-dir=${PROJECT_DIRECTORY}/.git log -n 1 --format=%ai ." OUTPUT_VARIABLE "GIT_DATE")
        exec_program("git svn info" ${PROJECT_DIRECTORY} OUTPUT_VARIABLE "GIT_SVN_VERSION")
+       
+       string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
        string(REPLACE "\n" ";" GIT_SVN_VERSION ${GIT_SVN_VERSION})
        STRING(REPLACE " +0000" "" GIT_DATE ${GIT_DATE})
        STRING(REPLACE " " "~" GIT_DATE ${GIT_DATE})
        STRING(REPLACE ":" "-" GIT_DATE ${GIT_DATE})
-       message("GIT_DATE       : ${GIT_DATE}")
-       message("GIT_VERSION    : ${GIT_VERSION}")
        foreach(line ${GIT_SVN_VERSION})
                string(REGEX MATCH "^Revision:.*" line_good ${line})
                if(line_good)
@@ -368,7 +376,6 @@ if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
                        set(SVN_VERSION ${line_good})
                endif(line_good)
        endforeach(line ${GIT_SVN_VERSION})
-       message("GIT_SVN_VERSION : ${SVN_VERSION}")
 endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
 
 ###################################
@@ -470,18 +477,21 @@ SET(SIZEOF_MAX ${var3})
 #--------------------------------------------------------------------------------------------------
 
 set(makecontext_CPPFLAGS_2 "")
-if(HAVE_MAKECONTEXT)
+if(HAVE_MAKECONTEXT OR WIN32)
        set(makecontext_CPPFLAGS "-DTEST_makecontext")
        if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
                set(makecontext_CPPFLAGS_2 "-DOSX")
        endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+       
+       if(WIN32)
+           set(makecontext_CPPFLAGS_2 "-D_XBT_WIN32 ${INCLUDES}")
+       endif(WIN32)
 
        try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
                ${PROJECT_DIRECTORY}
                ${PROJECT_DIRECTORY}/buildtools/Cmake/test_prog/prog_stacksetup.c
                COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}"
                )
-       
        file(READ ${simgrid_BINARY_DIR}/conftestval MAKECONTEXT_ADDR_SIZE)
        string(REPLACE "\n" "" MAKECONTEXT_ADDR_SIZE "${MAKECONTEXT_ADDR_SIZE}")
        string(REGEX MATCH ;^.*,;MAKECONTEXT_ADDR "${MAKECONTEXT_ADDR_SIZE}")
@@ -491,7 +501,7 @@ if(HAVE_MAKECONTEXT)
        set(pth_skaddr_makecontext "#define pth_skaddr_makecontext(skaddr,sksize) (${makecontext_addr})")
        set(pth_sksize_makecontext "#define pth_sksize_makecontext(skaddr,sksize) (${makecontext_size})")
 
-endif(HAVE_MAKECONTEXT)
+endif(HAVE_MAKECONTEXT OR WIN32)
 
 #--------------------------------------------------------------------------------------------------
 
@@ -622,7 +632,7 @@ foreach(fct ${diff_va})
                endif(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s)), sizeof(*(s))")
                                
                if(NOT STATUS_OK)
-               set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}")
+               set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}(d, s)")
                endif(NOT STATUS_OK)
                set(STATUS_OK "1")