cmake_minimum_required(VERSION 2.6)
# Java requires 2.8.6
+message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
project(SimGrid C CXX)
##
## Check the C/C++ standard that we need
-## See also tools/cmake/Flags.cmake that sets our paranoid warning flags
+## See also tools/cmake/GCCFlags.cmake that sets our paranoid warning flags
if (MSVC)
message("-- You are compiling SimGrid with MicroSoft Visual C. Good luck.")
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_SCL_SECURE_NO_WARNINGS")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SCL_SECURE_NO_WARNINGS")
else() # gcc or clang
INCLUDE(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG(-fstack-cleaner HAVE_C_STACK_CLEANER)
if(WIN32)
set(INCLUDES ${INCLUDES} ${CMAKE_HOME_DIRECTORY}/include/xbt ${CMAKE_HOME_DIRECTORY}/src/xbt) #for win32_ucontext.[ch]
endif()
-set(CMAKE_SOURCE_DIR ${PROJECT_SOURCE_DIRECTORY})
if(NOT CMAKE_CROSSCOMPILING AND EXISTS /usr/include/)
set(INCLUDES ${INCLUDES} /usr/include/)
### Setup gcc & clang flags
if (NOT MSVC)
- include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Flags.cmake)
+ include(${CMAKE_HOME_DIRECTORY}/tools/cmake/GCCFlags.cmake)
endif()
### Make Libs
endif()
if(enable_java)
- include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeJava.cmake)
+ include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Java.cmake)
endif()
-### Make Exes
-include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeExe.cmake)
-
### Make tests
if(enable_memcheck_xml)
set(enable_memcheck true)
endif()
+INCLUDE(CTest)
+ENABLE_TESTING()
include(${CMAKE_HOME_DIRECTORY}/tools/cmake/AddTests.cmake)
include(${CMAKE_HOME_DIRECTORY}/tools/cmake/CTestConfig.cmake)
+### Define subdirectories
+include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeExe.cmake)
+
### Setup the distrib
include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Distrib.cmake)
-### Pipol compilation
-include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Pipol.cmake)
-
-### Build the doc
+### Build the doc (Windows downloads the doc instead of regenerating)
+#
if(NOT WIN32)
- include(${CMAKE_HOME_DIRECTORY}/tools/cmake/GenerateDoc.cmake)
+ include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Documentation.cmake)
else()
- include(${CMAKE_HOME_DIRECTORY}/tools/cmake/GenerateDocWin.cmake)
+ find_program(WGET_PROGRAM NAMES wget)
+ message(STATUS "wget: ${WGET_PROGRAM}")
+ if(WGET_PROGRAM)
+ ADD_CUSTOM_TARGET(simgrid_documentation
+ COMMENT "Downloading the SimGrid documentation..."
+ COMMAND ${WGET_PROGRAM} -r -np -nH -nd http://simgrid.gforge.inria.fr/simgrid/${release_version}/doc/
+ WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc/html
+ )
+ endif()
endif()
### Print ARGS