mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-08-04 03:15:59 -04:00
Modernize CMake: lowercase directives
This commit is contained in:
parent
8b1f87acbe
commit
051e2e24fa
272
CMakeLists.txt
272
CMakeLists.txt
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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})
|
||||||
|
@ -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})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user