diff --git a/CMakeLists.txt b/CMakeLists.txt index 605147a..57bbe39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,110 +1,110 @@ -PROJECT(libSDL2pp) +project(libSDL2pp) # meta -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +cmake_minimum_required(VERSION 2.8) -SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) -SET(SDL2PP_MAJOR_VERSION 0) -SET(SDL2PP_MINOR_VERSION 16) -SET(SDL2PP_PATCH_VERSION 2) +set(SDL2PP_MAJOR_VERSION 0) +set(SDL2PP_MINOR_VERSION 16) +set(SDL2PP_PATCH_VERSION 2) -SET(SDL2PP_VERSION "${SDL2PP_MAJOR_VERSION}.${SDL2PP_MINOR_VERSION}.${SDL2PP_PATCH_VERSION}") +set(SDL2PP_VERSION "${SDL2PP_MAJOR_VERSION}.${SDL2PP_MINOR_VERSION}.${SDL2PP_PATCH_VERSION}") -SET(SDL2PP_CXXSTD "c++11" CACHE STRING "Used c++ standard") +set(SDL2PP_CXXSTD "c++11" CACHE STRING "Used c++ standard") -IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON) - OPTION(SDL2PP_WITH_TTF "Enable SDL2_ttf support" ON) - OPTION(SDL2PP_WITH_MIXER "Enable SDL2_mixer support" ON) -ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + option(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON) + option(SDL2PP_WITH_TTF "Enable SDL2_ttf support" ON) + option(SDL2PP_WITH_MIXER "Enable SDL2_mixer support" ON) +else(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # please set SDL2PP_WITH_IMAGE, SDL2PP_WITH_TTF, SDL2PP_WITH_MIXER in parent project as needed -ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) +endif(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # depends -FIND_PACKAGE(SDL2 REQUIRED) -SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) -SET(SDL2_ALL_LIBRARIES ${SDL2_LIBRARY}) -SET(SDL2_ALL_PKGCONFIG_MODULES sdl2) -SET(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY}) -SET(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES ${SDL2MAIN_LIBRARY}) +find_package(SDL2 REQUIRED) +set(SDL2_ALL_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) +set(SDL2_ALL_LIBRARIES ${SDL2_LIBRARY}) +set(SDL2_ALL_PKGCONFIG_MODULES sdl2) +set(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY}) +set(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES ${SDL2MAIN_LIBRARY}) -IF(MINGW) - SET(MINGW32_LIBRARY "mingw32" CACHE STRING "mingw32 library") - SET(SDL2PP_EXTRA_LIBRARIES ${MINGW32_LIBRARY} ${SDL2PP_EXTRA_LIBRARIES}) - SET(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES "-l${MINGW32_LIBRARY} ${SDL2PP_EXTRA_PKGCONFIG_LIBRARIES}") -ENDIF(MINGW) +if(MINGW) + set(MINGW32_LIBRARY "mingw32" CACHE STRING "mingw32 library") + set(SDL2PP_EXTRA_LIBRARIES ${MINGW32_LIBRARY} ${SDL2PP_EXTRA_LIBRARIES}) + set(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES "-l${MINGW32_LIBRARY} ${SDL2PP_EXTRA_PKGCONFIG_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") -ELSE(SDL2PP_WITH_IMAGE) - MESSAGE(STATUS "SDL2_image support disabled") -ENDIF(SDL2PP_WITH_IMAGE) +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") +else(SDL2PP_WITH_IMAGE) + message(STATUS "SDL2_image support disabled") +endif(SDL2PP_WITH_IMAGE) -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") -ELSE(SDL2PP_WITH_TTF) - MESSAGE(STATUS "SDL2_ttf support disabled") -ENDIF(SDL2PP_WITH_TTF) +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") +else(SDL2PP_WITH_TTF) + message(STATUS "SDL2_ttf support disabled") +endif(SDL2PP_WITH_TTF) -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") -ELSE(SDL2PP_WITH_MIXER) - MESSAGE(STATUS "SDL2_mixer support disabled") -ENDIF(SDL2PP_WITH_MIXER) +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") +else(SDL2PP_WITH_MIXER) + message(STATUS "SDL2_mixer support disabled") +endif(SDL2PP_WITH_MIXER) # compiler flags & definitions -IF(MSVC) - SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} /W3") -ELSE(MSVC) - SET(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage") - SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG} --coverage") - SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} --coverage") +if(MSVC) + set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} /W3") +else(MSVC) + set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage") + set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG} --coverage") + set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} --coverage") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD}") - SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wall -Wextra -pedantic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD}") + set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wall -Wextra -pedantic") - IF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wmissing-prototypes -Wtautological-compare -Wshorten-64-to-32") + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wmissing-prototypes -Wtautological-compare -Wshorten-64-to-32") # For adventurous - #SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Weverything -Wno-c++98-compat -Wno-padded") - ENDIF() -ENDIF(MSVC) + #set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Weverything -Wno-c++98-compat -Wno-padded") + endif() +endif(MSVC) -LIST(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS) +list(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS) -INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}) -INCLUDE_DIRECTORIES(SYSTEM ${SDL2_ALL_INCLUDE_DIRS}) +include_directories(BEFORE ${PROJECT_SOURCE_DIR}) +include_directories(SYSTEM ${SDL2_ALL_INCLUDE_DIRS}) -INCLUDE(CheckCompile) -CHECK_COMPILE( +include(CheckCompile) +check_compile( SDL2PP_WITH_EXPERIMENTAL_OPTIONAL "#include \nint main() { std::experimental::optional o; return !o; }" "experimental/optional header" ) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}") # config.h -CONFIGURE_FILE( +configure_file( SDL2pp/Config.hh.in SDL2pp/Config.hh ) -INCLUDE_DIRECTORIES(BEFORE ${PROJECT_BINARY_DIR}) +include_directories(BEFORE ${PROJECT_BINARY_DIR}) # sources -SET(LIBRARY_SOURCES +set(LIBRARY_SOURCES SDL2pp/AudioDevice.cc SDL2pp/AudioLock.cc SDL2pp/AudioSpec.cc @@ -123,7 +123,7 @@ SET(LIBRARY_SOURCES SDL2pp/Window.cc ) -SET(LIBRARY_HEADERS +set(LIBRARY_HEADERS SDL2pp/AudioDevice.hh SDL2pp/AudioSpec.hh SDL2pp/Color.hh @@ -143,146 +143,146 @@ SET(LIBRARY_HEADERS SDL2pp/Window.hh ) -SET(LIBRARY_EXTERNAL_HEADERS +set(LIBRARY_EXTERNAL_HEADERS SDL2pp/external/libcpp_optional.hh ) # optional sources -IF(SDL2PP_WITH_TTF) - SET(LIBRARY_SOURCES +if(SDL2PP_WITH_TTF) + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} SDL2pp/SDLTTF.cc SDL2pp/Font.cc ) - SET(LIBRARY_HEADERS + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} SDL2pp/SDLTTF.hh SDL2pp/Font.hh ) -ENDIF(SDL2PP_WITH_TTF) +endif(SDL2PP_WITH_TTF) -IF(SDL2PP_WITH_IMAGE) - SET(LIBRARY_SOURCES +if(SDL2PP_WITH_IMAGE) + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} SDL2pp/SDLImage.cc ) - SET(LIBRARY_HEADERS + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} SDL2pp/SDLImage.hh ) -ENDIF(SDL2PP_WITH_IMAGE) +endif(SDL2PP_WITH_IMAGE) -IF(SDL2PP_WITH_MIXER) - SET(LIBRARY_SOURCES +if(SDL2PP_WITH_MIXER) + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} SDL2pp/Chunk.cc SDL2pp/Mixer.cc SDL2pp/Music.cc SDL2pp/SDLMixer.cc ) - SET(LIBRARY_HEADERS + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} SDL2pp/Chunk.hh SDL2pp/Mixer.hh SDL2pp/Music.hh SDL2pp/SDLMixer.hh ) -ENDIF(SDL2PP_WITH_MIXER) +endif(SDL2PP_WITH_MIXER) # targets -INCLUDE(GenerateExportHeader) +include(GenerateExportHeader) -IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # options - OPTION(SDL2PP_WITH_EXAMPLES "Build examples" ON) - OPTION(SDL2PP_WITH_TESTS "Build tests" ON) - OPTION(SDL2PP_ENABLE_LIVE_TESTS "Enable live tests (require X11 display and audio device)" ON) - OPTION(SDL2PP_STATIC "Build static library instead of shared one" OFF) + option(SDL2PP_WITH_EXAMPLES "Build examples" ON) + option(SDL2PP_WITH_TESTS "Build tests" ON) + option(SDL2PP_ENABLE_LIVE_TESTS "Enable live tests (require X11 display and audio device)" ON) + option(SDL2PP_STATIC "Build static library instead of shared one" OFF) # library - IF(SDL2PP_STATIC) - ADD_LIBRARY(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) - ELSE(SDL2PP_STATIC) - ADD_LIBRARY(SDL2pp SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) - TARGET_LINK_LIBRARIES(SDL2pp ${SDL2_ALL_LIBRARIES}) - SET_TARGET_PROPERTIES(SDL2pp PROPERTIES VERSION 8.3.0 SOVERSION 8) - ENDIF(SDL2PP_STATIC) + if(SDL2PP_STATIC) + add_library(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) + else(SDL2PP_STATIC) + add_library(SDL2pp SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) + target_link_libraries(SDL2pp ${SDL2_ALL_LIBRARIES}) + set_target_properties(SDL2pp PROPERTIES VERSION 8.3.0 SOVERSION 8) + endif(SDL2PP_STATIC) - GENERATE_EXPORT_HEADER(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) + generate_export_header(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) - SET(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES}) + set(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES}) # examples and tests - IF(SDL2PP_WITH_EXAMPLES) - ADD_SUBDIRECTORY(examples) - ENDIF(SDL2PP_WITH_EXAMPLES) + if(SDL2PP_WITH_EXAMPLES) + add_subdirectory(examples) + endif(SDL2PP_WITH_EXAMPLES) - IF(SDL2PP_WITH_TESTS) - ENABLE_TESTING() - ADD_SUBDIRECTORY(tests) - ENDIF(SDL2PP_WITH_TESTS) + if(SDL2PP_WITH_TESTS) + enable_testing() + add_subdirectory(tests) + endif(SDL2PP_WITH_TESTS) # doxygen - FIND_PACKAGE(Doxygen) - IF(DOXYGEN_FOUND) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - ADD_CUSTOM_TARGET(doxygen + find_package(Doxygen) + if(DOXYGEN_FOUND) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) + add_custom_target(doxygen ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) - ENDIF(DOXYGEN_FOUND) + endif(DOXYGEN_FOUND) # 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") + 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") - INCLUDE(Join) + 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_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) - CONFIGURE_FILE( + configure_file( sdl2pp.pc.in sdl2pp.pc @ONLY ) - CONFIGURE_FILE( + configure_file( FindSDL2PP.cmake.in FindSDL2PP.cmake @ONLY ) # install - INSTALL(FILES + install(FILES ${LIBRARY_HEADERS} ${PROJECT_BINARY_DIR}/SDL2pp/Config.hh ${PROJECT_BINARY_DIR}/SDL2pp/Export.hh DESTINATION include/SDL2pp ) - INSTALL(FILES ${LIBRARY_EXTERNAL_HEADERS} DESTINATION include/SDL2pp/external) - INSTALL(TARGETS SDL2pp + install(FILES ${LIBRARY_EXTERNAL_HEADERS} DESTINATION include/SDL2pp/external) + install(TARGETS SDL2pp RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) - INSTALL(FILES ${PROJECT_BINARY_DIR}/sdl2pp.pc DESTINATION ${PKGCONFIGDIR}) - INSTALL(FILES ${PROJECT_BINARY_DIR}/FindSDL2PP.cmake DESTINATION ${CMAKEMODDIR}) + install(FILES ${PROJECT_BINARY_DIR}/sdl2pp.pc DESTINATION ${PKGCONFIGDIR}) + install(FILES ${PROJECT_BINARY_DIR}/FindSDL2PP.cmake DESTINATION ${CMAKEMODDIR}) - MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} standalone build") -ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + message(STATUS "libSDL2pp ${SDL2PP_VERSION} standalone build") +else(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # library - ADD_LIBRARY(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) - GENERATE_EXPORT_HEADER(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) + add_library(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) + generate_export_header(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) # provide variables to parent - SET(SDL2PP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${SDL2_ALL_INCLUDE_DIRS} PARENT_SCOPE) - SET(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES} PARENT_SCOPE) + set(SDL2PP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${SDL2_ALL_INCLUDE_DIRS} PARENT_SCOPE) + set(SDL2PP_LIBRARIES ${SDL2PP_EXTRA_LIBRARIES} SDL2pp ${SDL2_ALL_LIBRARIES} PARENT_SCOPE) - MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} bundled build") -ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + message(STATUS "libSDL2pp ${SDL2PP_VERSION} bundled build") +endif(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 33fe8d3..17e683c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,6 @@ -ADD_DEFINITIONS(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") +add_definitions(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") -SET(EXAMPLES +set(EXAMPLES audio_sine audio_wav lines @@ -8,29 +8,29 @@ SET(EXAMPLES sprites ) -IF(SDL2PP_WITH_IMAGE) - SET(EXAMPLES ${EXAMPLES} +if(SDL2PP_WITH_IMAGE) + set(EXAMPLES ${EXAMPLES} image fill ) -ENDIF(SDL2PP_WITH_IMAGE) +endif(SDL2PP_WITH_IMAGE) -IF(SDL2PP_WITH_MIXER) - SET(EXAMPLES ${EXAMPLES} +if(SDL2PP_WITH_MIXER) + set(EXAMPLES ${EXAMPLES} mixer mixer_music mixer_music_sine mixer_effects ) -ENDIF(SDL2PP_WITH_MIXER) +endif(SDL2PP_WITH_MIXER) -IF(SDL2PP_WITH_TTF) - SET(EXAMPLES ${EXAMPLES} +if(SDL2PP_WITH_TTF) + set(EXAMPLES ${EXAMPLES} ttf ) -ENDIF(SDL2PP_WITH_TTF) +endif(SDL2PP_WITH_TTF) -FOREACH(EXAMPLE ${EXAMPLES}) - ADD_EXECUTABLE(${EXAMPLE} ${EXAMPLE}.cc) - TARGET_LINK_LIBRARIES(${EXAMPLE} ${SDL2PP_LIBRARIES}) -ENDFOREACH(EXAMPLE) +foreach(EXAMPLE ${EXAMPLES}) + add_executable(${EXAMPLE} ${EXAMPLE}.cc) + target_link_libraries(${EXAMPLE} ${SDL2PP_LIBRARIES}) +endforeach(EXAMPLE) diff --git a/exttests/cmake/CMakeLists.txt b/exttests/cmake/CMakeLists.txt index 5bba701..dea127d 100644 --- a/exttests/cmake/CMakeLists.txt +++ b/exttests/cmake/CMakeLists.txt @@ -1,10 +1,10 @@ -PROJECT(libSDL2pp) -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +project(libSDL2pp) +cmake_minimum_required(VERSION 2.8) -FIND_PACKAGE(SDL2PP REQUIRED) +find_package(SDL2PP REQUIRED) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -INCLUDE_DIRECTORIES(${SDL2PP_INCLUDE_DIRS}) -ADD_EXECUTABLE(cmake-ext-test ../../examples/sprites.cc) -TARGET_LINK_LIBRARIES(cmake-ext-test ${SDL2PP_LIBRARIES}) +include_directories(${SDL2PP_INCLUDE_DIRS}) +add_executable(cmake-ext-test ../../examples/sprites.cc) +target_link_libraries(cmake-ext-test ${SDL2PP_LIBRARIES}) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1c14256..64547b2 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # simple command-line tests -SET(CLI_TESTS +set(CLI_TESTS test_color test_color_constexpr test_error @@ -11,52 +11,52 @@ SET(CLI_TESTS ) # live tests require X11 display and/or audio output -SET(LIVE_TESTS +set(LIVE_TESTS live_audiodevice live_rendering live_window ) -IF(SDL2PP_WITH_MIXER) - SET(LIVE_TESTS ${LIVE_TESTS} +if(SDL2PP_WITH_MIXER) + set(LIVE_TESTS ${LIVE_TESTS} live_mixer ) -ENDIF(SDL2PP_WITH_MIXER) +endif(SDL2PP_WITH_MIXER) -IF(SDL2PP_WITH_IMAGE) - SET(CLI_TESTS ${CLI_TESTS} +if(SDL2PP_WITH_IMAGE) + set(CLI_TESTS ${CLI_TESTS} test_surface ) -ENDIF(SDL2PP_WITH_IMAGE) +endif(SDL2PP_WITH_IMAGE) -IF(SDL2PP_WITH_TTF) - SET(CLI_TESTS ${CLI_TESTS} +if(SDL2PP_WITH_TTF) + set(CLI_TESTS ${CLI_TESTS} test_font ) -ENDIF(SDL2PP_WITH_TTF) +endif(SDL2PP_WITH_TTF) -ADD_DEFINITIONS(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") +add_definitions(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") # header tests: these just include specific headers to check if # they are compilable (e.g., includes and forward declarations are # complete and do not require extra includes) -FOREACH(HEADER ${LIBRARY_HEADERS}) - STRING(REGEX REPLACE [^a-zA-Z0-9] _ HEADER_NORMALIZED ${HEADER}) - CONFIGURE_FILE(header_test.cc.in ${HEADER_NORMALIZED}_test.cc) - ADD_EXECUTABLE(${HEADER_NORMALIZED}_test ${HEADER_NORMALIZED}_test.cc) - TARGET_LINK_LIBRARIES(${HEADER_NORMALIZED}_test ${SDL2PP_LIBRARIES}) -ENDFOREACH(HEADER ${TESTS}) +foreach(HEADER ${LIBRARY_HEADERS}) + string(REGEX REPLACE [^a-zA-Z0-9] _ HEADER_NORMALIZED ${HEADER}) + configure_file(header_test.cc.in ${HEADER_NORMALIZED}_test.cc) + add_executable(${HEADER_NORMALIZED}_test ${HEADER_NORMALIZED}_test.cc) + target_link_libraries(${HEADER_NORMALIZED}_test ${SDL2PP_LIBRARIES}) +endforeach(HEADER ${TESTS}) -FOREACH(TEST ${CLI_TESTS}) - ADD_EXECUTABLE(${TEST} ${TEST}.cc) - TARGET_LINK_LIBRARIES(${TEST} ${SDL2PP_LIBRARIES}) - ADD_TEST(${TEST} ${TEST}) -ENDFOREACH(TEST ${TESTS}) +foreach(TEST ${CLI_TESTS}) + add_executable(${TEST} ${TEST}.cc) + target_link_libraries(${TEST} ${SDL2PP_LIBRARIES}) + add_test(${TEST} ${TEST}) +endforeach(TEST ${TESTS}) -FOREACH(TEST ${LIVE_TESTS}) - ADD_EXECUTABLE(${TEST} ${TEST}.cc) - TARGET_LINK_LIBRARIES(${TEST} ${SDL2PP_LIBRARIES}) - IF(SDL2PP_ENABLE_LIVE_TESTS) - ADD_TEST(${TEST} ${TEST}) - ENDIF(SDL2PP_ENABLE_LIVE_TESTS) -ENDFOREACH(TEST ${TESTS}) +foreach(TEST ${LIVE_TESTS}) + add_executable(${TEST} ${TEST}.cc) + target_link_libraries(${TEST} ${SDL2PP_LIBRARIES}) + if(SDL2PP_ENABLE_LIVE_TESTS) + add_test(${TEST} ${TEST}) + endif(SDL2PP_ENABLE_LIVE_TESTS) +endforeach(TEST ${TESTS})