diff --git a/FindVOpenSceneGraph.cmake b/FindVOpenSceneGraph.cmake index 3d9a97fa2be9b11b62e44fc7f001ab50fda4e9dc..8e28b7ee00fb7c9e54ff4879efa591666f7807a1 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 1b0474df114d6b4622f916101ddd6bc3acaef697..efa537eec73917dc08ad279fb8b6836801298e7e 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 9579e04d474448c210bd29d68d010d0344635fc3..88182027d83a46ac8b185ef950941fb3d1228f6a 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 )