# ParadiseO ###################################################################################### ### 0) Check the CMake version ###################################################################################### cmake_minimum_required(VERSION 2.8 FATAL_ERROR) ###################################################################################### ### 1) Define the project ###################################################################################### ## Name project("ParadisEO") ## Language enable_language(CXX) ## Test the presence of a compiler if("${CMAKE_CXX_COMPILER}" STREQUAL "" OR "${CMAKE_C_COMPILER}" STREQUAL "") message(FATAL_ERROR "No compiler founded !") endif() ## Versioning set(VERSION_MAJOR 2) set(VERSION_MINOR 0) set(VERSION_PATCH 0) ###################################################################################### ### 2) Check dependencies ###################################################################################### ## Optional include(FindDoxygen OPTIONAL) ###################################################################################### ### 3) Include CMake files ###################################################################################### ## Configuration file for building type and flags include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake) ## Macro file include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Macro.cmake) ## Custom Targets file include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Target.cmake) ###################################################################################### ### 4) Define and add module paths : EO, MO, MOEO ###################################################################################### ## Paths set(EO_SRC_DIR "${CMAKE_SOURCE_DIR}/eo" CACHE PATH "ParadisEO-EO source directory" FORCE) set(EO_BIN_DIR "${CMAKE_BINARY_DIR}/eo" CACHE PATH "ParadisEO-EO binary directory" FORCE) set(MO_SRC_DIR "${CMAKE_SOURCE_DIR}/mo" CACHE PATH "ParadisMO-MO source directory" FORCE) set(MO_BIN_DIR "${CMAKE_BINARY_DIR}/mo" CACHE PATH "ParadisMO-MO binary directory" FORCE) set(MOEO_SRC_DIR "${CMAKE_SOURCE_DIR}/moeo" CACHE PATH "ParadisMOEO-MOEO source directory" FORCE) set(MOEO_BIN_DIR "${CMAKE_BINARY_DIR}/moeo" CACHE PATH "ParadisMOEO-MOEO binary directory" FORCE) set(PROBLEMS_SRC_DIR "${CMAKE_SOURCE_DIR}/problems" CACHE PATH "Problems dependant source directory" FORCE) set(CMAKE_BASE_SOURCE_DIR ${CMAKE_SOURCE_DIR}) ## EO Module set(EO_MODULE_NAME "Evolving Object") set(CMAKE_SOURCE_DIR ${EO_SRC_DIR}) add_subdirectory(${CMAKE_SOURCE_DIR}) if(NOT EO_ONLY) ## MO Module set(MO_MODULE_NAME "ParadisEO-MO") set(CMAKE_SOURCE_DIR ${MO_SRC_DIR}) add_subdirectory(${MO_SRC_DIR}) ## MOEO Module set(MOEO_MODULE_NAME "ParadisEO-MOEO") set(CMAKE_SOURCE_DIR ${MOEO_SRC_DIR}) add_subdirectory(${MOEO_SRC_DIR}) endif() ###################################################################################### ### 5) Packaging : only in release ! ###################################################################################### if(${CMAKE_BUILD_TYPE} STREQUAL "Release") include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Package.cmake) endif()