diff --git a/cmake/FindPROJECT_NAME.cmake.in.in b/cmake/FindPROJECT_NAME.cmake.in.in index 570821c8f63e1d9664b7b349ea01d99f66a7397f..0b67598c3ae7f69e88a61ce6581cce3649a2119e 100644 --- a/cmake/FindPROJECT_NAME.cmake.in.in +++ b/cmake/FindPROJECT_NAME.cmake.in.in @@ -6,26 +6,33 @@ # @PROJECT_NAME@_VERSION : the package version # @PROJECT_NAME@_INCLUDE_DIRS : path to the include directory # @PROJECT_NAME@_LIBRARY_DIRS : path to the library directory -# @PROJECT_NAME@_LIBRARIES : the provided libraries +# @PROJECT_NAME@_LIBRARIES : libraries the depending project needs to link against # @PROJECT_NAME@_CXX_FLAGS : additional C++ compiler flags # @PROJECT_NAME@_LINKER_FLAGS : additional linker flags # # @author Martin Killenberg, DESY # +# The library itself must be "searched" using the FIND_LIBRARY command in the known install directory, to set +# the variable properly +FIND_LIBRARY(@PROJECT_NAME@_LIBRARY @PROJECT_NAME@ + @CMAKE_INSTALL_PREFIX@/lib + NO_DEFAULT_PATH +) + # Since this file is already part of the installation to be found, the configuration can be hard-coded at # installation time set(@PROJECT_NAME@_VERSION "@@PROJECT_NAME@_SOVERSION@") set(@PROJECT_NAME@_INCLUDE_DIRS @@PROJECT_NAME@_INCLUDE_DIRS@) set(@PROJECT_NAME@_LIBRARY_DIRS @@PROJECT_NAME@_LIBRARY_DIRS@) -set(@PROJECT_NAME@_LIBRARIES @@PROJECT_NAME@_LIBRARIES@) +set(@PROJECT_NAME@_LIBRARIES ${@PROJECT_NAME@_LIBRARY} @@PROJECT_NAME@_LIBRARIES@) set(@PROJECT_NAME@_CXX_FLAGS "@@PROJECT_NAME@_CXX_FLAGS@") set(@PROJECT_NAME@_LINKER_FLAGS "@@PROJECT_NAME@_LINKER_FLAGS@") +set(@PROJECT_NAME@_PREFIX "@CMAKE_INSTALL_PREFIX@") # Use a macro provided by CMake to check if all the listed arguments are valid and set @PROJECT_NAME@_FOUND accordingly. # This is mainly important to check the version. set(@PROJECT_NAME@_FOUND 0) include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(@PROJECT_NAME@ REQUIRED_VARS @PROJECT_NAME@_LIBRARIES @PROJECT_NAME@_INCLUDE_DIRS - VERSION_VAR @PROJECT_NAME@_VERSION ) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(@PROJECT_NAME@ REQUIRED_VARS @PROJECT_NAME@_PREFIX VERSION_VAR @PROJECT_NAME@_VERSION ) diff --git a/cmake/create_cmake_config_files.cmake b/cmake/create_cmake_config_files.cmake index 1ee11a177bcee10ce18509c60b380d95a0dc8809..ab4176b165ae9ec6ce281209cae42b83e52c4b05 100644 --- a/cmake/create_cmake_config_files.cmake +++ b/cmake/create_cmake_config_files.cmake @@ -4,10 +4,11 @@ # Create the Find${PROJECT_NAME}.cmake cmake macro and the ${PROJECT_NAME}-config shell script and installs them. # # Expects the following input variables: -# ${PROJECT_NAME}_SOVERSION - version of the .so library file +# ${PROJECT_NAME}_SOVERSION - version of the .so library file (or just MAJOR.MINOR without the patch level) # ${PROJECT_NAME}_INCLUDE_DIRS - list include directories needed when compiling against this project # ${PROJECT_NAME}_LIBRARY_DIRS - list of library directories needed when linking against this project -# ${PROJECT_NAME}_LIBRARIES - list of libraries needed when linking against this project +# ${PROJECT_NAME}_LIBRARIES - list of additional libraries needed when linking against this project. The library +# provided by the project will be added automatically # ${PROJECT_NAME}_CXX_FLAGS - list of additional C++ compiler flags needed when compiling against this project # ${PROJECT_NAME}_LINKER_FLAGS - list of additional linker flags needed when linking against this project # ${PROJECT_NAME}_MEXFLAGS - (optional) mex compiler flags