diff --git a/CMakeLists.txt b/CMakeLists.txt index 146dafa..68df2dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,14 +35,14 @@ SET(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY}) IF(MINGW) FIND_LIBRARY(MINGW32_LIBRARY NAMES mingw32) - SET(SDL2PP_EXTRA_LIBRARIES "${SDL2PP_EXTRA_LIBRARIES} ${MINGW32_LIBRARY}") + SET(SDL2PP_EXTRA_LIBRARIES ${MINGW32_LIBRARY} ${SDL2PP_EXTRA_LIBRARIES}) ENDIF(MINGW) IF(SDL2PP_WITH_IMAGE) FIND_PACKAGE(SDL2_image REQUIRED) SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIR}) SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_IMAGE_LIBRARY}) - SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_image") + SET(SDL2_ALL_PKGCONFIG_MODULES ${SDL2_ALL_PKGCONFIG_MODULES} SDL2_image) ELSE(SDL2PP_WITH_IMAGE) MESSAGE(STATUS "SDL2_image support disabled") ENDIF(SDL2PP_WITH_IMAGE) @@ -51,7 +51,7 @@ IF(SDL2PP_WITH_TTF) FIND_PACKAGE(SDL2_ttf REQUIRED) SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIR}) SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_TTF_LIBRARY}) - SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_ttf") + SET(SDL2_ALL_PKGCONFIG_MODULES ${SDL2_ALL_PKGCONFIG_MODULES} SDL2_ttf) ELSE(SDL2PP_WITH_TTF) MESSAGE(STATUS "SDL2_ttf support disabled") ENDIF(SDL2PP_WITH_TTF) @@ -60,7 +60,7 @@ IF(SDL2PP_WITH_MIXER) FIND_PACKAGE(SDL2_mixer REQUIRED) SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIR}) SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_MIXER_LIBRARY}) - SET(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_mixer") + SET(SDL2_ALL_PKGCONFIG_MODULES ${SDL2_ALL_PKGCONFIG_MODULES} SDL2_mixer) ELSE(SDL2PP_WITH_MIXER) MESSAGE(STATUS "SDL2_mixer support disabled") ENDIF(SDL2PP_WITH_MIXER) @@ -208,6 +208,11 @@ IF(SDL2PP_WITH_MIXER) ) ENDIF(SDL2PP_WITH_MIXER) +FUNCTION(JOIN VALUES OUTPUT) + STRING(REPLACE ";" " " _TMP "${VALUES}") + SET(${OUTPUT} "${_TMP}" PARENT_SCOPE) +ENDFUNCTION(JOIN) + # targets IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # library @@ -242,20 +247,22 @@ IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) ) ENDIF(DOXYGEN_FOUND) - # pkgconfig + # pkgconfig and cmake modules + SET(CMAKEMODDIR share/cmake/Modules CACHE STRING "directory where to install cmake module") SET(PKGCONFIGDIR lib/pkgconfig CACHE STRING "directory where to install pkg-config files") IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly") SET(PKGCONFIGDIR libdata/pkgconfig) ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly") + JOIN("${SDL2PP_EXTRA_LIBRARIES}" SDL2PP_EXTRA_LIBRARIES_STR) + JOIN("${SDL2_ALL_PKGCONFIG_MODULES}" SDL2_ALL_PKGCONFIG_MODULES_STR) + CONFIGURE_FILE( sdl2pp.pc.in sdl2pp.pc @ONLY ) - # cmake file - SET(CMAKEMODDIR share/cmake/Modules CACHE STRING "directory where to install cmake module") CONFIGURE_FILE( FindSDL2PP.cmake.in FindSDL2PP.cmake diff --git a/FindSDL2PP.cmake.in b/FindSDL2PP.cmake.in index 8baa353..87f9786 100644 --- a/FindSDL2PP.cmake.in +++ b/FindSDL2PP.cmake.in @@ -11,9 +11,9 @@ IF(SDL2PP_INCLUDE_DIR AND SDL2PP_LIBRARY) SET(SDL2PP_FIND_QUIETLY TRUE) ENDIF(SDL2PP_INCLUDE_DIR AND SDL2PP_LIBRARY) -FIND_PATH(SDL2PP_INCLUDE_DIR SDL2pp/SDL2pp.hh HINTS @CMAKE_INSTALL_PREFIX@/include) +FIND_PATH(SDL2PP_INCLUDE_DIR SDL2pp/SDL2pp.hh HINTS "@CMAKE_INSTALL_PREFIX@/include") -FIND_LIBRARY(SDL2PP_LIBRARY NAMES SDL2pp HINTS @CMAKE_INSTALL_PREFIX@/lib) +FIND_LIBRARY(SDL2PP_LIBRARY NAMES SDL2pp HINTS "@CMAKE_INSTALL_PREFIX@/lib") MARK_AS_ADVANCED(SDL2PP_INCLUDE_DIR SDL2PP_LIBRARY) diff --git a/sdl2pp.pc.in b/sdl2pp.pc.in index 02e2e20..a00040c 100644 --- a/sdl2pp.pc.in +++ b/sdl2pp.pc.in @@ -6,7 +6,7 @@ includedir=${prefix}/include Name: sdl2pp Description: C++11 bindings/wrappers for SDL2 Version: @SDL2PP_VERSION@ -Requires: @SDL2_ALL_PKGCONFIG_MODULES@ +Requires: @SDL2_ALL_PKGCONFIG_MODULES_STR@ Conflicts: -Libs: @SDL2PP_EXTRA_LIBRARIES@ -L${libdir} -lSDL2pp +Libs: @SDL2PP_EXTRA_LIBRARIES_STR@ -L${libdir} -lSDL2pp Cflags: -I${includedir}