* All Tools:

- Change: New structure for the installation & CMake system.
         * Tools are now grouped in "projects". There are three projects:
           1. - IO: Standalones parsers/drivers (IO_USER_TOP, IO_TOP).
           2. - Coriolis: Base & digital tools (CORIOLIS_USER_TOP, CORIOLIS_TOP).
           3. - Chams: Analogic tools (CHAMS_USER_TOP, CHAMS_TOP).
           Each *project* has a two "TOP" environement variables, for
         example: IO_TOP and IO_USER_TOP. Thoses variables are the only
         ones useds to locate the tool (CMake modules, headers & libraries).
           The local path always takes precedence over the global one.
           The localisation process occurs in each tool top CMakeLists.txt
         where the macro SETUP_PROJECT_PATH is to be defined. There is no
         way to put it in a shared includes file as it's the macro precisely
         used to locates the includes... You have to call the macro once for
         each project you wants to uses:
             SETUP_PROJECT_PATHS(IO)
             SETUP_PROJECT_PATHS(CORIOLIS)
         * In FindTOOL.cmake, supress the <TOOL>_DIR_SEARCH and uses the
         <PROJECT>_DIR_SEARCH instead (example: CORIOLIS_DIR_SEARCH).
         * buildCoriolis.py modificated according to the new "TOP" scheme.
This commit is contained in:
Jean-Paul Chaput 2010-03-18 15:33:05 +00:00
parent c77a1b1b1d
commit fefac6987f
2 changed files with 29 additions and 14 deletions

View File

@ -5,6 +5,33 @@ IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW) CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY) ENDIF(COMMAND CMAKE_POLICY)
# This macro has to be included in all the tools CMakeLists.txt as it's
# the sole means of localizing other tools/projects.
MACRO(SETUP_PROJECT_PATHS project)
IF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
MESSAGE("-- ${project}_USER_TOP is set to $ENV{${project}_USER_TOP}")
SET(${project}_DIR_SEARCH "$ENV{${project}_USER_TOP}")
SET(PROJECT_MODULE_PATH "$ENV{${project}_USER_TOP}/share/cmake_modules/")
LIST(FIND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}" DIR_INDEX)
IF( DIR_INDEX LESS 0)
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}")
ENDIF( DIR_INDEX LESS 0)
ENDIF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
IF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
MESSAGE("-- ${project}_TOP is set to $ENV{${project}_TOP}")
LIST(APPEND ${project}_DIR_SEARCH "$ENV{${project}_TOP}")
SET(PROJECT_MODULE_PATH "$ENV{${project}_TOP}/share/cmake_modules/")
LIST(FIND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}" DIR_INDEX)
IF( DIR_INDEX LESS 0)
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_MODULE_PATH}")
ENDIF( DIR_INDEX LESS 0)
ENDIF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
ENDMACRO(SETUP_PROJECT_PATHS project)
SETUP_PROJECT_PATHS(IO)
SETUP_PROJECT_PATHS(CORIOLIS)
SET(CMAKE_C_FLAGS_DEBUG "-g -Wall" CACHE STRING "Debug options." FORCE) SET(CMAKE_C_FLAGS_DEBUG "-g -Wall" CACHE STRING "Debug options." FORCE)
SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall" CACHE STRING "Debug options." FORCE) SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall" CACHE STRING "Debug options." FORCE)
#SET(CMAKE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE) #SET(CMAKE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE)
@ -12,8 +39,6 @@ SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall" CACHE STRING "Debug options." FOR
#SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE) #SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE)
#SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE) #SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "-pg" CACHE STRING "Debug options." FORCE)
SET(CMAKE_MODULE_PATH "$ENV{HURRICANE_TOP}/share/cmake_modules/")
SET(QT_USE_QTXML "true") SET(QT_USE_QTXML "true")
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project

View File

@ -12,14 +12,12 @@ SET(SOLSTICE_DIR_MESSAGE "Set the SOLSTICE_INCLUDE_DIR cmake cache entry to the
# don't even bother under WIN32 # don't even bother under WIN32
IF(UNIX) IF(UNIX)
SET(SOLSTICE_DIR_SEARCH $ENV{CORIOLIS_TOP} $ENV{HURRICANE_TOP})
# #
# Look for an installation. # Look for an installation.
# #
FIND_PATH(SOLSTICE_INCLUDE_PATH NAMES solstice/Equi.h PATHS FIND_PATH(SOLSTICE_INCLUDE_PATH NAMES solstice/Equi.h PATHS
# Look in other places. # Look in other places.
${SOLSTICE_DIR_SEARCH} ${CORIOLIS_DIR_SEARCH}
PATH_SUFFIXES include/coriolis PATH_SUFFIXES include/coriolis
# Help the user find it if we cannot. # Help the user find it if we cannot.
DOC "The ${SOLSTICE_INCLUDE_PATH_DESCRIPTION}" DOC "The ${SOLSTICE_INCLUDE_PATH_DESCRIPTION}"
@ -27,15 +25,7 @@ IF(UNIX)
FIND_LIBRARY(SOLSTICE_LIBRARY_PATH FIND_LIBRARY(SOLSTICE_LIBRARY_PATH
NAMES solstice NAMES solstice
PATHS ${SOLSTICE_DIR_SEARCH} PATHS ${CORIOLIS_DIR_SEARCH}
PATH_SUFFIXES lib
# Help the user find it if we cannot.
DOC "The ${SOLSTICE_INCLUDE_PATH_DESCRIPTION}"
)
FIND_LIBRARY(SOLSTICE_STATIC_LIBRARY_PATH
NAMES solstice-static
PATHS ${SOLSTICE_DIR_SEARCH}
PATH_SUFFIXES lib PATH_SUFFIXES lib
# Help the user find it if we cannot. # Help the user find it if we cannot.
DOC "The ${SOLSTICE_INCLUDE_PATH_DESCRIPTION}" DOC "The ${SOLSTICE_INCLUDE_PATH_DESCRIPTION}"