Improve SDL2Main library handling

This commit is contained in:
Dmitry Marakasov 2016-01-21 20:56:58 +03:00
parent 40673641e3
commit 69bb914040
6 changed files with 22 additions and 21 deletions

View File

@ -31,6 +31,7 @@ FIND_PACKAGE(SDL2 REQUIRED)
SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
SET(SDL2_ALL_LIBRARIES ${SDL2_LIBRARY}) SET(SDL2_ALL_LIBRARIES ${SDL2_LIBRARY})
SET(SDL2_ALL_PKGCONFIG_MODULES sdl2) SET(SDL2_ALL_PKGCONFIG_MODULES sdl2)
SET(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY})
IF(SDL2PP_WITH_IMAGE) IF(SDL2PP_WITH_IMAGE)
FIND_PACKAGE(SDL2_image REQUIRED) FIND_PACKAGE(SDL2_image REQUIRED)
@ -209,6 +210,8 @@ IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
TARGET_LINK_LIBRARIES(SDL2pp ${SDL2_ALL_LIBRARIES}) TARGET_LINK_LIBRARIES(SDL2pp ${SDL2_ALL_LIBRARIES})
SET_TARGET_PROPERTIES(SDL2pp PROPERTIES VERSION 7.0.0 SOVERSION 7) SET_TARGET_PROPERTIES(SDL2pp PROPERTIES VERSION 7.0.0 SOVERSION 7)
SET(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES})
# examples and tests # examples and tests
OPTION(SDL2PP_WITH_EXAMPLES "Build examples" ON) OPTION(SDL2PP_WITH_EXAMPLES "Build examples" ON)
OPTION(SDL2PP_WITH_TESTS "Build tests" ON) OPTION(SDL2PP_WITH_TESTS "Build tests" ON)
@ -272,7 +275,7 @@ ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# provide variables to parent # provide variables to parent
SET(SDL2PP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${SDL2_ALL_INCLUDE_DIRS} PARENT_SCOPE) SET(SDL2PP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${SDL2_ALL_INCLUDE_DIRS} PARENT_SCOPE)
SET(SDL2PP_LIBRARIES SDL2pp ${SDL2_ALL_LIBRARIES} PARENT_SCOPE) SET(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES} PARENT_SCOPE)
MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} bundled build") MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} bundled build")
ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)

View File

@ -24,5 +24,5 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2PP
IF(SDL2PP_FOUND) IF(SDL2PP_FOUND)
SET(SDL2PP_INCLUDE_DIRS ${SDL2PP_INCLUDE_DIR} @SDL2_ALL_INCLUDE_DIRS@) SET(SDL2PP_INCLUDE_DIRS ${SDL2PP_INCLUDE_DIR} @SDL2_ALL_INCLUDE_DIRS@)
SET(SDL2PP_LIBRARIES ${SDL2PP_LIBRARY} @SDL2_ALL_LIBRARIES@) SET(SDL2PP_LIBRARIES @SDL2PP_EXTRA_LIBRARIES@ ${SDL2PP_LIBRARY} @SDL2_ALL_LIBRARIES@)
ENDIF(SDL2PP_FOUND) ENDIF(SDL2PP_FOUND)

View File

@ -11,10 +11,8 @@ FIND_PATH(SDL2_INCLUDE_DIR NAMES SDL2/SDL.h)
FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2) FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2)
FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2main) FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2main)
SET(SDL2_LIBRARY ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY})
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_INCLUDE_DIR SDL2_LIBRARY) FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_INCLUDE_DIR SDL2_LIBRARY)
MARK_AS_ADVANCED(SDL2_INCLUDE_DIR SDL2_LIBRARY) MARK_AS_ADVANCED(SDL2_INCLUDE_DIR SDL2_LIBRARY SDL2MAIN_LIBRARY)

View File

