Modernize CMake: remove duplicate loop/if args

This commit is contained in:
Dmitry Marakasov 2022-04-27 21:12:59 +03:00
parent 051e2e24fa
commit 34329a72ef
3 changed files with 33 additions and 33 deletions

View File

@ -17,9 +17,9 @@ 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()
# 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()
# depends # depends
find_package(SDL2 REQUIRED) find_package(SDL2 REQUIRED)
@ -33,39 +33,39 @@ 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()
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()
message(STATUS "SDL2_image support disabled") message(STATUS "SDL2_image support disabled")
endif(SDL2PP_WITH_IMAGE) endif()
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()
message(STATUS "SDL2_ttf support disabled") message(STATUS "SDL2_ttf support disabled")
endif(SDL2PP_WITH_TTF) endif()
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()
message(STATUS "SDL2_mixer support disabled") message(STATUS "SDL2_mixer support disabled")
endif(SDL2PP_WITH_MIXER) endif()
# 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()
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")
@ -79,7 +79,7 @@ else(MSVC)
# 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()
list(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS) list(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS)
@ -159,7 +159,7 @@ if(SDL2PP_WITH_TTF)
SDL2pp/SDLTTF.hh SDL2pp/SDLTTF.hh
SDL2pp/Font.hh SDL2pp/Font.hh
) )
endif(SDL2PP_WITH_TTF) endif()
if(SDL2PP_WITH_IMAGE) if(SDL2PP_WITH_IMAGE)
set(LIBRARY_SOURCES set(LIBRARY_SOURCES
@ -170,7 +170,7 @@ if(SDL2PP_WITH_IMAGE)
${LIBRARY_HEADERS} ${LIBRARY_HEADERS}
SDL2pp/SDLImage.hh SDL2pp/SDLImage.hh
) )
endif(SDL2PP_WITH_IMAGE) endif()
if(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
set(LIBRARY_SOURCES set(LIBRARY_SOURCES
@ -187,7 +187,7 @@ if(SDL2PP_WITH_MIXER)
SDL2pp/Music.hh SDL2pp/Music.hh
SDL2pp/SDLMixer.hh SDL2pp/SDLMixer.hh
) )
endif(SDL2PP_WITH_MIXER) endif()
# targets # targets
include(GenerateExportHeader) include(GenerateExportHeader)
@ -202,11 +202,11 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# 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()
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()
generate_export_header(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh) generate_export_header(SDL2pp EXPORT_FILE_NAME SDL2pp/Export.hh)
@ -215,12 +215,12 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# 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()
if(SDL2PP_WITH_TESTS) if(SDL2PP_WITH_TESTS)
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)
endif(SDL2PP_WITH_TESTS) endif()
# doxygen # doxygen
find_package(Doxygen) find_package(Doxygen)
@ -231,14 +231,14 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
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()
# 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()
include(Join) include(Join)
@ -275,7 +275,7 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
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()
# 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)
@ -285,4 +285,4 @@ else(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
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()

View File

@ -13,7 +13,7 @@ if(SDL2PP_WITH_IMAGE)
image image
fill fill
) )
endif(SDL2PP_WITH_IMAGE) endif()
if(SDL2PP_WITH_MIXER) if(SDL2PP_WITH_MIXER)
set(EXAMPLES ${EXAMPLES} set(EXAMPLES ${EXAMPLES}
@ -22,15 +22,15 @@ if(SDL2PP_WITH_MIXER)
mixer_music_sine mixer_music_sine
mixer_effects mixer_effects
) )
endif(SDL2PP_WITH_MIXER) endif()
if(SDL2PP_WITH_TTF) if(SDL2PP_WITH_TTF)
set(EXAMPLES ${EXAMPLES} set(EXAMPLES ${EXAMPLES}
ttf ttf
) )
endif(SDL2PP_WITH_TTF) endif()
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()

View File

@ -21,19 +21,19 @@ if(SDL2PP_WITH_MIXER)
set(LIVE_TESTS ${LIVE_TESTS} set(LIVE_TESTS ${LIVE_TESTS}
live_mixer live_mixer
) )
endif(SDL2PP_WITH_MIXER) endif()
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()
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()
add_definitions(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata") add_definitions(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata")
@ -45,18 +45,18 @@ foreach(HEADER ${LIBRARY_HEADERS})
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()
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()
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()
endforeach(TEST ${TESTS}) endforeach()