Modernize CMake: lowercase directives

This commit is contained in:
Dmitry Marakasov 2022-04-27 21:10:57 +03:00
parent 8b1f87acbe
commit 051e2e24fa
4 changed files with 188 additions and 188 deletions

View File

@ -1,110 +1,110 @@
PROJECT(libSDL2pp) project(libSDL2pp)
# meta # 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_MAJOR_VERSION 0)
SET(SDL2PP_MINOR_VERSION 16) set(SDL2PP_MINOR_VERSION 16)
SET(SDL2PP_PATCH_VERSION 2) 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) if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON) option(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON)
OPTION(SDL2PP_WITH_TTF "Enable SDL2_ttf support" ON) option(SDL2PP_WITH_TTF "Enable SDL2_ttf support" ON)
OPTION(SDL2PP_WITH_MIXER "Enable SDL2_mixer support" ON) option(SDL2PP_WITH_MIXER "Enable SDL2_mixer support" ON)
ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) else(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# please set SDL2PP_WITH_IMAGE, SDL2PP_WITH_TTF, SDL2PP_WITH_MIXER in parent project as needed # 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 # depends
FIND_PACKAGE(SDL2 REQUIRED) 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}) set(SDL2PP_EXTRA_LIBRARIES ${SDL2MAIN_LIBRARY})
SET(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES ${SDL2MAIN_LIBRARY}) set(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES ${SDL2MAIN_LIBRARY})
IF(MINGW) if(MINGW)
SET(MINGW32_LIBRARY "mingw32" CACHE STRING "mingw32 library") set(MINGW32_LIBRARY "mingw32" CACHE STRING "mingw32 library")
SET(SDL2PP_EXTRA_LIBRARIES ${MINGW32_LIBRARY} ${SDL2PP_EXTRA_LIBRARIES}) set(SDL2PP_EXTRA_LIBRARIES ${MINGW32_LIBRARY} ${SDL2PP_EXTRA_LIBRARIES})
SET(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES "-l${MINGW32_LIBRARY} ${SDL2PP_EXTRA_PKGCONFIG_LIBRARIES}") set(SDL2PP_EXTRA_PKGCONFIG_LIBRARIES "-l${MINGW32_LIBRARY} ${SDL2PP_EXTRA_PKGCONFIG_LIBRARIES}")
ENDIF(MINGW) endif(MINGW)
IF(SDL2PP_WITH_IMAGE) if(SDL2PP_WITH_IMAGE)
FIND_PACKAGE(SDL2_image REQUIRED) find_package(SDL2_image REQUIRED)
SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIR}) 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_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) else(SDL2PP_WITH_IMAGE)
MESSAGE(STATUS "SDL2_image support disabled") message(STATUS "SDL2_image support disabled")
ENDIF(SDL2PP_WITH_IMAGE) endif(SDL2PP_WITH_IMAGE)
IF(SDL2PP_WITH_TTF) if(SDL2PP_WITH_TTF)
FIND_PACKAGE(SDL2_ttf REQUIRED) find_package(SDL2_ttf REQUIRED)
SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIR}) 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_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) else(SDL2PP_WITH_TTF)
MESSAGE(STATUS "SDL2_ttf support disabled") message(STATUS "SDL2_ttf support disabled")
ENDIF(SDL2PP_WITH_TTF) endif(SDL2PP_WITH_TTF)
IF(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
FIND_PACKAGE(SDL2_mixer REQUIRED) find_package(SDL2_mixer REQUIRED)
SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIR}) 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_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) else(SDL2PP_WITH_MIXER)
MESSAGE(STATUS "SDL2_mixer support disabled") message(STATUS "SDL2_mixer support disabled")
ENDIF(SDL2PP_WITH_MIXER) endif(SDL2PP_WITH_MIXER)
# compiler flags & definitions # compiler flags & definitions
IF(MSVC) if(MSVC)
SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} /W3") set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} /W3")
ELSE(MSVC) else(MSVC)
SET(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage") set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_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_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} --coverage")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD}")
SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wall -Wextra -pedantic") set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wall -Wextra -pedantic")
IF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wmissing-prototypes -Wtautological-compare -Wshorten-64-to-32") set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Wmissing-prototypes -Wtautological-compare -Wshorten-64-to-32")
# For adventurous # For adventurous
#SET(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Weverything -Wno-c++98-compat -Wno-padded") #set(SDL2PP_WARNINGS "${SDL2PP_WARNINGS} -Weverything -Wno-c++98-compat -Wno-padded")
ENDIF() endif()
ENDIF(MSVC) endif(MSVC)
LIST(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS) list(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS)
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}) include_directories(BEFORE ${PROJECT_SOURCE_DIR})
INCLUDE_DIRECTORIES(SYSTEM ${SDL2_ALL_INCLUDE_DIRS}) include_directories(SYSTEM ${SDL2_ALL_INCLUDE_DIRS})
INCLUDE(CheckCompile) include(CheckCompile)
CHECK_COMPILE( check_compile(
SDL2PP_WITH_EXPERIMENTAL_OPTIONAL SDL2PP_WITH_EXPERIMENTAL_OPTIONAL
"#include <experimental/optional>\nint main() { std::experimental::optional<int> o; return !o; }" "#include <experimental/optional>\nint main() { std::experimental::optional<int> o; return !o; }"
"experimental/optional header" "experimental/optional header"
) )
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}")
# config.h # config.h
CONFIGURE_FILE( configure_file(
SDL2pp/Config.hh.in SDL2pp/Config.hh.in
SDL2pp/Config.hh SDL2pp/Config.hh
) )
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_BINARY_DIR}) include_directories(BEFORE ${PROJECT_BINARY_DIR})
# sources # sources
SET(LIBRARY_SOURCES set(LIBRARY_SOURCES
SDL2pp/AudioDevice.cc SDL2pp/AudioDevice.cc
SDL2pp/AudioLock.cc SDL2pp/AudioLock.cc
SDL2pp/AudioSpec.cc SDL2pp/AudioSpec.cc
@ -123,7 +123,7 @@ SET(LIBRARY_SOURCES
SDL2pp/Window.cc SDL2pp/Window.cc
) )
SET(LIBRARY_HEADERS set(LIBRARY_HEADERS
SDL2pp/AudioDevice.hh SDL2pp/AudioDevice.hh
SDL2pp/AudioSpec.hh SDL2pp/AudioSpec.hh
SDL2pp/Color.hh SDL2pp/Color.hh
@ -143,146 +143,146 @@ SET(LIBRARY_HEADERS
SDL2pp/Window.hh SDL2pp/Window.hh
) )
SET(LIBRARY_EXTERNAL_HEADERS set(LIBRARY_EXTERNAL_HEADERS
SDL2pp/external/libcpp_optional.hh SDL2pp/external/libcpp_optional.hh
) )
# optional sources # optional sources
IF(SDL2PP_WITH_TTF) if(SDL2PP_WITH_TTF)
SET(LIBRARY_SOURCES set(LIBRARY_SOURCES
${LIBRARY_SOURCES} ${LIBRARY_SOURCES}
SDL2pp/SDLTTF.cc SDL2pp/SDLTTF.cc
SDL2pp/Font.cc SDL2pp/Font.cc
) )
SET(LIBRARY_HEADERS set(LIBRARY_HEADERS
${LIBRARY_HEADERS} ${LIBRARY_HEADERS}
SDL2pp/SDLTTF.hh SDL2pp/SDLTTF.hh
SDL2pp/Font.hh SDL2pp/Font.hh
) )
ENDIF(SDL2PP_WITH_TTF) endif(SDL2PP_WITH_TTF)
IF(SDL2PP_WITH_IMAGE) if(SDL2PP_WITH_IMAGE)
SET(LIBRARY_SOURCES set(LIBRARY_SOURCES
${LIBRARY_SOURCES} ${LIBRARY_SOURCES}
SDL2pp/SDLImage.cc SDL2pp/SDLImage.cc
) )
SET(LIBRARY_HEADERS set(LIBRARY_HEADERS
${LIBRARY_HEADERS} ${LIBRARY_HEADERS}
SDL2pp/SDLImage.hh SDL2pp/SDLImage.hh
) )
ENDIF(SDL2PP_WITH_IMAGE) endif(SDL2PP_WITH_IMAGE)
IF(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
SET(LIBRARY_SOURCES set(LIBRARY_SOURCES
${LIBRARY_SOURCES} ${LIBRARY_SOURCES}
SDL2pp/Chunk.cc SDL2pp/Chunk.cc
SDL2pp/Mixer.cc SDL2pp/Mixer.cc
SDL2pp/Music.cc SDL2pp/Music.cc
SDL2pp/SDLMixer.cc SDL2pp/SDLMixer.cc
) )
SET(LIBRARY_HEADERS set(LIBRARY_HEADERS
${LIBRARY_HEADERS} ${LIBRARY_HEADERS}
SDL2pp/Chunk.hh SDL2pp/Chunk.hh
SDL2pp/Mixer.hh SDL2pp/Mixer.hh
SDL2pp/Music.hh SDL2pp/Music.hh
SDL2pp/SDLMixer.hh SDL2pp/SDLMixer.hh
) )
ENDIF(SDL2PP_WITH_MIXER) endif(SDL2PP_WITH_MIXER)
# targets # targets
INCLUDE(GenerateExportHeader) include(GenerateExportHeader)
IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# options # options
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)
OPTION(SDL2PP_ENABLE_LIVE_TESTS "Enable live tests (require X11 display and audio device)" 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_STATIC "Build static library instead of shared one" OFF)
# library # library
IF(SDL2PP_STATIC) if(SDL2PP_STATIC)
ADD_LIBRARY(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) add_library(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
ELSE(SDL2PP_STATIC) else(SDL2PP_STATIC)
ADD_LIBRARY(SDL2pp SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) add_library(SDL2pp SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
TARGET_LINK_LIBRARIES(SDL2pp ${SDL2_ALL_LIBRARIES}) target_link_libraries(SDL2pp ${SDL2_ALL_LIBRARIES})
SET_TARGET_PROPERTIES(SDL2pp PROPERTIES VERSION 8.3.0 SOVERSION 8) set_target_properties(SDL2pp PROPERTIES VERSION 8.3.0 SOVERSION 8)
ENDIF(SDL2PP_STATIC) 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 # examples and tests
IF(SDL2PP_WITH_EXAMPLES) if(SDL2PP_WITH_EXAMPLES)
ADD_SUBDIRECTORY(examples) add_subdirectory(examples)
ENDIF(SDL2PP_WITH_EXAMPLES) endif(SDL2PP_WITH_EXAMPLES)
IF(SDL2PP_WITH_TESTS) if(SDL2PP_WITH_TESTS)
ENABLE_TESTING() enable_testing()
ADD_SUBDIRECTORY(tests) add_subdirectory(tests)
ENDIF(SDL2PP_WITH_TESTS) endif(SDL2PP_WITH_TESTS)
# doxygen # doxygen
FIND_PACKAGE(Doxygen) find_package(Doxygen)
IF(DOXYGEN_FOUND) if(DOXYGEN_FOUND)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
ADD_CUSTOM_TARGET(doxygen add_custom_target(doxygen
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM COMMENT "Generating API documentation with Doxygen" VERBATIM
) )
ENDIF(DOXYGEN_FOUND) endif(DOXYGEN_FOUND)
# pkgconfig and cmake modules # pkgconfig and cmake modules
SET(CMAKEMODDIR share/cmake/Modules CACHE STRING "directory where to install cmake module") 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") 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") if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")
SET(PKGCONFIGDIR libdata/pkgconfig) set(PKGCONFIGDIR libdata/pkgconfig)
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly") 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("${SDL2PP_EXTRA_LIBRARIES}" SDL2PP_EXTRA_LIBRARIES_STR)
JOIN_QUOTED("${SDL2_ALL_LIBRARIES}" SDL2_ALL_LIBRARIES_STR) join_quoted("${SDL2_ALL_LIBRARIES}" SDL2_ALL_LIBRARIES_STR)
JOIN_QUOTED("${SDL2_ALL_INCLUDE_DIRS}" SDL2_ALL_INCLUDE_DIRS_STR) join_quoted("${SDL2_ALL_INCLUDE_DIRS}" SDL2_ALL_INCLUDE_DIRS_STR)
CONFIGURE_FILE( configure_file(
sdl2pp.pc.in sdl2pp.pc.in
sdl2pp.pc sdl2pp.pc
@ONLY @ONLY
) )
CONFIGURE_FILE( configure_file(
FindSDL2PP.cmake.in FindSDL2PP.cmake.in
FindSDL2PP.cmake FindSDL2PP.cmake
@ONLY @ONLY
) )
# install # install
INSTALL(FILES install(FILES
${LIBRARY_HEADERS} ${LIBRARY_HEADERS}
${PROJECT_BINARY_DIR}/SDL2pp/Config.hh ${PROJECT_BINARY_DIR}/SDL2pp/Config.hh
${PROJECT_BINARY_DIR}/SDL2pp/Export.hh ${PROJECT_BINARY_DIR}/SDL2pp/Export.hh
DESTINATION include/SDL2pp DESTINATION include/SDL2pp
) )
INSTALL(FILES ${LIBRARY_EXTERNAL_HEADERS} DESTINATION include/SDL2pp/external) install(FILES ${LIBRARY_EXTERNAL_HEADERS} DESTINATION include/SDL2pp/external)
INSTALL(TARGETS SDL2pp install(TARGETS SDL2pp
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib
) )
INSTALL(FILES ${PROJECT_BINARY_DIR}/sdl2pp.pc DESTINATION ${PKGCONFIGDIR}) install(FILES ${PROJECT_BINARY_DIR}/sdl2pp.pc DESTINATION ${PKGCONFIGDIR})
INSTALL(FILES ${PROJECT_BINARY_DIR}/FindSDL2PP.cmake DESTINATION ${CMAKEMODDIR}) install(FILES ${PROJECT_BINARY_DIR}/FindSDL2PP.cmake DESTINATION ${CMAKEMODDIR})
MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} standalone build") message(STATUS "libSDL2pp ${SDL2PP_VERSION} standalone build")
ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) else(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# library # library
ADD_LIBRARY(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) add_library(SDL2pp STATIC ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
GENERATE_EXPORT_HEADER(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) generate_export_header(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh)
# 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_EXTRA_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

@ -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_sine
audio_wav audio_wav
lines lines
@ -8,29 +8,29 @@ SET(EXAMPLES
sprites sprites
) )
IF(SDL2PP_WITH_IMAGE) if(SDL2PP_WITH_IMAGE)
SET(EXAMPLES ${EXAMPLES} set(EXAMPLES ${EXAMPLES}
image image
fill fill
) )
ENDIF(SDL2PP_WITH_IMAGE) endif(SDL2PP_WITH_IMAGE)
IF(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
SET(EXAMPLES ${EXAMPLES} set(EXAMPLES ${EXAMPLES}
mixer mixer
mixer_music mixer_music
mixer_music_sine mixer_music_sine
mixer_effects mixer_effects
) )
ENDIF(SDL2PP_WITH_MIXER) endif(SDL2PP_WITH_MIXER)
IF(SDL2PP_WITH_TTF) if(SDL2PP_WITH_TTF)
SET(EXAMPLES ${EXAMPLES} set(EXAMPLES ${EXAMPLES}
ttf ttf
) )
ENDIF(SDL2PP_WITH_TTF) endif(SDL2PP_WITH_TTF)
FOREACH(EXAMPLE ${EXAMPLES}) foreach(EXAMPLE ${EXAMPLES})
ADD_EXECUTABLE(${EXAMPLE} ${EXAMPLE}.cc) add_executable(${EXAMPLE} ${EXAMPLE}.cc)
TARGET_LINK_LIBRARIES(${EXAMPLE} ${SDL2PP_LIBRARIES}) target_link_libraries(${EXAMPLE} ${SDL2PP_LIBRARIES})
ENDFOREACH(EXAMPLE) endforeach(EXAMPLE)

View File

@ -1,10 +1,10 @@
PROJECT(libSDL2pp) project(libSDL2pp)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 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}) include_directories(${SDL2PP_INCLUDE_DIRS})
ADD_EXECUTABLE(cmake-ext-test ../../examples/sprites.cc) add_executable(cmake-ext-test ../../examples/sprites.cc)
TARGET_LINK_LIBRARIES(cmake-ext-test ${SDL2PP_LIBRARIES}) target_link_libraries(cmake-ext-test ${SDL2PP_LIBRARIES})

View File

@ -1,5 +1,5 @@
# simple command-line tests # simple command-line tests
SET(CLI_TESTS set(CLI_TESTS
test_color test_color
test_color_constexpr test_color_constexpr
test_error test_error
@ -11,52 +11,52 @@ SET(CLI_TESTS
) )
# live tests require X11 display and/or audio output # live tests require X11 display and/or audio output
SET(LIVE_TESTS set(LIVE_TESTS
live_audiodevice live_audiodevice
live_rendering live_rendering
live_window live_window
) )
IF(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
SET(LIVE_TESTS ${LIVE_TESTS} set(LIVE_TESTS ${LIVE_TESTS}
live_mixer live_mixer
) )
ENDIF(SDL2PP_WITH_MIXER) endif(SDL2PP_WITH_MIXER)
IF(SDL2PP_WITH_IMAGE) if(SDL2PP_WITH_IMAGE)
SET(CLI_TESTS ${CLI_TESTS} set(CLI_TESTS ${CLI_TESTS}
test_surface test_surface
) )
ENDIF(SDL2PP_WITH_IMAGE) endif(SDL2PP_WITH_IMAGE)
IF(SDL2PP_WITH_TTF) if(SDL2PP_WITH_TTF)
SET(CLI_TESTS ${CLI_TESTS} set(CLI_TESTS ${CLI_TESTS}
test_font 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 # header tests: these just include specific headers to check if
# they are compilable (e.g., includes and forward declarations are # they are compilable (e.g., includes and forward declarations are
# complete and do not require extra includes) # complete and do not require extra includes)
FOREACH(HEADER ${LIBRARY_HEADERS}) 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_LIBRARIES}) 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_LIBRARIES}) 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_LIBRARIES}) 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)
ENDFOREACH(TEST ${TESTS}) endforeach(TEST ${TESTS})