* 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:
parent
836f546a46
commit
863bc7a4c4
|
@ -8,8 +8,32 @@ IF(COMMAND CMAKE_POLICY)
|
|||
CMAKE_POLICY(SET CMP0014 OLD)
|
||||
ENDIF(COMMAND CMAKE_POLICY)
|
||||
|
||||
SET(CMAKE_MODULE_PATH "${CRLCORE_SOURCE_DIR}/cmake_modules/" "$ENV{HURRICANE_TOP}/share/cmake_modules/" "$ENV{IO_TOP}/share/cmake_modules/" )
|
||||
# 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(QT_USE_QTXML "true")
|
||||
#SET(QT_USE_QTOPENGL "true")
|
||||
|
@ -18,10 +42,17 @@ FIND_PACKAGE(Boost 1.33.1 COMPONENTS program_options REQUIRED)
|
|||
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project
|
||||
FIND_PACKAGE(BISON REQUIRED)
|
||||
FIND_PACKAGE(FLEX REQUIRED)
|
||||
FIND_PACKAGE(HURRICANE REQUIRED)
|
||||
FIND_PACKAGE(IO REQUIRED)
|
||||
FIND_PACKAGE(OPENACCESS)
|
||||
FIND_PACKAGE(LEFDEF)
|
||||
FIND_PACKAGE(OPENACCESS)
|
||||
FIND_PACKAGE(IO REQUIRED)
|
||||
FIND_PACKAGE(HURRICANE REQUIRED)
|
||||
|
||||
#LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
|
||||
|
||||
MESSAGE("-- Components of CMAKE_MODULE_PATH:")
|
||||
FOREACH(PATH IN LISTS CMAKE_MODULE_PATH)
|
||||
MESSAGE("-- ${PATH}")
|
||||
ENDFOREACH(PATH)
|
||||
|
||||
SET_LIB_LINK_MODE()
|
||||
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
# - Find the Coriolis includes and libraries.
|
||||
# The following variables are set if Coriolis is found. If CORIOLIS is not
|
||||
# found, CORIOLIS_FOUND is set to false.
|
||||
# CORIOLIS_FOUND - True when the Coriolis include directory is found.
|
||||
# CORIOLIS_INCLUDE_DIR - the path to where the Coriolis include files are.
|
||||
# CORIOLIS_LIBRARIES - The path to where the Coriolis library files are.
|
||||
|
||||
# The following variables are set if Coriolis is found.
|
||||
# If Coriolis is not found, CRLCORE_FOUND is set to false.
|
||||
# CRLCORE_FOUND - True when the Coriolis include directory is found.
|
||||
# CRLCORE_INCLUDE_DIR - the path to where the Coriolis include files are.
|
||||
# CRLCORE_LIBRARIES - The path to where the Coriolis library files are.
|
||||
|
||||
SET(CORIOLIS_INCLUDE_PATH_DESCRIPTION "directory containing the Coriolis include files. E.g /usr/local/include/coriolis or /asim/coriolis/include/coriolis")
|
||||
|
||||
SET(CORIOLIS_DIR_MESSAGE "Set the CORIOLIS_INCLUDE_DIR cmake cache entry to the ${CORIOLIS_INCLUDE_PATH_DESCRIPTION}")
|
||||
|
||||
# don't even bother under WIN32
|
||||
IF(UNIX)
|
||||
|
||||
SET(CORIOLIS_DIR_SEARCH $ENV{CORIOLIS_TOP} $ENV{HURRICANE_TOP})
|
||||
#
|
||||
# Look for an installation.
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue