* New tree configuration of the project:

.../
   ...           + -- EO
   |             |
   |             |
   +-- src ----- + -- EDO
   |             |
   |             |
   +-- test      + -- MO
   |             |
   |             |
   +-- tutorial  + -- MOEO
   |             |
   |             |
   +-- doc       + -- SMP
   |             |
   |             |
   ...           + -- EOMPI
                 |
                 |
                 + -- EOSERIAL

Question for current maintainers: ./README: new release?

Also:

* Moving out eompi & eoserial modules (issue #2).

* Correction of the errors when executing "make doc" command.

* Adding a solution for the conflicting headers problem (see the two CMake Cache
 Values: PROJECT_TAG & PROJECT_HRS_INSTALL_SUBPATH) (issue #1)

* Header inclusions:
        ** src: changing absolute paths into relative paths ('#include <...>' -> '#include "..."')
        ** test, tutorial: changing relative paths into absolute paths ('#include "..."' -> '#include <...>')

* Moving out some scripts from EDO -> to the root

* Add a new script for compilation and installation (see build_gcc_linux_install)

* Compilation with uBLAS library or EDO module: now ok

* Minor modifications on README & INSTALL files

* Comment eompi failed tests with no end

*** TODO: CPack (debian (DEB) & RedHat (RPM) packages) (issues #6 & #7) ***
This commit is contained in:
Adèle Harrissart 2014-08-04 13:40:28 +02:00
commit 490e837f7a
2359 changed files with 7688 additions and 16329 deletions

113
CMakeLists.txt Normal file → Executable file
View file

@ -50,21 +50,6 @@ 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 to sources of modules
set( EO_SRC_DIR "${CMAKE_SOURCE_DIR}/eo" CACHE INTERNAL "ParadisEO-EO source directory" FORCE)
set( EDO_SRC_DIR "${CMAKE_SOURCE_DIR}/edo" CACHE INTERNAL "ParadisEO-EDO source directory" FORCE)
set( MO_SRC_DIR "${CMAKE_SOURCE_DIR}/mo" CACHE INTERNAL "ParadisEO-MO source directory" FORCE)
set( MOEO_SRC_DIR "${CMAKE_SOURCE_DIR}/moeo" CACHE INTERNAL "ParadisEO-MOEO source directory" FORCE)
set( SMP_SRC_DIR "${CMAKE_SOURCE_DIR}/smp" CACHE INTERNAL "ParadisEO-SMP source directory" FORCE)
set( EOMPI_SRC_DIR "${CMAKE_SOURCE_DIR}/eompi" CACHE INTERNAL "ParadisEO-EOMPI source directory" FORCE)
set(EOSERIAL_SRC_DIR "${CMAKE_SOURCE_DIR}/eoserial" CACHE INTERNAL "ParadisEO-EOSERIAL source directory" FORCE)
set(PROBLEMS_SRC_DIR "${CMAKE_SOURCE_DIR}/problems" CACHE INTERNAL "Problems dependant source directory" FORCE)
set(CMAKE_BASE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
@ -77,64 +62,56 @@ set( SMP_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-SMP bi
set( EOMPI_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EOMPI binary directory" FORCE)
set(EOSERIAL_BIN_DIR "${CMAKE_BINARY_DIR}" CACHE INTERNAL "ParadisEO-EOSERIAL binary directory" FORCE)
set(EO_ONLY "false" CACHE BOOL "Only build EO and not the other modules")
set(ENABLE_OPENMP "false" CACHE BOOL "Build EO with the OpenMP support (shared-memory parallel evaluators on multi-core)")
######################################################################################
### 4) Choose module(s)
######################################################################################
set(EO_ONLY "false" CACHE BOOL "Only build EO and not the other modules")
set(MO "false" CACHE BOOL "Build the MO module")
set(EDO "false" CACHE BOOL "Build the EDO module")
set(MOEO "false" CACHE BOOL "Build the MOEO module")
set(SMP "false" CACHE BOOL "Build the SMP module")
set(EOMPI "false" CACHE BOOL "Build the EOMPI module")
set(EOSERIAL "false" CACHE BOOL "Build the EOSERIAL module")
set(ENABLE_OPENMP "false" CACHE BOOL "Build EO with the OpenMP support (shared-memory parallel evaluators on multi-core)")
set(ENABLE_GNUPLOT "false" CACHE BOOL "Build EO with the GNUplot support (real-time convergence plotting)")
#set(EDO "false" CACHE BOOL "Build the EDO module")
set(EDO_USE_LIB "Eigen3" CACHE STRING "Which linear algebra library to use to build EDO ('UBlas' or 'Eigen3', Eigen3 is recommended)")
set(SMP "false" CACHE BOOL "Build the SMP module")
set(EOMPI "false" CACHE BOOL "Build the MPI module")
set(EDO_USE_LIB "Eigen3" CACHE STRING "Which linear algebra library to use to build EDO ('UBlas' or 'Eigen3', Eigen3 is recommended)")
## EO Module
set(EO_MODULE_NAME "Evolving Object")
set(CMAKE_SOURCE_DIR ${EO_SRC_DIR})
add_subdirectory(${EO_SRC_DIR})
set( EO_TEST_DIR "${CMAKE_SOURCE_DIR}/test/eo" CACHE INTERNAL "ParadisEO-EO test directory" FORCE)
set( EDO_TEST_DIR "${CMAKE_SOURCE_DIR}/test/edo" CACHE INTERNAL "ParadisEO-EDO test directory" FORCE)
set( MO_TEST_DIR "${CMAKE_SOURCE_DIR}/test/mo" CACHE INTERNAL "ParadisEO-MO test directory" FORCE)
set( MOEO_TEST_DIR "${CMAKE_SOURCE_DIR}/test/moeo" CACHE INTERNAL "ParadisEO-MOEO test directory" FORCE)
set( SMP_TEST_DIR "${CMAKE_SOURCE_DIR}/test/smp" CACHE INTERNAL "ParadisEO-SMP test directory" FORCE)
set( EOMPI_TEST_DIR "${CMAKE_SOURCE_DIR}/test/eompi" CACHE INTERNAL "ParadisEO-EOMPI test directory" FORCE)
set(EOSERIAL_TEST_DIR "${CMAKE_SOURCE_DIR}/test/eoserial" CACHE INTERNAL "ParadisEO-EOSERIAL test directory" FORCE)
if(NOT EO_ONLY)
## MO Module
set(MO_MODULE_NAME "Moving objects")
set(CMAKE_SOURCE_DIR ${MO_SRC_DIR})
add_subdirectory(${MO_SRC_DIR})
## EDO Module
#if(EDO)
set(EDO_MODULE_NAME "Evolving Distribution Objects")
set(CMAKE_SOURCE_DIR ${EDO_SRC_DIR})
add_subdirectory(${EDO_SRC_DIR})
#endif()
## MOEO Module
set(MOEO_MODULE_NAME "Multi-Objectives EO")
set(CMAKE_SOURCE_DIR ${MOEO_SRC_DIR})
add_subdirectory(${MOEO_SRC_DIR})
## SMP Module
if(SMP)
set(SMP_MODULE_NAME "Symmetric Multi-Processing")
set(CMAKE_SOURCE_DIR ${SMP_SRC_DIR})
add_subdirectory(${SMP_SRC_DIR})
endif()
## EOMPI Module
if(EOMPI)
find_package(MPI REQUIRED)
add_definitions(-DWITH_MPI)
set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS})
include_directories(${EOMPI_INCLUDE_PATH})
add_subdirectory(${EOMPI_SRC_DIR})
endif()
## EOSERIAL Module
#if(EOSERIAL)
set(EOSERIAL_MODULE_NAME "Serialization Module")
set(CMAKE_SOURCE_DIR ${EOSERIAL_SRC_DIR})
add_subdirectory(${EOSERIAL_SRC_DIR})
#endif()
endif()
set( EO_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/eo" CACHE INTERNAL "ParadisEO-EO tutorial directory" FORCE)
set( EDO_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/edo" CACHE INTERNAL "ParadisEO-EDO tutorial directory" FORCE)
set( MO_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/mo" CACHE INTERNAL "ParadisEO-MO tutorial directory" FORCE)
set( MOEO_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/moeo" CACHE INTERNAL "ParadisEO-MOEO tutorial directory" FORCE)
set( SMP_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/smp" CACHE INTERNAL "ParadisEO-SMP tutorial directory" FORCE)
set( EOMPI_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/eompi" CACHE INTERNAL "ParadisEO-EOMPI tutorial directory" FORCE)
set(EOSERIAL_TUTORIAL_DIR "${CMAKE_SOURCE_DIR}/tutorial/eoserial" CACHE INTERNAL "ParadisEO-EOSERIAL tutorial directory" FORCE)
######################################################################################
### 5) Packaging : only in release !
### 5) Add sources
######################################################################################
add_subdirectory(src)
add_subdirectory(doc)
if(ENABLE_CMAKE_EXAMPLE)
add_subdirectory(tutorial)
endif(ENABLE_CMAKE_EXAMPLE)
if(ENABLE_CMAKE_TESTING)
add_subdirectory(test)
endif(ENABLE_CMAKE_TESTING)
######################################################################################
### 6) Packaging : only in release !
######################################################################################
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")