diff --git a/YAZE.vcxproj b/YAZE.vcxproj index b278141f..76664ba6 100644 --- a/YAZE.vcxproj +++ b/YAZE.vcxproj @@ -141,7 +141,7 @@ Console true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) @@ -162,7 +162,7 @@ true true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) @@ -179,7 +179,7 @@ Console true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) @@ -200,7 +200,7 @@ true true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) @@ -217,7 +217,7 @@ Console true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) @@ -238,7 +238,7 @@ true true $(ProjectDir)build\lib\$(Configuration);$(ProjectDir)build\src\lib\asar\src\asar\lib\$(Configuration);%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) + SDL2-static.lib;SDL2main.lib;asar-static.lib;ImGui.lib;%(AdditionalDependencies) diff --git a/cmake/sdl2.cmake b/cmake/sdl2.cmake index 1c9da664..e796fcb9 100644 --- a/cmake/sdl2.cmake +++ b/cmake/sdl2.cmake @@ -1,29 +1,44 @@ # 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) + 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}) + list(PREPEND SDL_TARGETS SDL2main ws2_32) + add_definitions("-DSDL_MAIN_HANDLED") + message(STATUS "Using bundled SDL2") + endif() +elseif(UNIX OR MINGW) + # Non-Windows: use bundled SDL add_subdirectory(src/lib/SDL) - # When using bundled SDL, use the static target and set include directories 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} ) - # Also set for consistency with bundled SDL 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) - add_definitions("-DSDL_MAIN_HANDLED") - endif() + message(STATUS "Using bundled SDL2") else() + # Fallback: try to find system SDL find_package(SDL2) - # When using system SDL, use the imported targets set(SDL_TARGETS SDL2::SDL2) - if(WIN32) - list(PREPEND SDL_TARGETS SDL2::SDL2main ws2_32) - add_definitions("-DSDL_MAIN_HANDLED") - endif() + message(STATUS "Using system SDL2") endif() # PNG and ZLIB dependencies removed \ No newline at end of file diff --git a/cmake/vcpkg.cmake b/cmake/vcpkg.cmake index 8fcf265f..f6df7700 100644 --- a/cmake/vcpkg.cmake +++ b/cmake/vcpkg.cmake @@ -4,7 +4,7 @@ add_definitions("-DMICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVER # vcpkg settings set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) # Enable vcpkg manifest mode for automatic dependency management set(VCPKG_MANIFEST_MODE ON)