X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4067f2a3e5e4c763a3063c3e393d543f0bf46cdc..fefd7e29e7bf5ae19e8421232861fe17c6115c9f:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index b1deaac096..92cb5e3127 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,9 +6,13 @@ if(WIN32) endif() project(SimGrid C) +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Check for the compiler # +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# + ## ## Check the C/C++ standard that we need -## See also buildtools/Cmake/Flags.cmake that sets our paranoid warning flags +## See also tools/cmake/Flags.cmake that sets our paranoid warning flags enable_language(CXX) @@ -26,13 +30,18 @@ if (CMAKE_COMPILER_IS_GNUCC) "SimGrid needs at least g++ version 4.7 to compile " "(c++11 support of previous versions is too limited).") endif() + + if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.8") + set (CMAKE_AR gcc-ar) + set (CMAKE_RANLIB gcc-ranlib) + endif() endif() ## We need a decent support of the c++11 standard include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=gnu++11" COMPILER_SUPPORTS_CXX11) if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") else() message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. " @@ -76,6 +85,10 @@ if ((NOT DEFINED enable_smpi OR enable_smpi) AND NOT APPLE) # smpi is enabled by enable_language(Fortran OPTIONAL) endif() +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Build the version number # +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# + ## Mapping version number -> version name # 3.5.99 -> alpha1 (oops) # 3.5.9{1,2} -> beta{1,2} @@ -108,10 +121,9 @@ set(SIMGRID_VERSION_BANNER set(libsimgrid_version "${release_version}") set(libsimgrid-java_version "${release_version}") -set(GCC_NEED_VERSION "4.0") set(APPLE_NEED_GCC_VERSION "4.6") -### SET THE LIBRARY EXTENSION AND GCC VERSION +### SET THE LIBRARY EXTENSION if(APPLE) #MAC set(LIB_EXE "dylib") else() @@ -130,17 +142,7 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_CXX_VERSION "${COMPILER_CXX_VERSION}") string(REGEX MATCH "^[0-9].[0-9]" COMPILER_C_VERSION_MAJOR_MINOR "${COMPILER_C_VERSION}") - string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}") - - if(${GCC_NEED_VERSION} GREATER COMPILER_C_VERSION_MAJOR_MINOR) - message(FATAL_ERROR "Gcc must be to version ${GCC_NEED_VERSION} current version ${COMPILER_C_VERSION_MAJOR_MINOR}") - endif() - - if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.8") - set (CMAKE_AR gcc-ar) - set (CMAKE_RANLIB gcc-ranlib) - endif() - + string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}") endif() exec_program("${CMAKE_LINKER} --version" OUTPUT_VARIABLE "LINKER_VERSION") @@ -236,8 +238,8 @@ if(WIN32) set(_XBT_WIN32 1) - message(STATUS "C_COMPILER ${CMAKE_C_COMPILER} ${COMPILER_C_VERSION}") - message(STATUS "CXX_COMPILER ${CMAKE_CXX_COMPILER} ${COMPILER_CXX_VERSION}") + message(STATUS "C_COMPILER ${CMAKE_C_COMPILER} ${COMPILER_C_VERSION_MAJOR_MINOR}") + message(STATUS "CXX_COMPILER ${CMAKE_CXX_COMPILER} ${COMPILER_CXX_VERSION_MAJOR_MINOR}") message(STATUS "CMAKE_RC_COMPILER ${CMAKE_RC_COMPILER}") message(STATUS "INCLUDE ${CMAKE_INCLUDE_WIN}") message(STATUS "LIB ${CMAKE_LIB_WIN}") @@ -252,53 +254,53 @@ endif() include_directories(${INCLUDES}) ### Setup Options -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Option.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Option.cmake) ### Make the *.h files with *.h.in files -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/CompleteInFiles.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/CompleteInFiles.cmake) ### Define source packages for Libs -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/DefinePackages.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/DefinePackages.cmake) ### Build some Maintainer files -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MaintainerMode.cmake) -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/UnitTesting.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MaintainerMode.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/UnitTesting.cmake) ### Setup gcc flags -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Flags.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Flags.cmake) ### Make Libs if(NOT WIN32) - include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeLib.cmake) + include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeLib.cmake) else() - include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeLibWin.cmake) + include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeLibWin.cmake) endif() ### Make Exes -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeExe.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/MakeExe.cmake) ### Make tests if(enable_memcheck_xml) set(enable_memcheck true) endif() -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/AddTests.cmake) -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/CTestConfig.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/AddTests.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/CTestConfig.cmake) ### Setup the distrib -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Distrib.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Distrib.cmake) ### Pipol compilation -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Pipol.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Pipol.cmake) ### Build the doc if(NOT WIN32) - include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake) + include(${CMAKE_HOME_DIRECTORY}/tools/cmake/GenerateDoc.cmake) else() - include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/GenerateDocWin.cmake) + include(${CMAKE_HOME_DIRECTORY}/tools/cmake/GenerateDocWin.cmake) endif() ### Print ARGS -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/PrintArgs.cmake) +include(${CMAKE_HOME_DIRECTORY}/tools/cmake/PrintArgs.cmake) INCLUDE(Dart)