From: mpa Date: Tue, 5 Nov 2013 12:42:13 +0000 (+0000) Subject: CMake: improved reloading of dependent CMake targets in Config file to X-Git-Tag: V7_3_0a1~11 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=65a44ec3d0241765409a54ed107a6a5e2b6acbf3;p=plugins%2Fghs3dplugin.git CMake: improved reloading of dependent CMake targets in Config file to account for COMPONENTS. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index d640fe4..f2963ec 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,6 +232,10 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets} SET(SMESH_ROOT_DIR "${SMESH_ROOT_DIR}") SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include") + +# Build variables that will be expanded when configuring SalomeConfig.cmake: +# SALOME_CONFIGURE_PREPARE() #For use in the future + CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" diff --git a/SalomeGHS3DPLUGINConfig.cmake.in b/SalomeGHS3DPLUGINConfig.cmake.in index c663f1b..a395897 100644 --- a/SalomeGHS3DPLUGINConfig.cmake.in +++ b/SalomeGHS3DPLUGINConfig.cmake.in @@ -64,21 +64,32 @@ SET_AND_CHECK(SMESH_ROOT_DIR_EXP "@PACKAGE_SMESH_ROOT_DIR@") # For all prerequisites, load the corresponding targets if the package was used # in CONFIG mode. This ensures dependent projects link correctly # without having to set LD_LIBRARY_PATH: -SET(_PREREQ) -SET(_PREREQ_CONFIG_DIR) +SET(_PREREQ @_PREREQ_LIST@) +SET(_PREREQ_CONFIG_DIR @_PREREQ_DIR_LIST@) +SET(_PREREQ_COMPONENTS "@_PREREQ_COMPO_LIST@") LIST(LENGTH _PREREQ_CONFIG_DIR _list_len) -# Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ... -MATH(EXPR _range "${_list_len}-1") -FOREACH(_p RANGE ${_range}) - LIST(GET _PREREQ ${_p} _pkg ) - LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir) - IF(_pkg_dir) - MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...") - FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE +IF(NOT _list_len EQUAL 0) + # Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ... + MATH(EXPR _range "${_list_len}-1") + FOREACH(_p RANGE ${_range}) + LIST(GET _PREREQ ${_p} _pkg ) + LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir) + LIST(GET _PREREQ_COMPONENTS ${_p} _pkg_compo) + MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...") + IF(NOT _pkg_compo) + FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE PATHS "${_pkg_dir}" NO_DEFAULT_PATH) - ENDIF() -ENDFOREACH() + ELSE() + STRING(REPLACE "," ";" _compo_lst "${_pkg_compo}") + MESSAGE(STATUS "===> (components: ${_pkg_compo})") + FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE + COMPONENTS ${_compo_lst} + PATHS "${_pkg_dir}" + NO_DEFAULT_PATH) + ENDIF() + ENDFOREACH() +ENDIF() # Installation directories SET(SALOME_INSTALL_BINS "@SALOME_INSTALL_BINS@")