diff --git a/CMakeLists.txt b/CMakeLists.txt index 68df2dd..45c17bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -208,11 +208,6 @@ 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 @@ -254,8 +249,12 @@ IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) 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) + INCLUDE(Join) + + JOIN_QUOTED("${SDL2PP_EXTRA_LIBRARIES}" SDL2PP_EXTRA_LIBRARIES_STR) + JOIN_QUOTED("${SDL2_ALL_LIBRARIES}" SDL2_ALL_LIBRARIES_STR) + JOIN_QUOTED("${SDL2_ALL_INCLUDE_DIRS}" SDL2_ALL_INCLUDE_DIRS_STR) + JOIN_SIMPLE("${SDL2_ALL_PKGCONFIG_MODULES}" SDL2_ALL_PKGCONFIG_MODULES_STR) CONFIGURE_FILE( sdl2pp.pc.in diff --git a/FindSDL2PP.cmake.in b/FindSDL2PP.cmake.in index 87f9786..344d2b2 100644 --- a/FindSDL2PP.cmake.in +++ b/FindSDL2PP.cmake.in @@ -23,6 +23,6 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2PP ) IF(SDL2PP_FOUND) - SET(SDL2PP_INCLUDE_DIRS ${SDL2PP_INCLUDE_DIR} @SDL2_ALL_INCLUDE_DIRS@) - SET(SDL2PP_LIBRARIES @SDL2PP_EXTRA_LIBRARIES@ ${SDL2PP_LIBRARY} @SDL2_ALL_LIBRARIES@) + SET(SDL2PP_INCLUDE_DIRS ${SDL2PP_INCLUDE_DIR} @SDL2_ALL_INCLUDE_DIRS_STR@) + SET(SDL2PP_LIBRARIES @SDL2PP_EXTRA_LIBRARIES_STR@ ${SDL2PP_LIBRARY} @SDL2_ALL_LIBRARIES_STR@) ENDIF(SDL2PP_FOUND) diff --git a/cmake/Join.cmake b/cmake/Join.cmake new file mode 100644 index 0000000..a809557 --- /dev/null +++ b/cmake/Join.cmake @@ -0,0 +1,23 @@ +FUNCTION(JOIN_SIMPLE VALUES OUTPUT) + FOREACH(_VAL ${VALUES}) + IF(DEFINED _TMP) + SET(_TMP "${_TMP} ${_VAL}") + ELSE(DEFINED _TMP) + SET(_TMP "${_VAL}") + ENDIF(DEFINED _TMP) + ENDFOREACH(_VAL) + SET(${OUTPUT} "${_TMP}" PARENT_SCOPE) +ENDFUNCTION() + +FUNCTION(JOIN_QUOTED VALUES OUTPUT) + FOREACH(_VAL ${VALUES}) + STRING(REPLACE "\\" "\\\\" _VAL "${_VAL}") + STRING(REPLACE "\"" "\\\"" _VAL "${_VAL}") + IF(DEFINED _TMP) + SET(_TMP "${_TMP} \"${_VAL}\"") + ELSE(DEFINED _TMP) + SET(_TMP "\"${_VAL}\"") + ENDIF(DEFINED _TMP) + ENDFOREACH(_VAL) + SET(${OUTPUT} "${_TMP}" PARENT_SCOPE) +ENDFUNCTION()