From 7d87c6bed8eebd5083a20a21a0969118c7bfb102 Mon Sep 17 00:00:00 2001 From: scawful Date: Sat, 27 Sep 2025 22:09:45 -0400 Subject: [PATCH] Enhance CMake configuration and library management - Added `_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS` definition to suppress all C++23 deprecation warnings in CMakeLists.txt for both MSVC and GCC/Clang. - Updated `yaze.vcxproj` to remove unnecessary `absl::numeric` from AdditionalLibraryDirectories, streamlining library paths. - Modified `absl.cmake` to conditionally include `absl::int128` only on non-Windows platforms, avoiding C++23 deprecation issues and improving cross-platform compatibility. --- CMakeLists.txt | 2 ++ cmake/absl.cmake | 10 +++++++++- yaze.vcxproj | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2653aa9a..d1692c00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,7 @@ if(MSVC) _CRT_NONSTDC_NO_WARNINGS SILENCE_CXX23_DEPRECATIONS _SILENCE_CXX23_DEPRECATION_WARNING + _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS NOMINMAX # Disable min/max macros WIN32_LEAN_AND_MEAN # Reduce Windows header bloat strncasecmp=_strnicmp @@ -126,6 +127,7 @@ else() # Add C++23 deprecation silencing for GCC/Clang target_compile_definitions(yaze_common INTERFACE _SILENCE_CXX23_DEPRECATION_WARNING + _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS ABSL_HAVE_INTRINSIC_INT128=1 # Enable intrinsic int128 support ) endif() diff --git a/cmake/absl.cmake b/cmake/absl.cmake index a9922c27..6d84ce35 100644 --- a/cmake/absl.cmake +++ b/cmake/absl.cmake @@ -22,6 +22,7 @@ if(MSVC) else() add_definitions(-D_SILENCE_CXX23_DEPRECATION_WARNING) endif() +# Define base Abseil targets set( ABSL_TARGETS absl::strings @@ -50,5 +51,12 @@ set( absl::container_memory absl::memory absl::utility - absl::int128 ) + +# Add int128 only on non-Windows platforms to avoid C++23 deprecation issues +if(NOT WIN32) + list(APPEND ABSL_TARGETS absl::int128) + message(STATUS "Including absl::int128 (non-Windows platform)") +else() + message(STATUS "Excluding absl::int128 on Windows to avoid C++23 deprecation issues") +endif() diff --git a/yaze.vcxproj b/yaze.vcxproj index cdec6f3f..d226facf 100644 --- a/yaze.vcxproj +++ b/yaze.vcxproj @@ -146,7 +146,7 @@ SDL2.lib;SDL2main.lib;zlibd.lib;libpng16d.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) $(VcpkgRoot)installed\x64-windows\debug\lib;%(AdditionalLibraryDirectories) - src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;src\lib\abseil-cpp\absl\numeric;%(AdditionalLibraryDirectories) + src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;%(AdditionalLibraryDirectories) copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h" @@ -182,7 +182,7 @@ if exist "$(ProjectDir)zelda3.sfc" copy /Y "$(ProjectDir)zelda3.sfc" "$(OutDir)" SDL2.lib;SDL2main.lib;zlib.lib;libpng16.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) SDL2.lib;SDL2main.lib;ws2_32.lib;winmm.lib;imm32.lib;version.lib;oleaut32.lib;ole32.lib;setupapi.lib;advapi32.lib;%(AdditionalDependencies) $(VcpkgRoot)installed\x64-windows\lib;%(AdditionalLibraryDirectories) - src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;src\lib\abseil-cpp\absl\numeric;%(AdditionalLibraryDirectories) + src\lib\SDL\VisualC\SDL\$(PlatformName)\$(Configuration);src\lib\abseil-cpp\absl\base;src\lib\abseil-cpp\absl\strings;src\lib\abseil-cpp\absl\container;%(AdditionalLibraryDirectories) copy "$(ProjectDir)src\yaze_config.h.in" "$(ProjectDir)yaze_config.h"