shithub: choc

Download patch

ref: 825f59bb89733078b572cd8557ab7e4001f2e9f6
parent: ac1f0c32193abd006536eb3bfd20dc8b3a6b691a
author: Roman Fomin <rfomin@gmail.com>
date: Thu Jan 26 15:59:31 EST 2023

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.

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,9 @@
                         "-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)
 
--- a/cmake/FindSDL2_mixer.cmake
+++ b/cmake/FindSDL2_mixer.cmake
@@ -79,8 +79,8 @@
 
 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
--- a/cmake/FindSDL2_net.cmake
+++ b/cmake/FindSDL2_net.cmake
@@ -79,8 +79,8 @@
 
 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
--- a/opl/CMakeLists.txt
+++ b/opl/CMakeLists.txt
@@ -14,5 +14,5 @@
                            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()
--- a/pcsound/CMakeLists.txt
+++ b/pcsound/CMakeLists.txt
@@ -10,5 +10,5 @@
                            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()
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -34,7 +34,7 @@
                            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(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 @@
                            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)
--- a/src/doom/CMakeLists.txt
+++ b/src/doom/CMakeLists.txt
@@ -70,8 +70,8 @@
 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()
--- a/src/heretic/CMakeLists.txt
+++ b/src/heretic/CMakeLists.txt
@@ -56,8 +56,8 @@
 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()
--- a/src/hexen/CMakeLists.txt
+++ b/src/hexen/CMakeLists.txt
@@ -58,8 +58,8 @@
 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()
--- a/src/setup/CMakeLists.txt
+++ b/src/setup/CMakeLists.txt
@@ -17,5 +17,5 @@
 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()
--- a/src/strife/CMakeLists.txt
+++ b/src/strife/CMakeLists.txt
@@ -72,8 +72,8 @@
 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()
--- /dev/null
+++ b/vcpkg.json
@@ -1,0 +1,9 @@
+{
+  "dependencies": [
+    "sdl2",
+    "sdl2-mixer",
+    "sdl2-net",
+    "libpng",
+    "libsamplerate"
+  ]
+}