endif()
endif()
-exec_program("${CMAKE_LINKER} --version" OUTPUT_VARIABLE "LINKER_VERSION")
+execute_process(COMMAND ${CMAKE_LINKER} --version
+ OUTPUT_VARIABLE LINKER_VERSION)
string(REGEX MATCH "[0-9].[0-9]*" LINKER_VERSION "${LINKER_VERSION}")
### Find programs and paths
include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Option.cmake)
### Determine the assembly flavor that we need today
+set(HAVE_RAW_CONTEXTS 0)
include(CMakeDetermineSystem)
IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64|amd64")
IF(${ARCH_32_BITS})
message(STATUS "System processor: i686 (${CMAKE_SYSTEM_PROCESSOR}, 32 bits)")
set(PROCESSOR_i686 1)
+ set(PROCESSOR_x86_64 0)
ELSE()
message(STATUS "System processor: x86_64 (${CMAKE_SYSTEM_PROCESSOR}, 64 bits)")
+ set(PROCESSOR_i686 0)
set(PROCESSOR_x86_64 1)
ENDIF()
if (WIN32)
- message(STATUS "Disable fast raw contextes on Windows.")
+ message(STATUS "Disable fast raw contexts on Windows.")
else()
set(HAVE_RAW_CONTEXTS 1)
endif()
-
+ELSE()
+ set(PROCESSOR_i686 0)
+ set(PROCESSOR_x86_64 0)
ENDIF()
include(CheckFunctionExists)
CHECK_LIBRARY_EXISTS(pthread pthread_create "" HAVE_PTHREAD)
CHECK_LIBRARY_EXISTS(pthread sem_init "" HAVE_SEM_INIT_LIB)
CHECK_LIBRARY_EXISTS(pthread sem_open "" HAVE_SEM_OPEN_LIB)
+set(HAVE_PTHREAD_SETAFFINITY 0)
CHECK_LIBRARY_EXISTS(pthread pthread_setaffinity_np "" HAVE_PTHREAD_SETAFFINITY)
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
CHECK_FUNCTION_EXISTS(process_vm_readv HAVE_PROCESS_VM_READV)
CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
+foreach(var in
+ HAVE_VALGRIND_H
+ HAVE_UNISTD_H
+ HAVE_EXECINFO_H
+ HAVE_SIGNAL_H
+ HAVE_SYS_PARAM_H
+ HAVE_SYS_SYSCTL_H
+ HAVE_UCONTEXT_H
+ HAVE_FUTEX_H
+ HAVE_GETTIMEOFDAY
+ HAVE_NANOSLEEP
+ HAVE_GETDTABLESIZE
+ HAVE_SYSCONF
+ HAVE_POPEN
+ HAVE_PROCESS_VM_READV
+ HAVE_MMAP
+ TOTO)
+ if (NOT DEFINED ${var})
+ set(${var} 0)
+ endif()
+endforeach()
+
+SET(HAVE_VASPRINTF 0)
CHECK_SYMBOL_EXISTS(vasprintf stdio.h HAVE_VASPRINTF)
if(MINGW)
# The detection of vasprintf fails on MinGW, assumingly because it's
#Check if __thread is defined
execute_process(
- COMMAND "${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_thread_storage.c"
+ COMMAND "${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_thread_storage.c -o testprog"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
RESULT_VARIABLE HAVE_thread_storage_run)
-
-
+file(REMOVE testprog)
if(HAVE_thread_storage_run)
set(HAVE_THREAD_LOCAL_STORAGE 1)
else()
if(enable_jedule)
set(HAVE_JEDULE 1)
+else()
+ set(HAVE_JEDULE 0)
endif()
if(enable_mallocators)
message (STATUS "Warning: no support for SMPI automatic privatization on this platform")
SET(HAVE_PRIVATIZATION 0)
endif()
+else()
+ SET(HAVE_SMPI 0)
endif()
#--------------------------------------------------------------------------------------------------
if(HAVE_SEM_OPEN_LIB)
execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_sem_open.c -lpthread -o sem_open
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- OUTPUT_VARIABLE HAVE_SEM_OPEN_compil
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ OUTPUT_VARIABLE HAVE_SEM_OPEN_compil
)
# Test sem_open by compiling:
# If we're not crosscompiling, we check by executing the program:
if (HAVE_SEM_OPEN AND NOT CMAKE_CROSSCOMPILING)
execute_process(COMMAND ./sem_open
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- RESULT_VARIABLE HAVE_SEM_OPEN_run
- OUTPUT_VARIABLE var_compil
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ RESULT_VARIABLE HAVE_SEM_OPEN_run
+ OUTPUT_VARIABLE var_compil
)
if (NOT HAVE_SEM_OPEN_run)
set(HAVE_SEM_OPEN 1)
if(HAVE_SEM_INIT_LIB)
execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_sem_init.c -lpthread -o sem_init
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- RESULT_VARIABLE HAVE_SEM_INIT_run OUTPUT_VARIABLE HAVE_SEM_INIT_compil)
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ RESULT_VARIABLE HAVE_SEM_INIT_run
+ OUTPUT_VARIABLE HAVE_SEM_INIT_compil)
# Test sem_init by compiling:
if(HAVE_SEM_INIT_compil)
# If we're not crosscompiling, we check by executing the program:
if (HAVE_SEM_INIT AND NOT CMAKE_CROSSCOMPILING)
execute_process(COMMAND ./sem_init
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- RESULT_VARIABLE HAVE_SEM_INIT_run
- OUTPUT_VARIABLE var_compil
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ RESULT_VARIABLE HAVE_SEM_INIT_run
+ OUTPUT_VARIABLE var_compil
)
if (NOT HAVE_SEM_INIT_run)
set(HAVE_SEM_INIT 1)
endif()
endif()
# If the test ran well, remove the test binary
-execute_process(COMMAND ${CMAKE_COMMAND} -E remove test_stackgrowth)
+file(REMOVE test_stackgrowth)
#--------------------------------------------------------------------------------------------------
### check for addr2line
## GIT version check
##
if(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/)
- execute_process(COMMAND git remote
- COMMAND head -n 1
- WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
- OUTPUT_VARIABLE remote
- RESULT_VARIABLE ret
- )
- string(REPLACE "\n" "" remote "${remote}")
+ execute_process(
+ COMMAND git remote
+ COMMAND head -n 1
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
+ OUTPUT_VARIABLE remote
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
#message(STATUS "Git remote: ${remote}")
execute_process(COMMAND git config --get remote.${remote}.url
- WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
- OUTPUT_VARIABLE url
- RESULT_VARIABLE ret
- )
- string(REPLACE "\n" "" url "${url}")
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
+ OUTPUT_VARIABLE url
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
#message(STATUS "Git url: ${url}")
if(url)
execute_process(COMMAND git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --pretty=oneline --abbrev-commit -1
- WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
- OUTPUT_VARIABLE GIT_VERSION
- RESULT_VARIABLE ret
- )
- string(REPLACE "\n" "" GIT_VERSION "${GIT_VERSION}")
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
+ OUTPUT_VARIABLE GIT_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "Git version: ${GIT_VERSION}")
+
execute_process(COMMAND git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log -n 1 --pretty=format:%ai .
- WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
- OUTPUT_VARIABLE GIT_DATE
- RESULT_VARIABLE ret
- )
- string(REPLACE "\n" "" GIT_DATE "${GIT_DATE}")
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
+ OUTPUT_VARIABLE GIT_DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "Git date: ${GIT_DATE}")
string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
execute_process(COMMAND git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --pretty=format:%H -1
- WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
- OUTPUT_VARIABLE SIMGRID_GITHASH
- RESULT_VARIABLE ret
- )
- string(REPLACE "\n" "" SIMGRID_GITHASH "${SIMGRID_GITHASH}")
-
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git/
+ OUTPUT_VARIABLE SIMGRID_GITHASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
elseif(EXISTS ${CMAKE_HOME_DIRECTORY}/.gitversion)
FILE(STRINGS ${CMAKE_HOME_DIRECTORY}/.gitversion GIT_VERSION)
# Avoid triggering a (full) rebuild by touching the files if they did not really change
configure_file("${CMAKE_HOME_DIRECTORY}/tools/cmake/src/internal_config.h.in" "${CMAKE_BINARY_DIR}/src/internal_config.h.generated" @ONLY IMMEDIATE)
configure_file("${CMAKE_HOME_DIRECTORY}/include/simgrid_config.h.in" "${CMAKE_BINARY_DIR}/include/simgrid_config.h.generated" @ONLY IMMEDIATE)
-exec_program("${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/src/internal_config.h.generated ${CMAKE_BINARY_DIR}/src/internal_config.h")
-exec_program("${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/include/simgrid_config.h.generated ${CMAKE_BINARY_DIR}/include/simgrid_config.h")
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/src/internal_config.h.generated ${CMAKE_BINARY_DIR}/src/internal_config.h)
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/include/simgrid_config.h.generated ${CMAKE_BINARY_DIR}/include/simgrid_config.h)
file(REMOVE ${CMAKE_BINARY_DIR}/src/internal_config.h.generated)
file(REMOVE ${CMAKE_BINARY_DIR}/include/simgrid_config.h.generated)
message(" Simgrid dependencies ........: ${SIMGRID_DEP}")
message("")
-exec_program("${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/Testing/Notes/" OUTPUT_VARIABLE OKIDOKI)
+execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/Testing/Notes/)
file(WRITE ${PROJECT_BINARY_DIR}/Testing/Notes/Build "GIT version : ${GIT_VERSION}\n")
file(APPEND ${PROJECT_BINARY_DIR}/Testing/Notes/Build "Release : simgrid-${release_version}\n")