@ -1,43 +1,43 @@
ADD_DEFINITIONS(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") ADD_DEFINITIONS(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata")
ADD_EXECUTABLE(sprites sprites.cc) ADD_EXECUTABLE(sprites sprites.cc)
TARGET_LINK_LIBRARIES(sprites SDL2pp) TARGET_LINK_LIBRARIES(sprites ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(lines lines.cc) ADD_EXECUTABLE(lines lines.cc)
TARGET_LINK_LIBRARIES(lines SDL2pp) TARGET_LINK_LIBRARIES(lines ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(rendertarget rendertarget.cc) ADD_EXECUTABLE(rendertarget rendertarget.cc)
TARGET_LINK_LIBRARIES(rendertarget SDL2pp) TARGET_LINK_LIBRARIES(rendertarget ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(audio_sine audio_sine.cc) ADD_EXECUTABLE(audio_sine audio_sine.cc)
TARGET_LINK_LIBRARIES(audio_sine SDL2pp) TARGET_LINK_LIBRARIES(audio_sine ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(audio_wav audio_wav.cc) ADD_EXECUTABLE(audio_wav audio_wav.cc)
TARGET_LINK_LIBRARIES(audio_wav SDL2pp) TARGET_LINK_LIBRARIES(audio_wav ${SDL2PP_LIBRARIES})
IF(SDL2PP_WITH_IMAGE) IF(SDL2PP_WITH_IMAGE)
ADD_EXECUTABLE(image image.cc) ADD_EXECUTABLE(image image.cc)
TARGET_LINK_LIBRARIES(image SDL2pp) TARGET_LINK_LIBRARIES(image ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(fill fill.cc) ADD_EXECUTABLE(fill fill.cc)
TARGET_LINK_LIBRARIES(fill SDL2pp) TARGET_LINK_LIBRARIES(fill ${SDL2PP_LIBRARIES})
ENDIF(SDL2PP_WITH_IMAGE) ENDIF(SDL2PP_WITH_IMAGE)
IF(SDL2PP_WITH_TTF) IF(SDL2PP_WITH_TTF)
ADD_EXECUTABLE(ttf ttf.cc) ADD_EXECUTABLE(ttf ttf.cc)
TARGET_LINK_LIBRARIES(ttf SDL2pp) TARGET_LINK_LIBRARIES(ttf ${SDL2PP_LIBRARIES})
ENDIF(SDL2PP_WITH_TTF) ENDIF(SDL2PP_WITH_TTF)
IF(SDL2PP_WITH_MIXER) IF(SDL2PP_WITH_MIXER)
ADD_EXECUTABLE(mixer mixer.cc) ADD_EXECUTABLE(mixer mixer.cc)
TARGET_LINK_LIBRARIES(mixer SDL2pp) TARGET_LINK_LIBRARIES(mixer ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(mixer_music mixer_music.cc) ADD_EXECUTABLE(mixer_music mixer_music.cc)
TARGET_LINK_LIBRARIES(mixer_music SDL2pp) TARGET_LINK_LIBRARIES(mixer_music ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(mixer_music_sine mixer_music_sine.cc) ADD_EXECUTABLE(mixer_music_sine mixer_music_sine.cc)
TARGET_LINK_LIBRARIES(mixer_music_sine SDL2pp) TARGET_LINK_LIBRARIES(mixer_music_sine ${SDL2PP_LIBRARIES})
ADD_EXECUTABLE(mixer_effects mixer_effects.cc) ADD_EXECUTABLE(mixer_effects mixer_effects.cc)
TARGET_LINK_LIBRARIES(mixer_effects SDL2pp) TARGET_LINK_LIBRARIES(mixer_effects ${SDL2PP_LIBRARIES})
ENDIF(SDL2PP_WITH_MIXER) ENDIF(SDL2PP_WITH_MIXER)

View File

@ -8,5 +8,5 @@ Description: C++11 bindings/wrappers for SDL2
Version: @SDL2PP_VERSION@ Version: @SDL2PP_VERSION@
Requires: @SDL2_ALL_PKGCONFIG_MODULES@ Requires: @SDL2_ALL_PKGCONFIG_MODULES@
Conflicts: Conflicts:
Libs: -L${libdir} -lSDL2pp Libs: @SDL2PP_EXTRA_LIBRARIES@ -L${libdir} -lSDL2pp
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@ -29,18 +29,18 @@ FOREACH(HEADER ${LIBRARY_HEADERS})
STRING(REGEX REPLACE [^a-zA-Z0-9] _ HEADER_NORMALIZED ${HEADER}) STRING(REGEX REPLACE [^a-zA-Z0-9] _ HEADER_NORMALIZED ${HEADER})
CONFIGURE_FILE(header_test.cc.in ${HEADER_NORMALIZED}_test.cc) CONFIGURE_FILE(header_test.cc.in ${HEADER_NORMALIZED}_test.cc)
ADD_EXECUTABLE(${HEADER_NORMALIZED}_test ${HEADER_NORMALIZED}_test.cc) ADD_EXECUTABLE(${HEADER_NORMALIZED}_test ${HEADER_NORMALIZED}_test.cc)
TARGET_LINK_LIBRARIES(${HEADER_NORMALIZED}_test SDL2pp) TARGET_LINK_LIBRARIES(${HEADER_NORMALIZED}_test ${SDL2PP_LIBRARIES})
ENDFOREACH(HEADER ${TESTS}) ENDFOREACH(HEADER ${TESTS})
FOREACH(TEST ${CLI_TESTS}) FOREACH(TEST ${CLI_TESTS})
ADD_EXECUTABLE(${TEST} ${TEST}.cc) ADD_EXECUTABLE(${TEST} ${TEST}.cc)
TARGET_LINK_LIBRARIES(${TEST} SDL2pp) TARGET_LINK_LIBRARIES(${TEST} ${SDL2PP_LIBRARIES})
ADD_TEST(${TEST} ${TEST}) ADD_TEST(${TEST} ${TEST})
ENDFOREACH(TEST ${TESTS}) ENDFOREACH(TEST ${TESTS})
FOREACH(TEST ${LIVE_TESTS}) FOREACH(TEST ${LIVE_TESTS})
ADD_EXECUTABLE(${TEST} ${TEST}.cc) ADD_EXECUTABLE(${TEST} ${TEST}.cc)
TARGET_LINK_LIBRARIES(${TEST} SDL2pp) TARGET_LINK_LIBRARIES(${TEST} ${SDL2PP_LIBRARIES})
IF(SDL2PP_ENABLE_LIVE_TESTS) IF(SDL2PP_ENABLE_LIVE_TESTS)
ADD_TEST(${TEST} ${TEST}) ADD_TEST(${TEST} ${TEST})
ENDIF(SDL2PP_ENABLE_LIVE_TESTS) ENDIF(SDL2PP_ENABLE_LIVE_TESTS)