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:
parent
ac1f0c3219
commit
825f59bb89
12 changed files with 32 additions and 20 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
9
vcpkg.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"dependencies": [
|
||||
"sdl2",
|
||||
"sdl2-mixer",
|
||||
"sdl2-net",
|
||||
"libpng",
|
||||
"libsamplerate"
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue