diff --git a/trunk/paradiseo-moeo/CMakeLists.txt b/trunk/paradiseo-moeo/CMakeLists.txt index c34666467..d1fc05403 100644 --- a/trunk/paradiseo-moeo/CMakeLists.txt +++ b/trunk/paradiseo-moeo/CMakeLists.txt @@ -12,12 +12,8 @@ INCLUDE(moeo-conf.cmake OPTIONAL) ### 1) Main project config ###################################################################################### -IF(NOT DEFINED ${PROJECT_NAME} OR ${PROJECT_NAME} STREQUAL "Project") - SET(PROJECT_NAME "ParadisEO-MOEO") -ENDIF(NOT DEFINED ${PROJECT_NAME} OR ${PROJECT_NAME} STREQUAL "Project") - # set the project name -PROJECT(${PROJECT_NAME}) +PROJECT(ParadisEO-MOEO) # check cmake version compatibility CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) @@ -52,7 +48,7 @@ INCLUDE(CheckLibraryExists) ###################################################################################### IF(NOT DEFINED MOEO_DIR) - SET(MOEO_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "ParadisEO-MOEO main directory") + SET(MOEO_DIR ${ParadisEO-MOEO_SOURCE_DIR} CACHE PATH "ParadisEO-MOEO main directory") ENDIF(NOT DEFINED MOEO_DIR) # Need main EO directory path @@ -68,11 +64,11 @@ IF(NOT DEFINED EO_SRC_DIR) ENDIF(NOT DEFINED EO_SRC_DIR) IF(NOT DEFINED MOEO_SRC_DIR) - SET(MOEO_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) + SET(MOEO_SRC_DIR ${MOEO_DIR}/src) ENDIF(NOT DEFINED MOEO_SRC_DIR) IF(NOT DEFINED MOEO_DOC_DIR) - SET(MOEO_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/doc) + SET(MOEO_DOC_DIR ${MOEO_DIR}/doc) ENDIF(NOT DEFINED MOEO_DOC_DIR) ###################################################################################### diff --git a/trunk/paradiseo-moeo/moeo-conf.cmake b/trunk/paradiseo-moeo/moeo-conf.cmake index 40e6f9112..dda17efce 100644 --- a/trunk/paradiseo-moeo/moeo-conf.cmake +++ b/trunk/paradiseo-moeo/moeo-conf.cmake @@ -3,21 +3,11 @@ ###################################################################################### ### In this file, you can specify many CMake variables used to build paradisEO-MOEO. ### For example, if you don't want ot give the EO path each time on the command line, -### uncomment the line the "SET(PROJECT_NAME...)" and set your favorite name. +### uncomment the line the "SET(EO_DIR...)" and set your path. ### The section numbers are the same as those used in the CMakeLists.txt file. ###################################################################################### ###################################################################################### - -###################################################################################### -### 0) OPTIONNAL - Overwrite project default config -###################################################################################### - -# SET(PROJECT_NAME "ParadisEO-MOEO") - -###################################################################################### - - ###################################################################################### ### 3) OPTIONNAL - Overwrite default paths ###################################################################################### diff --git a/trunk/paradiseo-moeo/src/CMakeLists.txt b/trunk/paradiseo-moeo/src/CMakeLists.txt index d60ae2803..93f0fac3c 100644 --- a/trunk/paradiseo-moeo/src/CMakeLists.txt +++ b/trunk/paradiseo-moeo/src/CMakeLists.txt @@ -13,7 +13,7 @@ INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) ### 2) Define your target(s): just the moeo lib here. ###################################################################################### -SET(MOEO_LIB_OUTPUT_PATH ${MOEO_DIR}/build) +SET(MOEO_LIB_OUTPUT_PATH ${ParadisEO-MOEO_BINARY_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${MOEO_LIB_OUTPUT_PATH}) SET (MOEO_SOURCES core/moeoObjectiveVectorTraits.cpp) diff --git a/trunk/paradiseo-moeo/tutorial/CMakeLists.txt b/trunk/paradiseo-moeo/tutorial/CMakeLists.txt index b038699a2..d9c7a70dc 100644 --- a/trunk/paradiseo-moeo/tutorial/CMakeLists.txt +++ b/trunk/paradiseo-moeo/tutorial/CMakeLists.txt @@ -1,8 +1,18 @@ ###################################################################################### -### 1) Where must cmake go now ? +### 1) Definitions ###################################################################################### -SUBDIRS(Lesson1 Lesson2) +SET(FLOWSHOP_SRC_DIR ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/examples/flowshop) +SET(FLOWSHOP_BINARY_DIR ${ParadisEO-MOEO_BINARY_DIR}/tutorial/examples/flowshop) + +###################################################################################### + + +###################################################################################### +### 2) Where must cmake go now ? +###################################################################################### + +SUBDIRS(examples Lesson1 Lesson2) ###################################################################################### diff --git a/trunk/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt b/trunk/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt index d29b34f5a..d63f22569 100644 --- a/trunk/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt +++ b/trunk/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt @@ -1,9 +1,16 @@ ###################################################################################### -### 0) Need flowhsop directory +### 0) Need flowhsop directory and copy the benchs ###################################################################################### -SET(FLOWSHOP_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flowshop) +ADD_CUSTOM_TARGET(copy_flowshop_param ALL) +ADD_CUSTOM_COMMAND( + TARGET copy_flowshop_param + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/Lesson1/FlowShopEA.param + ${ParadisEO-MOEO_BINARY_DIR}/tutorial/Lesson1) ###################################################################################### @@ -16,7 +23,8 @@ SET(FLOWSHOP_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flowshop) INCLUDE_DIRECTORIES(${EO_SRC_DIR}) INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) -INCLUDE_DIRECTORIES(${FLOWSHOP_EXAMPLE_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) + ###################################################################################### @@ -27,7 +35,7 @@ INCLUDE_DIRECTORIES(${FLOWSHOP_EXAMPLE_DIR}) # --> UNIX IF(UNIX) - LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${MOEO_DIR}/build ${TUTORIAL_LESSON1_DIR}/build) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib ${FLOWSHOP_BINARY_DIR}/lib) # --> WIN ELSEIF(WIN32) @@ -37,10 +45,12 @@ ELSEIF(WIN32) ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) IF (CMAKE_BUILD_TYPE STREQUAL Debug) - LINK_DIRECTORIES(${TUTORIAL_LESSON1_DIR}\\build\\debug) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) - LINK_DIRECTORIES(${TUTORIAL_LESSON1_DIR}\\build\\release) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) LINK_DIRECTORIES(${EO_LIB_DIR}\\release) ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) @@ -59,8 +69,6 @@ ADD_EXECUTABLE(FlowShopEA FlowShopEA.cpp) ADD_DEPENDENCIES(FlowShopEA moeo) ADD_DEPENDENCIES(FlowShopEA flowshop) - -SET(EXECUTABLE_OUTPUT_PATH ${TUTORIAL_LESSON1_DIR}/build) ###################################################################################### @@ -131,12 +139,3 @@ ENDIF(UNIX) ENDIF(CMAKE_CXX_COMPILER MATCHES cl) ###################################################################################### - -###################################################################################### -### 7) Where should CMake go now ? -###################################################################################### - -SUBDIRS(${FLOWSHOP_EXAMPLE_DIR}) - -###################################################################################### - diff --git a/trunk/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt b/trunk/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt index 225fefce6..188903ae5 100644 --- a/trunk/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt +++ b/trunk/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt @@ -16,7 +16,7 @@ INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) # --> UNIX IF(UNIX) - LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${MOEO_DIR}/build) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) # --> WIN ELSEIF(WIN32) @@ -26,10 +26,10 @@ ELSEIF(WIN32) ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) IF (CMAKE_BUILD_TYPE STREQUAL Debug) - LINK_DIRECTORIES(${MOEO_DIR}\\build\\debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) - LINK_DIRECTORIES(${MOEO_DIR}\\build\\release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) LINK_DIRECTORIES(${EO_LIB_DIR}\\release) ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) @@ -47,8 +47,6 @@ ENDIF(UNIX) ADD_EXECUTABLE(sch1 Sch1.cpp) ADD_DEPENDENCIES(sch1 moeo) - -SET(EXECUTABLE_OUTPUT_PATH ${TUTORIAL_LESSON2_DIR}/build) ###################################################################################### diff --git a/trunk/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt b/trunk/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt index ab2a5e6fb..17d6b544e 100644 --- a/trunk/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt +++ b/trunk/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt @@ -1,10 +1,27 @@ +###################################################################################### +### 0) Copy the "benchs" directory in the build directory to easily run the lessons +###################################################################################### + +ADD_CUSTOM_TARGET(copy_flowshop_benchmarks ALL) +ADD_CUSTOM_COMMAND( + TARGET copy_flowshop_benchmarks + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${FLOWSHOP_SRC_DIR}/benchs + ${FLOWSHOP_BINARY_DIR}/benchs) + +###################################################################################### + + ###################################################################################### ### 1) Include the sources ###################################################################################### INCLUDE_DIRECTORIES(${EO_SRC_DIR}) INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) ###################################################################################### @@ -15,7 +32,7 @@ INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) # --> UNIX IF(UNIX) - LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${MOEO_DIR}/build) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) # --> WIN ELSEIF(WIN32) @@ -25,10 +42,10 @@ ELSEIF(WIN32) ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) IF (CMAKE_BUILD_TYPE STREQUAL Debug) - LINK_DIRECTORIES(${MOEO_DIR}\\build\\debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) - LINK_DIRECTORIES(${MOEO_DIR}\\build\\release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) LINK_DIRECTORIES(${EO_LIB_DIR}\\release) ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) @@ -42,10 +59,9 @@ ENDIF(UNIX) ### 3) Define your target(s): just the flowshop lib here ###################################################################################### -SET(FLOWSHOP_LIB_OUTPUT_PATH ${TUTORIAL_LESSON1_DIR}/build) +SET(FLOWSHOP_LIB_OUTPUT_PATH ${FLOWSHOP_BINARY_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${FLOWSHOP_LIB_OUTPUT_PATH}) - SET (FLOWSHOP_SOURCES FlowShopBenchmarkParser.cpp FlowShopEval.cpp FlowShopInit.cpp