gnu: warzone2100: Update to 4.6.1.

* gnu/packages/patches/warzone2100-unbundle-libs.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register patch.
* gnu/packages/games.scm (warzone2100) [version]: Update to 4.6.1.
[source]<patches>: Add patch.
[source]<snippet>: Delete unbundled libraries from source.
[arguments]<configure-flags>: Use ninja backend, disable downloads, and
disable the new, optional GNS backend in lieu of packaging it. Allow vulkan.
[arguments]<phases>: Remove phase modifications, as they were either
integrated into the patch or unnecessary.
[native-inputs]: Remove asciidoc, as it is unused, and add unbundled
basis-universal as well as shaderc for vulkan support.
[inputs]: Remove unused libs and pull in packaged versions of unbundled libs.
Use gnutls instead of openssl as it's only useful when it's the same tls
backend curl uses. Add vulkan-headers for vulkan support.

Closes: #2790
Change-Id: Ic06d2fd7e6b96da16fd64b70da0b1af3a6a65247
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This commit is contained in:
Lilah Tascheter 2025-09-18 15:36:35 -05:00 committed by 宋文武
parent b87f5d35d2
commit 0aa8017bed
No known key found for this signature in database
GPG key ID: D415BF253B515976
3 changed files with 374 additions and 60 deletions

View file

@ -2434,6 +2434,7 @@ dist_patch_DATA = \
%D%/packages/patches/vtk-7-hdf5-compat.patch \ %D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \ %D%/packages/patches/vtk-7-python-compat.patch \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/warzone2100-unbundle-libs.patch \
%D%/packages/patches/wcstools-extend-makefiles.patch \ %D%/packages/patches/wcstools-extend-makefiles.patch \
%D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \ %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \ %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \

View file

