diff --git a/cmake/FindPROJECT_NAME.cmake.in.in b/cmake/FindPROJECT_NAME.cmake.in.in index c3f6aa8b9d50c33d7c8135619b9bf74915576f59..1b439a2059a59590f3760074affbc6ab34359c14 100644 --- a/cmake/FindPROJECT_NAME.cmake.in.in +++ b/cmake/FindPROJECT_NAME.cmake.in.in @@ -7,6 +7,8 @@ # @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@_CXX_FLAGS : additional C++ compiler flags +# @PROJECT_NAME@_LINKER_FLAGS : additional linker flags # # @author Martin Killenberg, DESY # @@ -17,6 +19,8 @@ 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@_CXX_FLAGS @@PROJECT_NAME@_CXX_FLAGS@) +set(@PROJECT_NAME@_LINKER_FLAGS @@PROJECT_NAME@_LINKER_FLAGS@) # 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. diff --git a/cmake/create_cmake_config_files.cmake b/cmake/create_cmake_config_files.cmake index b1c6e63f5b0188d6cddfde8a665e40efe9ccad6b..95704384eb2c04e0e88b3575995e6ecad7238849 100644 --- a/cmake/create_cmake_config_files.cmake +++ b/cmake/create_cmake_config_files.cmake @@ -8,31 +8,36 @@ # ${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}_CPPFLAGS - list of C++ compiler flags when compiling against this project -# ${PROJECT_NAME}_LDFLAGS - list of linker flags when linking against this project +# ${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 # ####################################################################################################################### # create variables for standard makefiles -set(${PROJECT_NAME}_CPPFLAGS_MAKEFILE "${${PROJECT_NAME}_CPPFLAGS}") +set(${PROJECT_NAME}_CXX_FLAGS_MAKEFILE "${${PROJECT_NAME}_CXX_FLAGS}") string(REPLACE " " ";" LIST ${${PROJECT_NAME}_INCLUDE_DIRS}) foreach(INCLUDE_DIR ${LIST}) - set(${PROJECT_NAME}_CPPFLAGS_MAKEFILE "${${PROJECT_NAME}_CPPFLAGS_MAKEFILE} -I${INCLUDE_DIR}") + set(${PROJECT_NAME}_CXX_FLAGS_MAKEFILE "${${PROJECT_NAME}_CXX_FLAGS_MAKEFILE} -I${INCLUDE_DIR}") endforeach() -set(${PROJECT_NAME}_LDFLAGS_MAKEFILE "${${PROJECT_NAME}_LDFLAGS}") +set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS}") string(REPLACE " " ";" LIST ${${PROJECT_NAME}_LIBRARY_DIRS}) foreach(LIBRARY_DIR ${LIST}) - set(${PROJECT_NAME}_LDFLAGS_MAKEFILE "${${PROJECT_NAME}_LDFLAGS_MAKEFILE} -L${LIBRARY_DIR}") + set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} -L${LIBRARY_DIR}") endforeach() string(REPLACE " " ";" LIST ${${PROJECT_NAME}_LIBRARIES}) foreach(LIBRARY ${LIST}) - set(${PROJECT_NAME}_LDFLAGS_MAKEFILE "${${PROJECT_NAME}_LDFLAGS_MAKEFILE} -l${LIBRARY}") + set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} -l${LIBRARY}") endforeach() +# force the lists to be space separated (may be sometimes semicolon separated) +string(REPLACE ";" " " ${PROJECT_NAME}_INCLUDE_DIRS ${${PROJECT_NAME}_INCLUDE_DIRS}) +string(REPLACE ";" " " ${PROJECT_NAME}_LIBRARY_DIRS ${${PROJECT_NAME}_LIBRARY_DIRS}) +string(REPLACE ";" " " ${PROJECT_NAME}_LIBRARIES ${${PROJECT_NAME}_LIBRARIES}) + # we have nested @-statements, so we have to parse twice: # create the cmake Find package script