X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ab4337b69bd5b574b3152ca7ada7251ca21a4e59..b880a837535ef519b9764936da2900b4b2a17e18:/CMakeLists.txt?ds=sidebyside diff --git a/CMakeLists.txt b/CMakeLists.txt index da7ee4c53b..29e9a435c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,9 +12,10 @@ set(libsmpi_version "${release_version}") FIND_PROGRAM(GCOV_PATH gcov) FIND_PROGRAM(VALGRIND_PATH valgrind) include(FindPerl) +if(NOT PERL_EXECUTABLE) + message(FATAL_ERROR "-- SimGrid cannot be compiled without Perl installed -- sorry. Bailling out.") +endif(NOT PERL_EXECUTABLE) -### SET THE PROJECT_DIRECTORY -SET(PROJECT_DIRECTORY "${CMAKE_HOME_DIRECTORY}") ### SET THE LIBRARY EXTENSION if(APPLE) @@ -24,11 +25,30 @@ else(APPLE) endif(APPLE) ### Set some variables for Cmake -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) -set(INCLUDES ${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}/include ${PROJECT_BINARY_DIR}/src/include ${PROJECT_BINARY_DIR}/src) -set(INCLUDES ${INCLUDES} ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/include ${PROJECT_DIRECTORY}/src/include ${PROJECT_DIRECTORY}/src ${CMAKE_CURRENT_BINARY_DIR}/src) +SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) + +if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") + set(INCLUDES + ${CMAKE_HOME_DIRECTORY} + ${CMAKE_HOME_DIRECTORY}/include + ${CMAKE_HOME_DIRECTORY}/src + ${CMAKE_HOME_DIRECTORY}/src/include + ) +else("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") + set(INCLUDES + ${CMAKE_HOME_DIRECTORY} + ${CMAKE_HOME_DIRECTORY}/include + ${CMAKE_HOME_DIRECTORY}/src + ${CMAKE_HOME_DIRECTORY}/src/include + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/include + ${CMAKE_BINARY_DIR}/src + ) +endif("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") + +set(INCLUDES ${INCLUDES} ${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_HOME_DIRECTORY}/src/include ${CMAKE_HOME_DIRECTORY}/src ${CMAKE_CURRENT_BINARY_DIR}/src) if(WIN32) - set(INCLUDES ${INCLUDES} ${PROJECT_DIRECTORY}/include/xbt ${PROJECT_DIRECTORY}/src/xbt) #for win32_ucontext.[ch] + set(INCLUDES ${INCLUDES} ${CMAKE_HOME_DIRECTORY}/include/xbt ${CMAKE_HOME_DIRECTORY}/src/xbt) #for win32_ucontext.[ch] endif(WIN32) set(CMAKE_SOURCE_DIR ${PROJECT_SOURCE_DIRECTORY}) @@ -123,63 +143,58 @@ endif(WIN32) include_directories(${INCLUDES}) + +### Determine the assembly flavor that we need today +include(CMakeDetermineSystem) +set(PROCESSOR_${CMAKE_SYSTEM_PROCESSOR} 1) + ### Setup Options -include(${PROJECT_DIRECTORY}/buildtools/Cmake/Option.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Option.cmake) ### Make the *.h files with *.h.in files -include(${PROJECT_DIRECTORY}/buildtools/Cmake/CompleteInFiles.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/CompleteInFiles.cmake) ### Define source packages for Libs -include(${PROJECT_DIRECTORY}/buildtools/Cmake/DefinePackages.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/DefinePackages.cmake) ### Build some Maintainer files -include(${PROJECT_DIRECTORY}/buildtools/Cmake/MaintainerMode.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MaintainerMode.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/UnitTesting.cmake) ### Setup gcc flags -include(${PROJECT_DIRECTORY}/buildtools/Cmake/Flags.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Flags.cmake) ### Make Libs and Exes if(WIN32) - include(${PROJECT_DIRECTORY}/buildtools/Cmake/MakeExeLibWin.cmake) + include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeExeLibWin.cmake) else(WIN32) - include(${PROJECT_DIRECTORY}/buildtools/Cmake/MakeExeLib.cmake) + include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeExeLib.cmake) endif(WIN32) -### Build the doc -if(enable_doc) - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_DIRECTORY}/doc/html - DEPENDS ${PROJECT_DIRECTORY}/doc/FAQ.doc - ${PROJECT_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake - ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/CMakeLists.txt - COMMAND ${CMAKE_MAKE_PROGRAM} html - COMMENT "Generating the simgrid documentation..." - ) - ADD_CUSTOM_TARGET(simgrid_documentation ALL - DEPENDS ${PROJECT_DIRECTORY}/doc/html) -endif(enable_doc) - ### Make Simgrid.jar and Java examples if(HAVE_JAVA) - include(${PROJECT_DIRECTORY}/buildtools/Cmake/MakeJava.cmake) + include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeJava.cmake) endif(HAVE_JAVA) ### Make tests if(NOT WIN32) -include(${PROJECT_DIRECTORY}/buildtools/Cmake/AddTests.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/AddTests.cmake) else(NOT WIN32) -include(${PROJECT_DIRECTORY}/buildtools/Cmake/AddTestsWin.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/AddTestsWin.cmake) endif(NOT WIN32) -include(${PROJECT_DIRECTORY}/buildtools/Cmake/CTestConfig.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/CTestConfig.cmake) ### Setup the distrib -include(${PROJECT_DIRECTORY}/buildtools/Cmake/Distrib.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Distrib.cmake) ### Pipol compilation -include(${PROJECT_DIRECTORY}/buildtools/Cmake/Pipol.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Pipol.cmake) + +### Build the doc +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake) ### Print ARGS -include(${PROJECT_DIRECTORY}/buildtools/Cmake/PrintArgs.cmake) +include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/PrintArgs.cmake) INCLUDE(Dart)