Update YAZE project configuration to use static SDL2 libraries and improve CMake integration
- Modified the `YAZE.vcxproj` file to replace dynamic SDL2 library dependencies with static versions, enhancing build performance and reducing runtime dependencies. - Updated `cmake/sdl2.cmake` to prioritize vcpkg for SDL2 on Windows, falling back to bundled SDL when necessary, and improved handling for non-Windows platforms. - Adjusted `cmake/vcpkg.cmake` to set the library linkage to static, ensuring consistent behavior across builds. - These changes streamline the build process and align with the project's library management strategy.
This commit is contained in:
12
YAZE.vcxproj
12
YAZE.vcxproj
@@ -141,7 +141,7 @@
|
|||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@@ -179,7 +179,7 @@
|
|||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
@@ -238,7 +238,7 @@
|
|||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,29 +1,44 @@
|
|||||||
# SDL2
|
# SDL2
|
||||||
if (UNIX OR MINGW OR WIN32)
|
# On Windows, try to use vcpkg first, then fall back to bundled SDL
|
||||||
|
if(WIN32)
|
||||||
|
# Try to find SDL2 via vcpkg first
|
||||||
|
find_package(SDL2 QUIET)
|
||||||
|
if(SDL2_FOUND)
|
||||||
|
# Use vcpkg SDL2
|
||||||
|
set(SDL_TARGETS SDL2::SDL2)
|
||||||
|
list(PREPEND SDL_TARGETS SDL2::SDL2main ws2_32)
|
||||||
|
add_definitions("-DSDL_MAIN_HANDLED")
|
||||||
|
message(STATUS "Using vcpkg SDL2")
|
||||||
|
else()
|
||||||
|
# Fall back to bundled SDL
|
||||||
add_subdirectory(src/lib/SDL)
|
add_subdirectory(src/lib/SDL)
|
||||||
# When using bundled SDL, use the static target and set include directories
|
|
||||||
set(SDL_TARGETS SDL2-static)
|
set(SDL_TARGETS SDL2-static)
|
||||||
set(SDL2_INCLUDE_DIR
|
set(SDL2_INCLUDE_DIR
|
||||||
${CMAKE_SOURCE_DIR}/src/lib/SDL/include
|
${CMAKE_SOURCE_DIR}/src/lib/SDL/include
|
||||||
${CMAKE_BINARY_DIR}/src/lib/SDL/include
|
${CMAKE_BINARY_DIR}/src/lib/SDL/include
|
||||||
${CMAKE_BINARY_DIR}/src/lib/SDL/include-config-${CMAKE_BUILD_TYPE}
|
${CMAKE_BINARY_DIR}/src/lib/SDL/include-config-${CMAKE_BUILD_TYPE}
|
||||||
)
|
)
|
||||||
# Also set for consistency with bundled SDL
|
|
||||||
set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
|
set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
|
||||||
|
|
||||||
# Add SDL2main for Windows builds when using bundled SDL
|
|
||||||
if(WIN32)
|
|
||||||
list(PREPEND SDL_TARGETS SDL2main ws2_32)
|
list(PREPEND SDL_TARGETS SDL2main ws2_32)
|
||||||
add_definitions("-DSDL_MAIN_HANDLED")
|
add_definitions("-DSDL_MAIN_HANDLED")
|
||||||
|
message(STATUS "Using bundled SDL2")
|
||||||
endif()
|
endif()
|
||||||
|
elseif(UNIX OR MINGW)
|
||||||
|
# Non-Windows: use bundled SDL
|
||||||
|
add_subdirectory(src/lib/SDL)
|
||||||
|
set(SDL_TARGETS SDL2-static)
|
||||||
|
set(SDL2_INCLUDE_DIR
|
||||||
|
${CMAKE_SOURCE_DIR}/src/lib/SDL/include
|
||||||
|
${CMAKE_BINARY_DIR}/src/lib/SDL/include
|
||||||
|
${CMAKE_BINARY_DIR}/src/lib/SDL/include-config-${CMAKE_BUILD_TYPE}
|
||||||
|
)
|
||||||
|
set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
|
||||||
|
message(STATUS "Using bundled SDL2")
|
||||||
else()
|
else()
|
||||||
|
# Fallback: try to find system SDL
|
||||||
find_package(SDL2)
|
find_package(SDL2)
|
||||||
# When using system SDL, use the imported targets
|
|
||||||
set(SDL_TARGETS SDL2::SDL2)
|
set(SDL_TARGETS SDL2::SDL2)
|
||||||
if(WIN32)
|
message(STATUS "Using system SDL2")
|
||||||
list(PREPEND SDL_TARGETS SDL2::SDL2main ws2_32)
|
|
||||||
add_definitions("-DSDL_MAIN_HANDLED")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# PNG and ZLIB dependencies removed
|
# PNG and ZLIB dependencies removed
|
||||||
@@ -4,7 +4,7 @@ add_definitions("-DMICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVER
|
|||||||
|
|
||||||
# vcpkg settings
|
# vcpkg settings
|
||||||
set(VCPKG_CRT_LINKAGE dynamic)
|
set(VCPKG_CRT_LINKAGE dynamic)
|
||||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
set(VCPKG_LIBRARY_LINKAGE static)
|
||||||
|
|
||||||
# Enable vcpkg manifest mode for automatic dependency management
|
# Enable vcpkg manifest mode for automatic dependency management
|
||||||
set(VCPKG_MANIFEST_MODE ON)
|
set(VCPKG_MANIFEST_MODE ON)
|
||||||
|
|||||||
Reference in New Issue
Block a user