@ -204,6 +204,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm) #:use-module (gnu packages netpbm)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages ocaml) #:use-module (gnu packages ocaml)
#:use-module (gnu packages opencl) #:use-module (gnu packages opencl)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
@ -222,6 +223,7 @@
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby-check) #:use-module (gnu packages ruby-check)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
@ -6522,77 +6524,64 @@ in-window at 640x480 resolution or fullscreen.")
(define-public warzone2100 (define-public warzone2100
(package (package
(name "warzone2100") (name "warzone2100")
(version "4.3.5") (version "4.6.1")
(source (source (origin
(origin (method url-fetch)
(method url-fetch) (uri (string-append "mirror://sourceforge/warzone2100/releases/"
(uri (string-append "mirror://sourceforge/warzone2100/releases/" version "/warzone2100_src.tar.xz"))
version (patches (search-patches "warzone2100-unbundle-libs.patch"))
"/warzone2100_src.tar.xz")) (modules '((guix build utils)))
(sha256 (snippet #~(for-each delete-file-recursively
(base32 "1hq56hm6bn3s2pksznh5g8hgq6ww6fnl1pspr3bi93k3z7v0imh1")) (cons* "lib/netplay/3rdparty/miniupnp"
(modules '((guix build utils))) "lib/sound/3rdparty/opusfile"
(snippet (map (lambda (s) (string-append "3rdparty/" s))
'(begin '("basis_universal" "basis_universal_host_build"
(with-directory-excursion "3rdparty" "discord-rpc" "fmt" "GameNetworkingSockets"
(for-each "inih" "re2" "utf8proc" "utfcpp")))))
delete-file-recursively (sha256
'("discord-rpc" (base32
"miniupnp" "02x5ihkpfkpjxwvh00d8yqzd796af7d684nk96hzhhq28qw5bb16"))))
"utfcpp")))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments (list #:configure-flags #~'("-GNinja"
(list #:configure-flags #~'("-DWZ_DISTRIBUTOR=Guix" "-DWZ_DISTRIBUTOR=Guix"
"-DWZ_ENABLE_BACKEND_VULKAN=off" "-DWZ_DOWNLOAD_PREBUILT_PACKAGES=off"
"-DENABLE_DISCORD=off") "-DWZ_INCLUDE_VIDEOS=off"
#:tests? #f ; TODO: Tests seem to be broken, configure.ac is missing. "-DWZ_FORCE_MINIMAL_OPUSFILE=off"
#:phases "-DENABLE_GNS_NETWORK_BACKEND=off")
#~(modify-phases %standard-phases ;; TODO: Tests seem to be broken, configure.ac is missing.
(add-after 'unpack 'fix-utfcpp-include #:tests? #f))
(lambda _ (native-inputs (list basis-universal
(substitute* "lib/framework/wzstring.cpp" gettext-minimal
(("<utfcpp/source/utf8.h>") ninja
"<utf8cpp/utf8.h>")))) p7zip
(add-after 'unpack 'link-tests-with-qt pkg-config
(lambda _ ruby-asciidoctor/minimal
(substitute* "tests/Makefile.am" shaderc))
(("(framework_linktest_LDADD|maptest_LDADD) = " (inputs (list basis-universal
prefix)
(string-append prefix "$(QT5_LIBS) ")))))
(add-after 'unpack 'fix-ivis-linktest
(lambda _
(substitute* "tests/ivis_linktest.cpp"
(("iV_DrawTextRotated.*;")
(string-append
"iV_DrawTextRotated(\"Press ESC to exit.\", "
"100, 100, 0.0f, font_regular);"))))))))
(native-inputs (list asciidoc
ruby-asciidoctor/minimal
gettext-minimal
pkg-config
unzip
;; 7z is used to create .zip archive, not `zip' as in version 3.2.*.
p7zip))
(inputs (list opus
curl curl
fontconfig fmt
freetype freetype
glew fribidi
gnutls
harfbuzz harfbuzz
libinih
libogg
libpng
libsodium
libtheora libtheora
libvorbis libvorbis
libxrandr libzip
libsodium
miniupnpc miniupnpc
openal openal
opus
opusfile
physfs physfs
qtbase-5 re2
qtscript-5
openssl
sdl2 sdl2
sqlite sqlite
utfcpp)) utf8proc
utfcpp
vulkan-headers))
(home-page "https://wz2100.net") (home-page "https://wz2100.net")
(synopsis "3D Real-time strategy and real-time tactics game") (synopsis "3D Real-time strategy and real-time tactics game")
(description (description

View file

@ -0,0 +1,324 @@
diff -ru a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
--- a/3rdparty/CMakeLists.txt 2025-09-16 11:41:32.000000000 -0500
+++ b/3rdparty/CMakeLists.txt 2025-09-18 14:00:25.296819724 -0500
@@ -1,67 +1,47 @@
cmake_minimum_required (VERSION 3.16...3.31)
-
+find_package(PkgConfig QUIET)
include(CheckCompilerFlagsOutput)
-SET(UTF8PROC_INSTALL OFF CACHE BOOL "Enable installation of utf8proc" FORCE)
-add_subdirectory(utf8proc EXCLUDE_FROM_ALL)
-set_property(TARGET utf8proc PROPERTY FOLDER "3rdparty")
-if(NOT MSVC)
- set(_supported_utf8proc_cxx_compiler_flags "")
-
- # -Wassign-enum
- check_compiler_flags_output("-Werror -Wno-assign-enum -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-assign-enum" OUTPUT_VARIABLE _supported_utf8proc_cxx_compiler_flags APPEND)
-
- if (NOT _supported_utf8proc_cxx_compiler_flags STREQUAL "")
- string(REPLACE " " ";" _supported_utf8proc_cxx_compiler_flags "${_supported_utf8proc_cxx_compiler_flags}")
- target_compile_options(utf8proc PRIVATE ${_supported_utf8proc_cxx_compiler_flags})
- endif()
-endif()
+pkg_check_modules(UTF8PROC REQUIRED libutf8proc)
+add_library(utf8proc UNKNOWN IMPORTED)
+set_target_properties(utf8proc PROPERTIES
+ IMPORTED_LOCATION ${UTF8PROC_LIBRARIES}
+ INTERFACE_INCLUDE_DIRECTORIES ${UTF8PROC_INCLUDE_DIRS}
+ INTERFACE_LINK_LIBRARIES ${UTF8PROC_LINK_LIBRARIES}
+)
add_subdirectory(launchinfo EXCLUDE_FROM_ALL)
set_property(TARGET launchinfo PROPERTY FOLDER "3rdparty")
-SET(FMT_INSTALL OFF CACHE BOOL "Generate the install target" FORCE)
-SET(FMT_SYSTEM_HEADERS ON CACHE BOOL "Expose headers with marking them as system." FORCE)
-add_subdirectory(fmt EXCLUDE_FROM_ALL)
-set_property(TARGET fmt PROPERTY FOLDER "3rdparty")
-# Define a custom inline namespace for the fmt used by WZ, to prevent ODR violations if static linking to any libraries that themselves embed (a different version of) fmt
-target_compile_definitions(fmt PUBLIC "FMT_BEGIN_NAMESPACE=namespace fmt { inline namespace v11_wz2100 {")
-target_compile_definitions(fmt PUBLIC "FMT_END_NAMESPACE=}}")
-
+pkg_check_modules(FMT REQUIRED fmt)
+add_library(fmt UNKNOWN IMPORTED)
+set_target_properties(fmt PROPERTIES
+ IMPORTED_LOCATION ${FMT_LIBRARIES}
+ INTERFACE_INCLUDE_DIRECTORIES ${FMT_INCLUDE_DIRS}
+ INTERFACE_LINK_LIBRARIES ${FMT_LINK_LIBRARIES}
+)
# inih library
-add_library(inih STATIC "inih/ini.h" "inih/ini.c")
-set_property(TARGET inih PROPERTY FOLDER "3rdparty")
-target_include_directories(inih PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
-target_compile_definitions(inih PRIVATE
- "-DINI_API="
- "-DINI_ALLOW_MULTILINE=0"
- "-DINI_ALLOW_BOM=1"
- "-DINI_ALLOW_INLINE_COMMENTS=0"
- "-DINI_MAX_LINE=1024"
- "-DINI_ALLOW_REALLOC=1"
- "-DINI_INITIAL_ALLOC=1024"
+pkg_check_modules(INIH REQUIRED inih)
+add_library(inih UNKNOWN IMPORTED)
+set_target_properties(inih PROPERTIES
+ IMPORTED_LOCATION ${INIH_LIBRARIES}
+ INTERFACE_INCLUDE_DIRECTORIES ${INIH_INCLUDE_DIRS}
+ INTERFACE_LINK_LIBRARIES ${INIH_LINK_LIBRARIES}
)
# re2
-SET(RE2_BUILD_TESTING OFF CACHE BOOL "enable testing for RE2" FORCE)
-add_subdirectory(re2 EXCLUDE_FROM_ALL)
-target_include_directories(re2 PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/re2>
+pkg_check_modules(RE2 REQUIRED re2)
+add_library(re2 UNKNOWN IMPORTED)
+set_target_properties(re2 PROPERTIES
+ IMPORTED_LOCATION ${RE2_LIBRARIES}
+ INTERFACE_INCLUDE_DIRECTORIES ${RE2_INCLUDE_DIRS}
+ INTERFACE_LINK_LIBRARIES ${RE2_LINK_LIBRARIES}
)
-set_property(TARGET re2 PROPERTY FOLDER "3rdparty")
-set_property(TARGET re2 PROPERTY XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS NO) # -Wmissing-field-initializers
-set_property(TARGET re2 PROPERTY XCODE_ATTRIBUTE_GCC_WARN_SHADOW NO) # -Wshadow
-set_property(TARGET re2 PROPERTY XCODE_ATTRIBUTE_WARNING_CFLAGS "-Wno-missing-field-initializers -Wno-shadow")
add_subdirectory(EmbeddedJSONSignature EXCLUDE_FROM_ALL)
set_property(TARGET EmbeddedJSONSignature PROPERTY FOLDER "3rdparty")
-if(ENABLE_DISCORD)
- add_subdirectory(discord-rpc EXCLUDE_FROM_ALL)
- set_property(TARGET discord-rpc PROPERTY FOLDER "3rdparty")
-endif()
-
find_package(SQLite3 3.14 REQUIRED)
set(SQLITECPP_USE_STATIC_RUNTIME OFF CACHE BOOL "Use static runtime" FORCE)
set(SQLITE_HAS_CODEC OFF CACHE BOOL "Enable database encryption API. Not available in the public release of SQLite." FORCE)
@@ -111,52 +91,7 @@
if (WZ_ENABLE_BASIS_UNIVERSAL AND NOT WZ_CI_DISABLE_BASIS_COMPRESS_TEXTURES)
# basis-universal
- set(_ORIGINAL_CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH}")
- if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_HOST_TRIPLET)
- # Partial workaround for: https://github.com/microsoft/vcpkg/issues/17001
- # Explicitly add the HOST_TRIPLET paths to CMAKE_PROGRAM_PATH
- list(APPEND CMAKE_PROGRAM_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}")
- endif()
- find_program(BASIS_UNIVERSAL_CLI NAMES basisu PATH_SUFFIXES "tools/basisu" NO_CACHE)
- set(CMAKE_PROGRAM_PATH "${_ORIGINAL_CMAKE_PROGRAM_PATH}")
- if(NOT BASIS_UNIVERSAL_CLI)
- message(STATUS "Pre-installed basisu tool not found - attempting to build for host system")
-
- # Build the tool for the host system at configure time
- set(BASISU_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/basis_universal_host_tool/")
- execute_process(
- COMMAND ${CMAKE_COMMAND} -E make_directory "${BASISU_BINARY_DIR}"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal_host_build"
- RESULT_VARIABLE _basis_result
- )
- if(NOT _basis_result EQUAL 0)
- message(FATAL_ERROR "Failed to create directory for basis_universal_host_build")
- endif()
- execute_process(
- COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal_host_build"
- WORKING_DIRECTORY "${BASISU_BINARY_DIR}"
- RESULT_VARIABLE _basis_result
- )
- if(NOT _basis_result EQUAL 0)
- message(FATAL_ERROR "Failed to configure basis_universal_host_build")
- endif()
- execute_process(
- COMMAND ${CMAKE_COMMAND} --build "${BASISU_BINARY_DIR}" --config Release
- WORKING_DIRECTORY "${BASISU_BINARY_DIR}"
- RESULT_VARIABLE _basis_result
- )
- if(NOT _basis_result EQUAL 0)
- message(FATAL_ERROR "Basis-Universal host tool build failed")
- endif()
- message(STATUS "Basis-Universal Host Tool Built")
-
- find_program(BASIS_UNIVERSAL_CLI NAMES basisu PATHS "${BASISU_BINARY_DIR}/basis_install/bin" NO_CACHE NO_DEFAULT_PATH)
- if(NOT BASIS_UNIVERSAL_CLI)
- message(FATAL_ERROR "Built basisu CLI tool not found!")
- endif()
- else()
- message(STATUS "Pre-installed basisu tool found: ${BASIS_UNIVERSAL_CLI}")
- endif()
+ find_program(BASIS_UNIVERSAL_CLI NAMES basisu REQUIRED)
# Test basisu -version
execute_process(
@@ -174,86 +109,6 @@
endif()
-if (WZ_ENABLE_BASIS_UNIVERSAL)
-
- # basis-universal transcoder
-
- add_library(basis_transcoder STATIC "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal/transcoder/basisu_transcoder.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal/transcoder/basisu_transcoder.h" "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal/zstd/zstddeclib.c")
- set_property(TARGET basis_transcoder PROPERTY FOLDER "3rdparty")
- target_include_directories(basis_transcoder SYSTEM PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal/transcoder")
-
- if(NOT MSVC)
- set(_supported_basistranscoder_cxx_compiler_flags "")
-
- # -fno-strict-aliasing (GCC, Clang)
- check_compiler_flags_output("-Werror -fno-strict-aliasing -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-fno-strict-aliasing" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wcast-align (GCC 3.4+, Clang 3.2+)
- check_compiler_flags_output("-Werror -Wno-cast-align -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-cast-align" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wdeprecated-declarations
- check_compiler_flags_output("-Werror -Wno-deprecated-declarations -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-deprecated-declarations" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wunused-but-set-variable
- check_compiler_flags_output("-Werror -Wno-unused-but-set-variable -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-unused-but-set-variable" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wunused-function
- check_compiler_flags_output("-Werror -Wno-unused-function -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-unused-function" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wunused-const-variable
- check_compiler_flags_output("-Werror -Wno-unused-const-variable -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-unused-const-variable" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wunknown-warning-option
- check_compiler_flags_output("-Werror -Wno-unknown-warning-option -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-unknown-warning-option" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- # -Wnontrivial-memcall
- check_compiler_flags_output("-Werror -Wno-nontrivial-memcall -Wno-error=cpp" COMPILER_TYPE CXX OUTPUT_FLAGS "-Wno-nontrivial-memcall" OUTPUT_VARIABLE _supported_basistranscoder_cxx_compiler_flags APPEND)
-
- if (NOT _supported_basistranscoder_cxx_compiler_flags STREQUAL "")
- string(REPLACE " " ";" _supported_basistranscoder_cxx_compiler_flags "${_supported_basistranscoder_cxx_compiler_flags}")
- target_compile_options(basis_transcoder PRIVATE ${_supported_basistranscoder_cxx_compiler_flags})
- endif()
- endif()
-
- # Must also set BASISD_IS_BIG_ENDIAN if the target platform is big-endian!
- if (NOT DEFINED CMAKE_CXX_BYTE_ORDER AND CMAKE_VERSION VERSION_LESS 3.20)
- # CMake < 3.20 does not have CMAKE_<LANG>_BYTE_ORDER
- # Instead, use the older TestBigEndian module (although this may not work for cross-compilation)
- if (NOT CMAKE_CROSSCOMPILING)
- include(TestBigEndian)
- test_big_endian(IS_BIGENDIAN)
- if (IS_BIGENDIAN)
- set(CMAKE_CXX_BYTE_ORDER "BIG_ENDIAN")
- endif()
- else()
- message(WARNING "Unable to determine endianness for target architecture. Either upgrade to CMake 3.20+, or - if big endian - manually set the CMAKE_CXX_BYTE_ORDER cache variable to \"BIG_ENDIAN\". Otherwise, assuming little endian.")
- endif()
- endif()
- if (DEFINED CMAKE_CXX_BYTE_ORDER AND CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN")
- message(STATUS "Defining BASISD_IS_BIG_ENDIAN=1")
- target_compile_definitions(basis_transcoder PRIVATE "-DBASISD_IS_BIG_ENDIAN=1")
- endif()
-
- # Must set BASISU_HAVE_STD_TRIVIALLY_COPYABLE if the target supports std::is_trivially_copyable
- include(CheckCXXSourceCompiles)
- check_cxx_source_compiles("
- #include <type_traits>
- const bool val = std::is_trivially_copyable<bool>::value;
- int main()
- {
- return 0;
- }"
- HAVE_STD_IS_TRIVIALLY_COPYABLE
- )
- if (HAVE_STD_IS_TRIVIALLY_COPYABLE)
- target_compile_definitions(basis_transcoder PUBLIC "-DBASISU_HAVE_STD_TRIVIALLY_COPYABLE")
- endif()
-
- # Disable certain transcoder formats
- target_compile_definitions(basis_transcoder PRIVATE "-DBASISD_SUPPORT_ATC=0" "-DBASISD_SUPPORT_PVRTC1=0" "-DBASISD_SUPPORT_PVRTC2=0")
-
-endif(WZ_ENABLE_BASIS_UNIVERSAL)
-
if (WZ_PROFILING_NVTX)
include(FetchContent)
FetchContent_Declare(
diff -ru a/lib/framework/wzstring.cpp b/lib/framework/wzstring.cpp
--- a/lib/framework/wzstring.cpp 2025-09-16 11:41:32.000000000 -0500
+++ b/lib/framework/wzstring.cpp 2025-09-18 13:37:23.686668245 -0500
@@ -24,8 +24,8 @@
#include <sstream>
#include <iomanip>
#include <limits>
-#include <utfcpp/source/utf8.h>
-#include <utf8proc/utf8proc.h>
+#include <utf8cpp/utf8.h>
+#include <utf8proc.h>
WzUniCodepoint WzUniCodepoint::fromASCII(unsigned char charLiteral)
{
diff -ru a/lib/ivis_opengl/CMakeLists.txt b/lib/ivis_opengl/CMakeLists.txt
--- a/lib/ivis_opengl/CMakeLists.txt 2025-09-16 11:41:32.000000000 -0500
+++ b/lib/ivis_opengl/CMakeLists.txt 2025-09-18 14:00:13.716771596 -0500
@@ -88,7 +88,7 @@
include(WZTargetConfiguration)
WZ_TARGET_CONFIGURATION(ivis-opengl)
-target_link_libraries(ivis-opengl PRIVATE framework launchinfo fmt::fmt)
+target_link_libraries(ivis-opengl PRIVATE framework launchinfo fmt)
if(CMAKE_SYSTEM_NAME MATCHES "Emscripten")
# We should be using the Emscripten port linker flags for FreeType & Harfbuzz
else()
@@ -116,8 +116,11 @@
target_link_libraries(ivis-opengl PRIVATE etcpak)
target_compile_definitions(ivis-opengl PRIVATE "-DETCPAK_ENABLED")
endif()
-if(WZ_ENABLE_BASIS_UNIVERSAL AND TARGET basis_transcoder)
- target_link_libraries(ivis-opengl PRIVATE basis_transcoder)
+if(WZ_ENABLE_BASIS_UNIVERSAL)
+ find_package(PkgConfig QUIET)
+ pkg_check_modules(BASIS REQUIRED basisu_encoder)
+ target_include_directories(ivis-opengl PUBLIC ${BASIS_INCLUDE_DIRS})
+ target_link_libraries(ivis-opengl PRIVATE ${BASIS_LINK_LIBRARIES})
target_compile_definitions(ivis-opengl PRIVATE "-DBASIS_ENABLED")
else()
message(WARNING "Basis-universal support is disabled")
diff -ru a/lib/netplay/CMakeLists.txt b/lib/netplay/CMakeLists.txt
--- a/lib/netplay/CMakeLists.txt 2025-09-16 11:41:32.000000000 -0500
+++ b/lib/netplay/CMakeLists.txt 2025-09-18 13:37:23.686969530 -0500
@@ -108,7 +108,7 @@
include(WZTargetConfiguration)
WZ_TARGET_CONFIGURATION(netplay)
target_link_libraries(netplay
- PRIVATE framework re2::re2 nlohmann_json plum-static Threads::Threads ZLIB::ZLIB fmt::fmt
+ PRIVATE framework re2 nlohmann_json plum-static Threads::Threads ZLIB::ZLIB fmt
PUBLIC tl::expected)
if(WZ_USE_IMPORTED_MINIUPNPC)
diff -ru a/src/3rdparty/INIReaderWriter.cpp b/src/3rdparty/INIReaderWriter.cpp
--- a/src/3rdparty/INIReaderWriter.cpp 2025-09-16 11:41:32.000000000 -0500
+++ b/src/3rdparty/INIReaderWriter.cpp 2025-09-18 13:37:23.687094584 -0500
@@ -13,7 +13,7 @@
#ifndef INI_API
# define INI_API
#endif
-#include <inih/ini.h>
+#include <ini.h>
#include "INIReaderWriter.h"
using std::string;
diff -ru a/src/CMakeLists.txt b/src/CMakeLists.txt
--- a/src/CMakeLists.txt 2025-09-16 11:41:32.000000000 -0500
+++ b/src/CMakeLists.txt 2025-09-18 13:37:23.687282446 -0500
@@ -130,7 +130,7 @@
target_link_libraries(warzone2100 exception-handler gamelib wzmaplib ZipIOProvider ivis-opengl netplay sdl-backend framework sequence sound widget)
target_link_libraries(warzone2100 launchinfo EmbeddedJSONSignature)
-target_link_libraries(warzone2100 fmt::fmt)
+target_link_libraries(warzone2100 fmt)
if(ENABLE_NLS)
target_link_libraries(warzone2100 ${Intl_LIBRARIES})
endif()
@@ -146,7 +146,7 @@
include(IncludeFindCurl)
target_link_libraries(warzone2100 CURL::libcurl)
endif()
-target_link_libraries(warzone2100 re2::re2)
+target_link_libraries(warzone2100 re2)
find_package(SQLite3 3.14 REQUIRED)
target_link_libraries(warzone2100 SQLite::SQLite3)