Improve joined set handling

This commit is contained in:
Dmitry Marakasov 2016-01-23 13:58:56 +03:00
parent 856dce3c67
commit 0643647657
3 changed files with 31 additions and 9 deletions

View File

@ -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

View File

@ -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)

23
cmake/Join.cmake Normal file
View File

@ -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()