From c0467a725eaf545bf4c61bf2a2f5cd9c3fac3cfd Mon Sep 17 00:00:00 2001 From: drausch <dominik.rausch@rwth-aachen.de> Date: Thu, 29 Mar 2012 12:15:41 +0000 Subject: [PATCH] UPD: when finding a package over the reference in VistaCMakeCommon/share, the PackageName_DIR now shows the target directory, not the directory in VistaCMakeCommon/share git-svn-id: https://svn.rwth-aachen.de/repos/vrgroup-svn/projects/VistaCMakeCommon/trunk@29746 33c38b33-09d2-4561-8d4d-1bfa2f58f885 --- FindVOpenSceneGraph.cmake | 1 - PackageConfigReference.cmake_proto | 3 ++- VistaCommon.cmake | 14 +++++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/FindVOpenSceneGraph.cmake b/FindVOpenSceneGraph.cmake index 3d9a97f..8e28b7e 100644 --- a/FindVOpenSceneGraph.cmake +++ b/FindVOpenSceneGraph.cmake @@ -27,7 +27,6 @@ include( VistaFindUtils ) if( OPENSCENEGRAPH_LIBRARY_DIRS ) list( REMOVE_DUPLICATES OPENSCENEGRAPH_LIBRARY_DIRS ) endif() - message( "OPENSCENEGRAPH_LIBRARY_DIRS = ${OPENSCENEGRAPH_LIBRARY_DIRS}" ) #endif( NOT VOPENSCENEGRAPH_FOUND ) diff --git a/PackageConfigReference.cmake_proto b/PackageConfigReference.cmake_proto index 1b0474d..efa537e 100644 --- a/PackageConfigReference.cmake_proto +++ b/PackageConfigReference.cmake_proto @@ -3,7 +3,8 @@ set( @_PACKAGE_NAME_UPPER@_REFERENCED_FILE "@_REFERENCED_FILE@" ) if( EXISTS "${@_PACKAGE_NAME_UPPER@_REFERENCED_FILE}" ) if( NOT PACKAGE_REFERENCE_EXISTS_TEST ) # we let the variable XYZ_DIR to the actual config file - set( @_PACKAGE_NAME@_DIR ${@_PACKAGE_NAME_UPPER@_REFERENCED_FILE} ) + get_filename_component( @_PACKAGE_NAME@_DIR "${@_PACKAGE_NAME_UPPER@_REFERENCED_FILE}" PATH ) + set( @_PACKAGE_NAME@_ACTUAL_DIR "${@_PACKAGE_NAME@_DIR}" ) include( ${@_PACKAGE_NAME_UPPER@_REFERENCED_FILE} ) endif( NOT PACKAGE_REFERENCE_EXISTS_TEST ) else( EXISTS "${@_PACKAGE_NAME_UPPER@_REFERENCED_FILE}" ) diff --git a/VistaCommon.cmake b/VistaCommon.cmake index 9579e04..8818202 100644 --- a/VistaCommon.cmake +++ b/VistaCommon.cmake @@ -210,7 +210,7 @@ function( local_use_existing_config_libs _NAME _ROOT_DIR _CONFIG_FILE _LIBRARY_D string( TOUPPER ${_NAME} _NAME_UPPER ) if( EXISTS "${_CONFIG_FILE}" ) include( ${_CONFIG_FILE} ) - get_filename_component( ${_NAME_UPPER}_ROOT_DIR ${${_NAME_UPPER}_ROOT_DIR} REALPATH ) + get_filename_component( ${_NAME_UPPER}_ROOT_DIR "${${_NAME_UPPER}_ROOT_DIR}" REALPATH ) if( "${${_NAME_UPPER}_ROOT_DIR}" STREQUAL "${_ROOT_DIR}" ) if( ${_NAME_UPPER}_LIBRARY_DIRS ) list( APPEND ${_LIBRARY_DIR_LIST} "${${_NAME_UPPER}_LIBRARY_DIRS}" ) @@ -543,7 +543,7 @@ macro( vista_find_package _PACKAGE_NAME ) if( NOT ${_PACKAGE_NAME_UPPER}_FOUND AND ${_PACKAGE_NAME}_FOUND ) set( ${_PACKAGE_NAME_UPPER}_FOUND ${${_PACKAGE_NAME}_FOUND} ) endif() - else( _FIND_VMODULE_EXISTS ) + else() if( NOT ${PACKAGE_NAME_UPPER}_ADDITIONAL_CONFIG_DIRS ) # we look for additional directories to search for the config files # we also search for CoreLibs directories manually @@ -568,9 +568,17 @@ macro( vista_find_package _PACKAGE_NAME ) endif( ${PACKAGE_NAME_UPPER}_ADDITIONAL_CONFIG_DIRS ) endif( NOT ${PACKAGE_NAME_UPPER}_ADDITIONAL_CONFIG_DIRS ) + set( ${_PACKAGE_NAME}_ACTUAL_DIR ) + find_package( ${_PACKAGE_NAME} ${_PACKAGE_VERSION} ${_FIND_PACKAGE_ARGS} PATHS ${${PACKAGE_NAME_UPPER}_ADDITIONAL_CONFIG_DIRS} ${VISTA_PACKAGE_SEARCH_PATHS} ) - endif( _FIND_VMODULE_EXISTS ) + + # in case we dound a reference file (e.g. in VistaCMakeCommon/share), the Package_DIR would point + # to the reference. Instead, we want it to point to the actual file directory + if( ${_PACKAGE_NAME}_ACTUAL_DIR ) + set( ${_PACKAGE_NAME}_DIR "${${_PACKAGE_NAME}_ACTUAL_DIR}" CACHE PATH "The directory containing a CMake configuration file for $_PACKAGE_NAME}" FORCE ) + endif() + endif() endif( _DO_FIND ) -- GitLab