diff --git a/trunk/install.cmake b/trunk/install.cmake index 8be5da3c3..0e6d636bf 100644 --- a/trunk/install.cmake +++ b/trunk/install.cmake @@ -1,8 +1,116 @@ -########################################################################################################################################## -### ParadisEO Install Configuration -### The path to the modules EO and MO must be specified above. -########################################################################################################################################## + +###################################################################################### +### CMake basic configuration +###################################################################################### + +# check cmake version compatibility +CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) + +# regular expression checking +INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") + +# set a language for the entire project. +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) + +#################################################################################### + + +##################################################################################### +### Include required modules & utilities +##################################################################################### +INCLUDE(CMakeBackwardCompatibilityCXX) + +INCLUDE(FindDoxygen) + +INCLUDE(FindGnuplot) + +INCLUDE(CheckLibraryExists) + +INCLUDE(Dart OPTIONNAL) + +# the project can have a DartConfig.cmake file +INCLUDE(DartConfig.cmake OPTIONNAL) + +# Set a special flag if the environment is windows (should do the same in a config.g file) +IF (WIN32) + ADD_DEFINITIONS(-D_WINDOWS=1) +ENDIF (WIN32) +###################################################################################### + + +##################################################################################### +### Manage the build type +##################################################################################### + +# the user should choose the build type on windows environments,excepted under cygwin (default=none) +SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE) + +FIND_PROGRAM(MEMORYCHECK_COMMAND + NAMES purify valgrind + PATHS + "/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]" + DOC "Path to the memory checking command, used for memory error detection.") +IF(NOT CMAKE_BUILD_TYPE) + SET( CMAKE_BUILD_TYPE + ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING + "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." + FORCE) +ENDIF(NOT CMAKE_BUILD_TYPE) + +IF(WIN32 AND NOT CYGWIN) + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") + ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +ELSE(WIN32 AND NOT CYGWIN) + IF(CMAKE_COMPILER_IS_GNUCXX) + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -pedantic -Wextra -Wno-import -Winit-self -Wmissing-include-dirs -Wunused-parameter -Wundef -Wshadow -Wunsafe-loop-optimizations -Wcast-align -Wconversion -Wsign-compare -Winline -Wdisabled-optimization") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -O6") + ENDIF(CMAKE_COMPILER_IS_GNUCXX) +ENDIF(WIN32 AND NOT CYGWIN) + +IF(CMAKE_BUILD_TYPE MATCHES Debug) + ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON) +ENDIF(CMAKE_BUILD_TYPE MATCHES Debug) + +##################################################################################### + + +###################################################################################### +### Test config +###################################################################################### + +#SET(ENABLE_CMAKE_TESTING TRUE CACHE BOOL "Enable testing ?") + +IF (ENABLE_CMAKE_TESTING) + ENABLE_TESTING() +ENDIF (ENABLE_CMAKE_TESTING) +###################################################################################### + + +###################################################################################### +### Subdirectories that CMake should process for MO, MOEO and PEO +###################################################################################### + +SUBDIRS( doc src test tutorial) + +###################################################################################### + + +####################################################################################### +### Paths to EO, MO and MOEO must be specified above. +####################################################################################### SET(EO_SRC_DIR "${CMAKE_SOURCE_DIR}/../paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE) SET(EO_BIN_DIR "${CMAKE_BINARY_DIR}/../../paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE) @@ -13,6 +121,6 @@ SET(MO_BIN_DIR "${CMAKE_BINARY_DIR}/../../paradiseo-mo/build" CACHE PATH "Paradi SET(MOEO_SRC_DIR "${CMAKE_SOURCE_DIR}/../paradiseo-moeo" CACHE PATH "ParadisMOEO-MOEO source directory" FORCE) SET(MOEO_BIN_DIR "${CMAKE_BINARY_DIR}/../../paradiseo-moeo/build" CACHE PATH "ParadisMOEO-MOEO binary directory" FORCE) -########################################################################################################################################### +####################################################################################### diff --git a/trunk/installParadiseo.sh b/trunk/installParadiseo.sh index a386fa607..596a2e6b9 100755 --- a/trunk/installParadiseo.sh +++ b/trunk/installParadiseo.sh @@ -15,6 +15,7 @@ TAR_MSG=" " DIE=0 PROG=ParadisEO CMAKE_PRIMARY_CONFIG_FILE=install.cmake +HOME_PATH=$HOME # generator types available on Unix platforms P_UNIX_MAKEFILES=1 @@ -25,6 +26,14 @@ G_KDEVELOP3_PROJECT="KDevelop3" # should we compile ParadisEO ? COMPILE_PARADISEO=1 +# Build types +DEFAULT_BUILD_TYPE=Release +BUILD_TYPE=$DEFAULT_BUILD_TYPE + +# CMake/CTest/Dart flags +CTEST_DEFAULT_CONFIG="-D ExperimentalStart -D ExperimentalBuild -D ExperimentalCoverage" +CTEST_CONFIG=$CTEST_DEFAULT_CONFIG + # install types to select in the main menu P_FULL_INSTALL=1 P_BASIC_INSTALL=2 @@ -55,6 +64,8 @@ S_CONFIGURE_MPD=1013 S_PEO_CHECK=1014 S_REMOVE_INSTALL=1015 S_END=1016 +S_END_WITHOUT_INFO=1017 + #### define what are the possible installs and their content @@ -65,7 +76,7 @@ FULL_INSTALL_WITHOUT_LIBXML2="$S_INTRODUCTION $S_UNPACK_MPICH $S_INSTALL_EO $S_I FULL_INSTALL_WITHOUT_MPICH2="$S_INTRODUCTION $S_UNPACK_LIBXML $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_CONFIGURE_LIBXML2_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" -FULL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_INTRODUCTION $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" +FULL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_INTRODUCTION $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END_WITHOUT_INFO" # basic install BASIC_INSTALL="$S_INTRODUCTION $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_END" @@ -77,7 +88,7 @@ PARALLEL_INSTALL_WITHOUT_LIBXML2="$S_PEO_CHECK $S_INTRODUCTION $S_UNPACK_MPICH PARALLEL_INSTALL_WITHOUT_MPICH2="$S_PEO_CHECK $S_INTRODUCTION $S_UNPACK_LIBXML $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_CONFIGURE_LIBXML2_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" -PARALLEL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_PEO_CHECK $S_INTRODUCTION $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" +PARALLEL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_PEO_CHECK $S_INTRODUCTION $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END_WITHOUT_INFO" # remove a previous install RM_PREVIOUS_INSTALL="$S_REMOVE_INSTALL" @@ -108,6 +119,7 @@ PEO_CHECK_ERROR=118 RM_PARADISEO_EO_ERROR=119 RM_UTIL_ERROR=120 BASIC_INSTALL_MISSING_ERROR=121 +DART_SUBMISSION_ERROR=64 #Date DATE=`/bin/date '+%Y%m%d%H%M%S'` @@ -155,7 +167,7 @@ function execute_cmd echo "${COMMAND}" >> ${FIC_ESP} ${COMMAND} >> ${FIC_OUT} 2>> ${FIC_ERR} - + RETURN_CODE=$? echo "RETURN_CODE : ${RETURN_CODE}" >> ${FIC_ESP} @@ -166,7 +178,7 @@ function execute_cmd return 0 else echo " $ERROR_TAG ${COMMENT} NOK" >> ${FIC_ESP} - return 1 + return ${RETURN_CODE} fi } @@ -320,33 +332,13 @@ function run_install_step() echo "" echo -e ' \033[40m\033[1;33m### ParadisEO install starting .... ### \033[0m ' echo - echo "Installing the environment for ParadisEO...Note that the librairies \"libxml2\" ans \"mpich2\" required for ParadisEO are provided with this package." - sleep 3 - + echo "Installing the environment for ParadisEO...Note that the librairies \"libxml2\" ans \"mpich2\" required for ParadisEO are provided with this package. To avoid build and test reports to be sent to our repository, please stop the program and restart it using the --skipdart option." + sleep 5 echo echo return $SUCCESSFUL_STEP ;; - $S_UNPACK_EO) - ########## unpacking paradiseo-eo ########## - echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " - echo ' --> Unpacking Paradiseo-EO (Evolving Objects) ...' - - execute_cmd "tar xvf $resourceKitPath/$LIBS_PATH/$PARADISEO_EO_ARCHIVE --directory $installKitPath" "[$currentStepCounter] Unpack Paradiseo-EO" $SPY - if [ ! "$?" = "0" ] - then - echo '' - echo " --> Error when unpacking Paradiseo-EO" - echo -e ' \033[40m\033[1;33m### END ### \033[0m ' - return $EO_UNPACKING_ERROR - else - echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" - echo - return $SUCCESSFUL_STEP - fi - ;; - $S_UNPACK_LIBXML) ########## unpacking libxml2 ########## echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " @@ -410,15 +402,20 @@ function run_install_step() execute_cmd " echo \"cmake ../ -G$BUILD_PROCESS_TYPE \" " "[$currentStepCounter-3] Run CMake using generator $BUILD_PROCESS_TYPE" $SPY - cmake ../ -G"$BUILD_PROCESS_TYPE" >> ${SPY} 2>> ${SPY} + cmake ../ -G"$BUILD_PROCESS_TYPE" -DCMAKE_BUILD_TYPE=$BUILD_TYPE >> ${SPY} 2>> ${SPY} RETURN=`expr $RETURN + $?` if [ "$COMPILE_PARADISEO" = "1" ] then - execute_cmd "make" "[$currentStepCounter-4] Compile ParadisEO-EO" $SPY - RETURN=`expr $RETURN + $?` + execute_cmd "ctest $CTEST_CONFIG" "[$currentStepCounter-4] Compile ParadisEO-EO using CTest" $SPY + LAST_RETURN=$? + # don't consider a submission error as a "right error" + if [ ! "$LAST_RETURN" = "$DART_SUBMISSION_ERROR" ] + then + RETURN=`expr $RETURN + $LAST_RETURN` + fi fi - + if [ ! $(($RETURN)) = 0 ] then echo '' @@ -446,18 +443,21 @@ function run_install_step() execute_cmd "cd $installKitPath/paradiseo-mo/build" "[$currentStepCounter-1] Go in Paradiseo-MO dir" $SPY RETURN=$? - execute_cmd " echo \"cmake ../ -G$BUILD_PROCESS_TYPE \" -DEOdir=$installKitPath/paradiseo-eo" "[$currentStepCounter-2] Run CMake using generator $BUILD_PROCESS_TYPE -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE" $SPY - cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" >> ${SPY} 2>> ${SPY} + execute_cmd " echo \"cmake ../ -G$BUILD_PROCESS_TYPE \" cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G\"$BUILD_PROCESS_TYPE\" -DCMAKE_BUILD_TYPE=$BUILD_TYPE " "[$currentStepCounter-2] Run CMake using generator $BUILD_PROCESS_TYPE -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE" $SPY + cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" -DCMAKE_BUILD_TYPE=$BUILD_TYPE >> ${SPY} 2>> ${SPY} RETURN=`expr $RETURN + $?` if [ "$COMPILE_PARADISEO" = "1" ] then - execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-MO" $SPY + execute_cmd "ctest $CTEST_CONFIG" "[$currentStepCounter-3] Compile ParadisEO-MO using CTest" $SPY RETURN=`expr $RETURN + $?` execute_cmd "make install" "[$currentStepCounter-4] Make install of ParadisEO-MO" $SPY RETURN=`expr $RETURN + $?` fi + # Make link with the install.cmake (at the top level) + #execute_cmd "ln -s $installKitPath/install.cmake $installKitPath/paradiseo-mo/install.cmake" "[$currentStepCounter-5] Create link to install.cmake for MO" $SPY + if [ ! $(($RETURN)) = 0 ] then echo '' @@ -485,17 +485,20 @@ function run_install_step() RETURN=$? execute_cmd " echo \"cmake ../ -G$BUILD_PROCESS_TYPE \" -DEOdir=$installKitPath/paradiseo-eo" "[$currentStepCounter-2] Run CMake using generator $BUILD_PROCESS_TYPE -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE" $SPY - cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" >> ${SPY} 2>> ${SPY} + cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" -DCMAKE_BUILD_TYPE=$BUILD_TYPE >> ${SPY} 2>> ${SPY} RETURN=`expr $RETURN + $?` if [ "$COMPILE_PARADISEO" = "1" ] then - execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-MOEO" $SPY + execute_cmd "ctest $CTEST_CONFIG" "[$currentStepCounter-3] Compile ParadisEO-MOEO using CTest" $SPY RETURN=`expr $RETURN + $?` execute_cmd "make install" "[$currentStepCounter-4] Make install ParadisEO-MOEO" $SPY RETURN=`expr $RETURN + $?` fi + # Make link with the install.cmake (at the top level) + #execute_cmd "ln -s $installKitPath/install.cmake $installKitPath/paradiseo-moeo/install.cmake" "[$currentStepCounter-5] Create link to install.cmake for MOEO" $SPY + if [ ! $(($RETURN)) = 0 ] then echo '' @@ -742,17 +745,20 @@ function run_install_step() RETURN=$? execute_cmd " echo \"cmake ../ -G$BUILD_PROCESS_TYPE \" -DEOdir=$installKitPath/paradiseo-eo -DMOdir=$installKitPath/paradiseo-mo" "[$currentStepCounter-2] Run CMake using generator $BUILD_PROCESS_TYPE -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE" $SPY - cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" >> ${SPY} 2>> ${SPY} + cmake ../ -Dconfig=$installKitPath/$CMAKE_PRIMARY_CONFIG_FILE -G"$BUILD_PROCESS_TYPE" -DCMAKE_BUILD_TYPE=$BUILD_TYPE >> ${SPY} 2>> ${SPY} RETURN=`expr $RETURN + $?` if [ "$COMPILE_PARADISEO" = "1" ] then - execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-PEO " $SPY + execute_cmd "ctest $CTEST_CONFIG" "[$currentStepCounter-3] Compile ParadisEO-PEO using CTest" $SPY RETURN=`expr $RETURN + $?` execute_cmd "make install" "[$currentStepCounter-4] Make install ParadisEO-PEO " $SPY RETURN=`expr $RETURN + $?` fi + # Make link with the install.cmake (at the top level) + #execute_cmd "ln -s $installKitPath/install.cmake $installKitPath/paradiseo-peo/install.cmake" "[$currentStepCounter-5] Create link to install.cmake for PEO" $SPY + if [ ! $(($RETURN)) = 0 ] then echo '' @@ -827,26 +833,21 @@ function run_install_step() return $BASIC_INSTALL_MISSING_ERROR fi ;; + $S_END_WITHOUT_INFO) + echo + echo -e " \033[40m\033[1;34m# Successfull installation. \033[0m" + echo + return $SUCCESSFUL_STEP + ;; $S_END) - echo -e "\033[40m\033[1;33m### - The file \".bashrc\" file located in your directory $homePath has been MODIFIED. - The following lines have been added at the end: - - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$installKitPath/libxml2/lib: - PATH=$PATH:$installKitPath/libxml2/bin:$installKitPath/mpich2/bin - - These variables are necessary to compile any program using ParadisEO-PEO. If - you want to keep them in your environment in order not to have to set them each time you compile, enter \"source $homePath/.bashrc\". - - If you don't want to use these variables, please remove them from $homePath/.bashrc. ### \033[0m" - + echo -e "The file \".bashrc\" file located in your directory $HOME has been MODIFIED. The following variables have been modified at the end:" + echo -e " LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$installKitPath/libxml2/lib: " + echo -e " PATH=\$PATH:$installKitPath/libxml2/bin:$installKitPath/mpich2/bin" + echo -e "These variables are necessary to compile any program using ParadisEO-PEO.\033[40m\033[1;33m If you want to keep them in your environment in order not to have to set them each time you compile, enter \"source $homePath/.bashrc\" \033[0m. If you don't want to use these variables, please remove them from $HOME/.bashrc." sleep 2 echo echo - if [ ! "$COMPILE_PARADISEO" -eq "1" ] - then - echo "=> ParadisEO must now be compiled using the appropriate tool depending on the generator you've chosen." - fi + echo -e " \033[40m\033[1;34m# Successfull installation. \033[0m" echo return $SUCCESSFUL_STEP ;; @@ -964,58 +965,107 @@ function check_utils_install DIE=1 } - - if [ "$DIE" = "1" ] then exit 1 fi -# main -if [ "$1" = "--help" ] -then - echo - echo 'Use : ./installParadiseo.sh for standard install' - echo - echo 'Use : ./installParadiseo.sh to give your HOME path' - echo 'Example: ./installParadiseo.sh /usr/home/me' - echo - echo 'Use : ./installParadiseo.sh --prefix=' - echo - echo '=> For further help, please contact paradiseo-help@lists.gforge.inria.fr' - echo - exit -fi -# do we have a valid path ? -if [ ! -d $HOME ] -then - if [ "$1" = "" ] - then - echo " Please give a valid path for your home directory (use ./installParadiseo.sh --help for further information)" - else - homePath=$1 - fi -else - homePath=$HOME -fi +######################################################################## +# Simple menu +# The options are : +# --prefix +# --debug +# --skipdart +# --help +####################################################################### - -# simple menu INSTALL_TREATENED=0 INSTALL_PATH=$PWD for i in $* do + if [ "${i%=*}" = "--help" ] || [ "${i%=*}" = "-h" ] + then + clear + echo "installParadiseo.sh" + echo + echo -e "\033[1mNAME\033[0m" + echo ' installParadiseo.sh - Install ParadisEO' + echo + echo -e "\033[1mSYNOPSIS\033[0m" + echo -e ' \033[1m./installParadiseo.sh\033[0m or \033[1mbash installParadiseo.sh\033[0m' + echo -e ' [\033[1m--prefix=\033[0m\033[4mPATH\033[0m] [\033[1m--debug\033[0m] [\033[1m--skipdart\033[0m] [\033[1m--home=\033[0m\033[4mHOME\033[0m] [\033[1m-h\033[0m] [\033[1m--help\033[0m]' + echo + echo -e "\033[1mDESCRIPTION\033[0m" + echo -e " \033[1m--prefix=\033[0m\033[4mPATH\033[0m" + echo -e " ParadisEO will be installed in the directory \033[0m\033[4mPATH\033[0m. The current directory is used by default." + echo + echo -e " \033[1m--debug\033[0m" + echo ' Debug mode, set warning compiler flags and run tests.' + echo + echo -e " \033[1m--skipdart\033[0m" + echo ' Use this option to avoid build/test report submission to our Dart server.' + echo + echo -e " \033[1m--home=\033[0m\033[4mHOME\033[0m" + echo -e " Using \033[0m\033[4mHOME\033[0m as your home directory. Should be used when ~ doesnt reference your home. " + echo + echo -e " \033[1m-h, --help\033[0m" + echo ' Print these useful lines.' + echo + echo -e "\033[1mAUTHOR\033[0m" + echo " Written by Thomas Legrand." + echo + echo -e "\033[1mBUGS\033[0m" + echo " Report bugs to paradiseo-bugs@lists.gforge.inria.fr." + echo + echo -e "\033[1mCOPYRIGHT\033[0m" + echo " This software is governed by the CeCILL license under French law and" + echo " abiding by the rules of distribution of free software. You can use," + echo " modify and/ or redistribute the software under the terms of the CeCILL" + echo " license as circulated by CEA, CNRS and INRIA at the following URL" + echo " http://www.cecill.info. " + echo + echo -e "\033[1mSEE ALSO\033[0m" + echo " For further help, please contact paradiseo-help@lists.gforge.inria.fr." + echo + exit + fi if [ "${i%=*}" = "--prefix" ] - then + then INSTALL_PATH=${i#*=} fi + if [ "${i%=*}" = "--debug" ] + then + BUILD_TYPE=Debug + CTEST_CONFIG="$CTEST_CONFIG -D ExperimentalTest -D ExperimentalMemCheck" + fi + if [ "${i%=*}" = "--skipdart" ] + then + SKIP_DART="1" + fi + if [ "${i%=*}" = "--home" ] + then + HOME_PATH=${i#*=} + fi done +####################################################################### + +### Do we have a valid home path ? +if [ ! -d $HOME_PATH ] +then + echo " Please give a valid path for your home directory (use --help for further information)" +fi - -# need the generator type +### Add a CTest flag depending on the "skipdart" option. +if [ ! "$SKIP_DART" = "1" ] +then + CTEST_CONFIG="$CTEST_CONFIG -D ExperimentalSubmit" +fi + + +### Need the generator BUILD_PROCESS_TYPE=0 GENERATOR_TREATENED=0 diff --git a/trunk/paradiseo-mo/CMakeLists.txt b/trunk/paradiseo-mo/CMakeLists.txt index aeacd2e96..6013d3ab4 100644 --- a/trunk/paradiseo-mo/CMakeLists.txt +++ b/trunk/paradiseo-mo/CMakeLists.txt @@ -1,63 +1,32 @@ -###################################################################################### +########################################################################################################################################## ### 0) If you want to set your own variables in mo-conf.cmake and avoid the cmd line -###################################################################################### +########################################################################################################################################## INCLUDE(mo-conf.cmake OPTIONAL) -###################################################################################### +########################################################################################################################################## -###################################################################################### +########################################################################################################################################## ### 1) Project properties -###################################################################################### +########################################################################################################################################## # set the project name PROJECT(ParadisEO-MO) SET(PACKAGE_BUGREPORT "paradiseo-help@lists.gforge.inria.fr" CACHE STRING "Package bug report" FORCE) SET(PACKAGE_NAME "ParadisEO-MO - Moving Objects" CACHE STRING "Package name" FORCE) -SET(PACKAGE_STRING "ParadisEO-MO 1.0" CACHE STRING "Package string full name" FORCE) -SET(PACKAGE_VERSION "1.0" CACHE STRING "Package version" FORCE) -SET(GLOBAL_VERSION "1.0" CACHE STRING "Global version" FORCE) -SET(VERSION "1.0" CACHE STRING "Version" FORCE) - -# check cmake version compatibility -CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) - -# regular expression checking -INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") - -# set a language for the entire project. -ENABLE_LANGUAGE(CXX) -ENABLE_LANGUAGE(C) - -##################################################################################### +SET(PACKAGE_STRING "ParadisEO-MO 1.1" CACHE STRING "MO Package string full name" FORCE) +SET(PACKAGE_VERSION "1.1" CACHE STRING "Package version" FORCE) +SET(GLOBAL_VERSION "1.1" CACHE STRING "Global version" FORCE) +SET(VERSION "1.1" CACHE STRING "Version" FORCE) +########################################################################################################################################## -##################################################################################### -### 2) Include required modules -##################################################################################### - -INCLUDE(CMakeBackwardCompatibilityCXX) - -INCLUDE(FindDoxygen) - -INCLUDE(FindGnuplot) - -# check for some functions -INCLUDE(CheckLibraryExists) - -INCLUDE(Dart OPTIONNAL) - -# the project can have a DartConfig.cmake file -INCLUDE(DartConfig.cmake OPTIONNAL) -###################################################################################### - - -###################################################################################### -### 3) Include the main configuration variables -###################################################################################### +########################################################################################################################################## +### 2) Include the common CMake configuration +########################################################################################################################################## # The "config" variable must be provided on the command line IF(NOT DEFINED config OR NOT config) @@ -67,99 +36,5 @@ ENDIF(NOT DEFINED config OR NOT config) # Need the config file whose full path is given thanks to the "config" variable INCLUDE(${config}) +########################################################################################################################################## -###################################################################################### - - -###################################################################################### -### 4) Paths checking -###################################################################################### - -IF(WIN32) - SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") -ELSE(WIN32) - SET (ABSOLUTE_PATH_REGEX "^/") -ENDIF(WIN32) - -SET(REQUIRED_PATHS "EO_SRC_DIR" "EO_BIN_DIR") -FOREACH (path ${REQUIRED_PATHS}) - IF(EXISTS ${${path}}) - MESSAGE (STATUS "Using ${path}=${${path}}") - ELSE(EXISTS ${${path}}) - MESSAGE (FATAL_ERROR "\n Cannot find \"${${path}}\". Please, fill \"${config}\" with a correct value") - ENDIF(EXISTS ${${path}}) - - IF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") - MESSAGE (FATAL_ERROR "${${path}} MUST BE an absolute path") - ENDIF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") -ENDFOREACH (path ${REQUIRED_PATHS}) -###################################################################################### - - -##################################################################################### -### 5) Manage the build type -##################################################################################### - -# the user should choose the build type on windows environments,excepted under cygwin (default=none) -SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE) - -FIND_PROGRAM(MEMORYCHECK_COMMAND - NAMES purify valgrind - PATHS - "/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]" - DOC "Path to the memory checking command, used for memory error detection.") -IF(NOT CMAKE_BUILD_TYPE) - SET( CMAKE_BUILD_TYPE - ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING - "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." - FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) - -IF(WIN32 AND NOT CYGWIN) - IF(CMAKE_CXX_COMPILER MATCHES cl) - IF(NOT WITH_SHARED_LIBS) - IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") - SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") - SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") - SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") - ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") - ENDIF(NOT WITH_SHARED_LIBS) - ENDIF(CMAKE_CXX_COMPILER MATCHES cl) -ELSE(WIN32 AND NOT CYGWIN) - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -pedantic -Wextra -Wno-import -Winit-self -Wmissing-include-dirs -Wunused-parameter -Wundef -Wshadow -Wunsafe-loop-optimizations -Wcast-align -Wconversion -Wsign-compare -Winline -Wdisabled-optimization") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -O6") - ENDIF(CMAKE_COMPILER_IS_GNUCXX) -ENDIF(WIN32 AND NOT CYGWIN) - -IF(CMAKE_BUILD_TYPE MATCHES Debug) - ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON) -ENDIF(CMAKE_BUILD_TYPE MATCHES Debug) - -##################################################################################### - - -###################################################################################### -### 6) Where must cmake go now ? -###################################################################################### - -SUBDIRS(doc test tutorial) - -###################################################################################### - - -###################################################################################### -### 7) Test config -###################################################################################### - -#SET(ENABLE_CMAKE_TESTING TRUE CACHE BOOL "Should we test using Dart") - -IF (ENABLE_CMAKE_TESTING) - ENABLE_TESTING() -ENDIF (ENABLE_CMAKE_TESTING) - -###################################################################################### diff --git a/trunk/paradiseo-moeo/CMakeLists.txt b/trunk/paradiseo-moeo/CMakeLists.txt index 478f126c2..8728e0a0c 100644 --- a/trunk/paradiseo-moeo/CMakeLists.txt +++ b/trunk/paradiseo-moeo/CMakeLists.txt @@ -1,63 +1,32 @@ -###################################################################################### +########################################################################################################################################## ### 0) If you want to set your own variables in moeo-conf.cmake and avoid the cmd line -###################################################################################### +########################################################################################################################################## INCLUDE(moeo-conf.cmake OPTIONAL) -###################################################################################### +########################################################################################################################################## -###################################################################################### +########################################################################################################################################## ### 1) Project properties -###################################################################################### +########################################################################################################################################## # set the project name PROJECT(ParadisEO-MOEO) SET(PACKAGE_BUGREPORT "paradiseo-help@lists.gforge.inria.fr" CACHE STRING "Package bug report" FORCE) SET(PACKAGE_NAME "ParadisEO-MOEO - Multi Objective Evolving Objects" CACHE STRING "Package name" FORCE) -SET(PACKAGE_STRING "ParadisEO-MOEO 1.0" CACHE STRING "Package string full name" FORCE) -SET(PACKAGE_VERSION "1.0" CACHE STRING "Package version" FORCE) -SET(GLOBAL_VERSION "1.0" CACHE STRING "Global version" FORCE) -SET(VERSION "1.0" CACHE STRING "Version" FORCE) - -# check cmake version compatibility -CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) - -# regular expression checking -INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") - -# set a language for the entire project. -ENABLE_LANGUAGE(CXX) -ENABLE_LANGUAGE(C) - -##################################################################################### +SET(PACKAGE_STRING "ParadisEO-MOEO 1.1" CACHE STRING "MOEO Package string full name" FORCE) +SET(PACKAGE_VERSION "1.1" CACHE STRING "Package version" FORCE) +SET(GLOBAL_VERSION "1.1" CACHE STRING "Global version" FORCE) +SET(VERSION "1.1" CACHE STRING "Version" FORCE) +########################################################################################################################################## -##################################################################################### -### 2) Include required modules -##################################################################################### - -INCLUDE(CMakeBackwardCompatibilityCXX) - -INCLUDE(FindDoxygen) - -INCLUDE(FindGnuplot) - -# check for some functions -INCLUDE(CheckLibraryExists) - -INCLUDE(Dart OPTIONNAL) - -# the project can have a DartConfig.cmake file -INCLUDE(DartConfig.cmake OPTIONNAL) -###################################################################################### - - -###################################################################################### -### 3) Include the main configuration variables -###################################################################################### +########################################################################################################################################## +### 2) Include the common CMake configuration +########################################################################################################################################## # The "config" variable must be provided on the command line IF(NOT DEFINED config OR NOT config) @@ -67,99 +36,5 @@ ENDIF(NOT DEFINED config OR NOT config) # Need the config file whose full path is given thanks to the "config" variable INCLUDE(${config}) +########################################################################################################################################## -###################################################################################### - - -###################################################################################### -### 4) Paths checking -###################################################################################### - -IF(WIN32) - SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") -ELSE(WIN32) - SET (ABSOLUTE_PATH_REGEX "^/") -ENDIF(WIN32) - -SET(REQUIRED_PATHS "EO_SRC_DIR" "EO_BIN_DIR") -FOREACH (path ${REQUIRED_PATHS}) - IF(EXISTS ${${path}}) - MESSAGE (STATUS "Using ${path}=${${path}}") - ELSE(EXISTS ${${path}}) - MESSAGE (FATAL_ERROR "\n Cannot find \"${${path}}\". Please, fill \"${config}\" with a correct value") - ENDIF(EXISTS ${${path}}) - - IF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") - MESSAGE (FATAL_ERROR "${${path}} MUST BE an absolute path") - ENDIF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") -ENDFOREACH (path ${REQUIRED_PATHS}) -###################################################################################### - - -##################################################################################### -### 5) Manage the build type -##################################################################################### - -# the user should choose the build type on windows environments,excepted under cygwin (default=none) -SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE) - -FIND_PROGRAM(MEMORYCHECK_COMMAND - NAMES purify valgrind - PATHS - "/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]" - DOC "Path to the memory checking command, used for memory error detection.") -IF(NOT CMAKE_BUILD_TYPE) - SET( CMAKE_BUILD_TYPE - ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING - "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." - FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) - -IF(WIN32 AND NOT CYGWIN) - IF(CMAKE_CXX_COMPILER MATCHES cl) - IF(NOT WITH_SHARED_LIBS) - IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") - SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") - SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") - SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") - ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") - ENDIF(NOT WITH_SHARED_LIBS) - ENDIF(CMAKE_CXX_COMPILER MATCHES cl) -ELSE(WIN32 AND NOT CYGWIN) - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -pedantic -Wextra -Wno-import -Winit-self -Wmissing-include-dirs -Wunused-parameter -Wundef -Wshadow -Wunsafe-loop-optimizations -Wcast-align -Wconversion -Wsign-compare -Winline -Wdisabled-optimization") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -O6") - ENDIF(CMAKE_COMPILER_IS_GNUCXX) -ENDIF(WIN32 AND NOT CYGWIN) - -IF(CMAKE_BUILD_TYPE MATCHES Debug) - ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON) -ENDIF(CMAKE_BUILD_TYPE MATCHES Debug) -##################################################################################### - - - -###################################################################################### -### 6) Where must cmake go now ? -###################################################################################### - -SUBDIRS(doc src test tutorial) - -###################################################################################### - - -###################################################################################### -### 7) Test config -###################################################################################### - -#SET(ENABLE_CMAKE_TESTING TRUE CACHE BOOL "Should we test using Dart") - -IF (ENABLE_CMAKE_TESTING) - ENABLE_TESTING() -ENDIF (ENABLE_CMAKE_TESTING) - -###################################################################################### diff --git a/trunk/paradiseo-peo/CMakeLists.txt b/trunk/paradiseo-peo/CMakeLists.txt index d305808a6..104cec08a 100644 --- a/trunk/paradiseo-peo/CMakeLists.txt +++ b/trunk/paradiseo-peo/CMakeLists.txt @@ -1,78 +1,17 @@ -###################################################################################### -### 1) If you want to set your variables in peo-conf.cmake and avoid the cmd line -###################################################################################### +########################################################################################################################################## +### 0) If you want to set your own variables in peo-conf.cmake and avoid the cmd line +########################################################################################################################################## INCLUDE(peo-conf.cmake OPTIONAL) -###################################################################################### +########################################################################################################################################## ###################################################################################### -### 2) Project properties +### 1) Preliminary checking ###################################################################################### -# set the project name -PROJECT(ParadisEO-PEO) - -SET(PACKAGE_BUGREPORT "paradiseo-help@lists.gforge.inria.fr" CACHE STRING "Package bug report" FORCE) -SET(PACKAGE_NAME "ParadisEO-PEO - Parallel and Distributed Evolving Objects" CACHE STRING "Package name" FORCE) -SET(PACKAGE_STRING "ParadisEO-PEO 1.0" CACHE STRING "Package string full name" FORCE) -SET(PACKAGE_VERSION "1.0" CACHE STRING "Package version" FORCE) -SET(GLOBAL_VERSION "1.0" CACHE STRING "Global version" FORCE) -SET(VERSION "1.0" CACHE STRING "Version" FORCE) -##################################################################################### - - -##################################################################################### -### 3) Include required modules -##################################################################################### - -# The "config" variable must be provided on the command line -IF(NOT DEFINED config OR NOT config) - MESSAGE(FATAL_ERROR "The \"config\" variable must be set on the command line to - give the path of the install configuration file. ") -ENDIF(NOT DEFINED config OR NOT config) - -# Need the config file whose full path is given thanks to the "config" variable -INCLUDE(${config}) - -###################################################################################### - - -###################################################################################### -### 4) Paths checking -###################################################################################### - -#IF(WIN32) -# SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") -#ELSE(WIN32) -# SET (ABSOLUTE_PATH_REGEX "^/") -#ENDIF(WIN32) - -#SET(REQUIRED_PATHS "EO_SRC_DIR" "EO_BIN_DIR" "MO_SRC_DIR" "MO_BIN_DIR" "MOEO_SRC_DIR" "MOEO_BIN_DIR") -#FOREACH (path ${REQUIRED_PATHS}) -# IF(EXISTS ${${path}}) -# MESSAGE (STATUS "Using ${path}=${${path}}") -# ELSE(EXISTS ${${path}}) -# MESSAGE (FATAL_ERROR "\n Cannot find \"${${path}}\". Please, fill \"${config}\" with a correct value for ${path} variable") -# ENDIF(EXISTS ${${path}}) -# -# IF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") -# MESSAGE (FATAL_ERROR "${${path}} MUST BE an absolute path") -# ENDIF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") -#ENDFOREACH (path ${REQUIRED_PATHS}) -###################################################################################### - - -###################################################################################### -### 0) Preliminary checking: no WIN and libxml2 -###################################################################################### - -IF(WIN32) - MESSAGE (FATAL_ERROR "ParadisEO-PEO can not be generated on Windows systems") -ENDIF(WIN32) - # check libxml2 FIND_PROGRAM(XML2_CONFIG_PROGRAM NAMES xml2-config PATHS /usr/local/bin /usr/bin DOC "The libxml2 (www.xmlsoft.org) configuration tool") @@ -88,3 +27,36 @@ EXECUTE_PROCESS(COMMAND ${XML2_CONFIG_PROGRAM} --libs OUTPUT_VARIABLE XML2_LIBS ###################################################################################### +########################################################################################################################################## +### 2) Project properties +########################################################################################################################################## + +# set the project name +PROJECT(ParadisEO-PEO) + +SET(PACKAGE_BUGREPORT "paradiseo-help@lists.gforge.inria.fr" CACHE STRING "Package bug report" FORCE) +SET(PACKAGE_NAME "ParadisEO-PEO - Parallel and distributed Evolving Objects" CACHE STRING "Package name" FORCE) +SET(PACKAGE_STRING "ParadisEO-PEO 1.1" CACHE STRING "PEO Package string full name" FORCE) +SET(PACKAGE_VERSION "1.1" CACHE STRING "Package version" FORCE) +SET(GLOBAL_VERSION "1.1" CACHE STRING "Global version" FORCE) +SET(VERSION "1.1" CACHE STRING "Version" FORCE) +########################################################################################################################################## + + +########################################################################################################################################## +### 3) Include the common CMake configuration +########################################################################################################################################## + +# The "config" variable must be provided on the command line +IF(NOT DEFINED config OR NOT config) + MESSAGE(FATAL_ERROR "The \"config\" variable must be set on the command line to + give the path of the install configuration file. ") +ENDIF(NOT DEFINED config OR NOT config) + +# Need the config file whose full path is given thanks to the "config" variable +INCLUDE(${config}) +########################################################################################################################################## + + + +