CMake build system updates (#1572)

* Enable the CMAKE_FIND_PACKAGE_PREFER_CONFIG option to find modules first in
  configuration mode.

* Rename SDL2 targets for compatibility with vendored configurations.

* Add vcpkg.json to support vcpkg in manifest mode.
This commit is contained in:
Roman Fomin 2023-01-26 20:59:31 +07:00 committed by GitHub
parent ac1f0c3219
commit 825f59bb89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 32 additions and 20 deletions

View file

@ -28,6 +28,9 @@ else()
"-Wredundant-decls")
endif()
option(CMAKE_FIND_PACKAGE_PREFER_CONFIG
"Lookup package config files before using find modules" On)
option(ENABLE_SDL2_NET "Enable SDL2_net" On)
option(ENABLE_SDL2_MIXER "Enable SDL2_mixer" On)

View file

@ -79,8 +79,8 @@ find_package_handle_standard_args(SDL2_mixer
if(SDL2_MIXER_FOUND)
# Imported target.
add_library(SDL2::mixer UNKNOWN IMPORTED)
set_target_properties(SDL2::mixer PROPERTIES
add_library(SDL2_mixer::SDL2_mixer UNKNOWN IMPORTED)
set_target_properties(SDL2_mixer::SDL2_mixer PROPERTIES
INTERFACE_COMPILE_OPTIONS "${PC_SDL2_MIXER_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES SDL2::SDL2

View file

@ -79,8 +79,8 @@ find_package_handle_standard_args(SDL2_net
if(SDL2_NET_FOUND)
# Imported target.
add_library(SDL2::net UNKNOWN IMPORTED)
set_target_properties(SDL2::net PROPERTIES
add_library(SDL2_net::SDL2_net UNKNOWN IMPORTED)
set_target_properties(SDL2_net::SDL2_net PROPERTIES
INTERFACE_COMPILE_OPTIONS "${PC_SDL2_NET_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_NET_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES SDL2::SDL2

View file

@ -14,5 +14,5 @@ target_include_directories(opl
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries(opl SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(opl SDL2::mixer)
target_link_libraries(opl SDL2_mixer::SDL2_mixer)
endif()

View file

@ -10,5 +10,5 @@ target_include_directories(pcsound
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries(pcsound SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(pcsound SDL2::mixer)
target_link_libraries(pcsound SDL2_mixer::SDL2_mixer)
endif()

View file

@ -34,7 +34,7 @@ target_include_directories("${PROGRAM_PREFIX}server"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}server" SDL2::SDL2main SDL2::SDL2)
if(ENABLE_SDL2_NET)
target_link_libraries("${PROGRAM_PREFIX}server" SDL2::net)
target_link_libraries("${PROGRAM_PREFIX}server" SDL2_net::SDL2_net)
endif()
# Source files used by the game binaries (chocolate-doom, etc.)
@ -127,10 +127,10 @@ set(SOURCE_FILES_WITH_DEH ${SOURCE_FILES} ${DEHACKED_SOURCE_FILES})
set(EXTRA_LIBS SDL2::SDL2main SDL2::SDL2 textscreen pcsound opl)
if(ENABLE_SDL2_MIXER)
list(APPEND EXTRA_LIBS SDL2::mixer)
list(APPEND EXTRA_LIBS SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
list(APPEND EXTRA_LIBS SDL2::net)
list(APPEND EXTRA_LIBS SDL2_net::SDL2_net)
endif()
if(SAMPLERATE_FOUND)
list(APPEND EXTRA_LIBS samplerate::samplerate)
@ -225,10 +225,10 @@ target_include_directories("${PROGRAM_PREFIX}setup"
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
target_link_libraries("${PROGRAM_PREFIX}setup" SDL2::SDL2main SDL2::SDL2 setup textscreen)
if(ENABLE_SDL2_MIXER)
target_link_libraries("${PROGRAM_PREFIX}setup" SDL2::mixer)
target_link_libraries("${PROGRAM_PREFIX}setup" SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
target_link_libraries("${PROGRAM_PREFIX}setup" SDL2::net)
target_link_libraries("${PROGRAM_PREFIX}setup" SDL2_net::SDL2_net)
endif()
if(WIN32)
target_link_libraries("${PROGRAM_PREFIX}setup" winmm)

View file

@ -70,8 +70,8 @@ add_library(doom STATIC
target_include_directories(doom PRIVATE "../" "${CMAKE_CURRENT_BINARY_DIR}/../../")
target_link_libraries(doom SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(doom SDL2::mixer)
target_link_libraries(doom SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
target_link_libraries(doom SDL2::net)
target_link_libraries(doom SDL2_net::SDL2_net)
endif()

View file

@ -56,8 +56,8 @@ add_library(heretic STATIC
target_include_directories(heretic PRIVATE "../" "${CMAKE_CURRENT_BINARY_DIR}/../../")
target_link_libraries(heretic textscreen SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(heretic SDL2::mixer)
target_link_libraries(heretic SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
target_link_libraries(heretic SDL2::net)
target_link_libraries(heretic SDL2_net::SDL2_net)
endif()

View file

@ -58,8 +58,8 @@ add_library(hexen STATIC
target_include_directories(hexen PRIVATE "../" "${CMAKE_CURRENT_BINARY_DIR}/../../")
target_link_libraries(hexen SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(hexen SDL2::mixer)
target_link_libraries(hexen SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
target_link_libraries(hexen SDL2::net)
target_link_libraries(hexen SDL2_net::SDL2_net)
endif()

View file

@ -17,5 +17,5 @@ add_library(setup STATIC
target_include_directories(setup PRIVATE "../" "${CMAKE_CURRENT_BINARY_DIR}/../../")
target_link_libraries(setup textscreen SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(setup SDL2::mixer)
target_link_libraries(setup SDL2_mixer::SDL2_mixer)
endif()

View file

@ -72,8 +72,8 @@ add_library(strife STATIC ${STRIFE_SOURCES})
target_include_directories(strife PRIVATE "../" "../../win32/" "${CMAKE_CURRENT_BINARY_DIR}/../../")
target_link_libraries(strife textscreen SDL2::SDL2)
if(ENABLE_SDL2_MIXER)
target_link_libraries(strife SDL2::mixer)
target_link_libraries(strife SDL2_mixer::SDL2_mixer)
endif()
if(ENABLE_SDL2_NET)
target_link_libraries(strife SDL2::net)
target_link_libraries(strife SDL2_net::SDL2_net)
endif()

9
vcpkg.json Normal file
View file

@ -0,0 +1,9 @@
{
"dependencies": [
"sdl2",
"sdl2-mixer",
"sdl2-net",
"libpng",
"libsamplerate"
]
}