include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckLibraryExists)
+include(TestBigEndian)
+
+TEST_BIG_ENDIAN(BIGENDIAN)
+
+set(CMAKE_REQUIRED_INCLUDES
+ ${CGRAPH_PATH}
+ ${CMAKE_REQUIRED_INCLUDES}
+ )
# Checks for header libraries functions.
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)
-CHECK_INCLUDE_FILE(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H)
-CHECK_INCLUDE_FILE(socket.h HAVE_SOCKET_H)
-CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H)
-CHECK_INCLUDE_FILE(stat.h HAVE_STAT_H)
-CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
-CHECK_INCLUDE_FILE(winsock.h HAVE_WINSOCK_H)
-CHECK_INCLUDE_FILE(winsock2.h HAVE_WINSOCK2_H)
-CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H)
-CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
-CHECK_INCLUDE_FILE(execinfo.h HAVE_EXECINFO_H)
-CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H)
-CHECK_INCLUDE_FILE(sys/time.h HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILE(time.h HAVE_TIME_H)
-CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
-CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
-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("pthread.h" HAVE_PTHREAD_H)
+CHECK_INCLUDE_FILE("valgrind/valgrind.h" HAVE_VALGRIND_VALGRIND_H)
+CHECK_INCLUDE_FILE("socket.h" HAVE_SOCKET_H)
+CHECK_INCLUDE_FILE("sys/socket.h" HAVE_SYS_SOCKET_H)
+CHECK_INCLUDE_FILE("stat.h" HAVE_STAT_H)
+CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H)
+CHECK_INCLUDE_FILE("winsock.h" HAVE_WINSOCK_H)
+CHECK_INCLUDE_FILE("winsock2.h" HAVE_WINSOCK2_H)
+CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H)
+CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE("execinfo.h" HAVE_EXECINFO_H)
+CHECK_INCLUDE_FILE("signal.h" HAVE_SIGNAL_H)
+CHECK_INCLUDE_FILE("sys/time.h" HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILE("time.h" HAVE_TIME_H)
+CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
+CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
+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(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)
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")
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)
endif(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2)
endif(enable_java)
+#--------------------------------------------------------------------------------------------------
+### Initialize of cgraph
+
+if(HAVE_CGRAPH_H)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${CGRAPH_PATH} ")
+endif(HAVE_CGRAPH_H)
+
#--------------------------------------------------------------------------------------------------
### Initialize of CONTEXT GTNETS
if(NOT enable_gtnets OR enable_supernovae)
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)
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)
###################################
## SimGrid and GRAS specific checks
##
-include(TestBigEndian)
-TEST_BIG_ENDIAN(BIGENDIAN)
+
# Check architecture signature begin
try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR
${PROJECT_DIRECTORY}
#--------------------------------------------------------------------------------------------------
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}")
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)
#--------------------------------------------------------------------------------------------------
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")