Skip to content

Commit 5e9552b

Browse files
committed
added vcpkg
1 parent dcc64a0 commit 5e9552b

3 files changed

Lines changed: 50 additions & 86 deletions

File tree

Core/GameEngineDevice/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,8 @@ target_link_libraries(corei_gameenginedevice_public INTERFACE
240240
# Export SDL3 dependencies for modern builds
241241
if(SAGE_USE_SDL3 AND NOT IS_VS6_BUILD)
242242
target_link_libraries(corei_gameenginedevice_public INTERFACE
243-
SDL3::Headers
244-
SDL3::SDL3-static
245-
SDL3_image::SDL3_image-static
243+
SDL3::SDL3
244+
SDL3_image::SDL3_image
246245
)
247246
endif()
248247

cmake/sdl3.cmake

Lines changed: 35 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -4,96 +4,55 @@ if(NOT SAGE_USE_SDL3 OR IS_VS6_BUILD)
44
return()
55
endif()
66

7-
# GeneralsX @build felipebraz 17/04/2026 SDL3 Dependency
8-
# Download and build SDL3 from source as a static library.
9-
# This avoids manual installation and keeps the repository clean.
10-
11-
set(SDL_TESTS OFF CACHE BOOL "" FORCE)
12-
set(SDL_EXAMPLES OFF CACHE BOOL "" FORCE)
13-
set(SDL_INSTALL OFF CACHE BOOL "" FORCE)
14-
set(SDL_STATIC ON CACHE BOOL "" FORCE)
15-
set(SDL_SHARED OFF CACHE BOOL "" FORCE)
16-
17-
# Minimal build for Generals/Zero Hour engine integration.
18-
19-
# Disable Subsystems
20-
set(SDL_RENDER OFF CACHE BOOL "" FORCE) # Disables all hardware renderers (D3D11, D3D12, Vulkan, GL)
21-
set(SDL_HAPTIC OFF CACHE BOOL "" FORCE)
22-
set(SDL_POWER OFF CACHE BOOL "" FORCE)
23-
set(SDL_SENSOR OFF CACHE BOOL "" FORCE)
24-
set(SDL_HIDAPI OFF CACHE BOOL "" FORCE)
25-
26-
# Disable External Platform Support
27-
set(SDL_X11 OFF CACHE BOOL "" FORCE)
28-
set(SDL_WAYLAND OFF CACHE BOOL "" FORCE)
29-
set(SDL_VULKAN OFF CACHE BOOL "" FORCE)
30-
set(SDL_METAL OFF CACHE BOOL "" FORCE)
31-
32-
# Disable Misc Features
33-
set(SDL_CAMERA OFF CACHE BOOL "" FORCE)
34-
set(SDL_DIALOG OFF CACHE BOOL "" FORCE)
35-
set(SDL_LOCALE OFF CACHE BOOL "" FORCE)
36-
set(SDL_MISC OFF CACHE BOOL "" FORCE)
37-
set(SDL_OFFSCREEN OFF CACHE BOOL "" FORCE)
38-
set(SDL_VIRTUAL_JOYSTICK OFF CACHE BOOL "" FORCE)
39-
40-
# SDL3 - Core library (v3.4.2)
41-
FetchContent_Declare(
42-
SDL3
43-
URL https://github.com/libsdl-org/SDL/releases/download/release-3.4.2/SDL3-3.4.2.tar.gz
44-
URL_HASH SHA256=ef39a2e3f9a8a78296c40da701967dd1b0d0d6e267e483863ce70f8a03b4050c
45-
)
46-
47-
# SDL3_image - Image loading support (v3.4.0)
48-
# --- SDL3_IMAGE CATEGORIES ---
49-
50-
# Disable Metadata/Packaging
51-
set(SDLIMAGE_SAMPLES OFF CACHE BOOL "" FORCE)
52-
set(SDLIMAGE_TESTS OFF CACHE BOOL "" FORCE)
53-
set(SDLIMAGE_INSTALL OFF CACHE BOOL "" FORCE)
54-
set(SDLIMAGE_VENDORED OFF CACHE BOOL "" FORCE)
55-
set(SDLIMAGE_BACKEND_WIC OFF CACHE BOOL "" FORCE) # Avoid LNK2005
56-
57-
# Disable Codecs (minimal set)
58-
set(SDLIMAGE_BACKEND_STB OFF CACHE BOOL "" FORCE)
59-
set(SDLIMAGE_JPG OFF CACHE BOOL "" FORCE)
60-
set(SDLIMAGE_PNG OFF CACHE BOOL "" FORCE)
61-
set(SDLIMAGE_APNG OFF CACHE BOOL "" FORCE) # Fixes 'APNG_ENABLED not defined' warning
62-
set(SDLIMAGE_WEBP OFF CACHE BOOL "" FORCE)
63-
set(SDLIMAGE_TIF OFF CACHE BOOL "" FORCE)
64-
set(SDLIMAGE_AVIF OFF CACHE BOOL "" FORCE)
65-
set(SDLIMAGE_JXL OFF CACHE BOOL "" FORCE)
66-
set(SDLIMAGE_QOI OFF CACHE BOOL "" FORCE)
67-
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) # Ensure static for SDL3_image
68-
69-
FetchContent_Declare(
70-
SDL3_image
71-
URL https://github.com/libsdl-org/SDL_image/releases/download/release-3.4.0/SDL3_image-3.4.0.tar.gz
72-
URL_HASH SHA256=2ceb75eab4235c2c7e93dafc3ef3268ad368ca5de40892bf8cffdd510f29d9d8
73-
)
74-
75-
FetchContent_MakeAvailable(SDL3)
7+
# Standardized vcpkg integration: Try find_package first, fallback to source build if not found.
8+
find_package(SDL3 CONFIG QUIET)
9+
find_package(SDL3_image CONFIG QUIET)
10+
11+
if(NOT SDL3_FOUND OR NOT SDL3_image_FOUND)
12+
message(STATUS "SDL3 not found via vcpkg/find_package, falling back to source build (FetchContent)...")
13+
14+
# Match library type to target requirements
15+
set(SDL_STATIC ON CACHE BOOL "" FORCE)
16+
set(SDL_SHARED OFF CACHE BOOL "" FORCE)
17+
set(SDLIMAGE_VENDORED OFF CACHE BOOL "" FORCE)
18+
set(SDLIMAGE_BACKEND_STB ON CACHE BOOL "" FORCE)
19+
set(SDLIMAGE_PNG ON CACHE BOOL "" FORCE)
20+
set(SDLIMAGE_APNG ON CACHE BOOL "" FORCE)
21+
22+
FetchContent_Declare(
23+
SDL3
24+
URL https://github.com/libsdl-org/SDL/releases/download/release-3.4.2/SDL3-3.4.2.tar.gz
25+
URL_HASH SHA256=ef39a2e3f9a8a78296c40da701967dd1b0d0d6e267e483863ce70f8a03b4050c
26+
)
27+
28+
FetchContent_Declare(
29+
SDL3_image
30+
URL https://github.com/libsdl-org/SDL_image/releases/download/release-3.4.0/SDL3_image-3.4.0.tar.gz
31+
URL_HASH SHA256=2ceb75eab4235c2c7e93dafc3ef3268ad368ca5de40892bf8cffdd510f29d9d8
32+
)
33+
34+
FetchContent_MakeAvailable(SDL3)
35+
FetchContent_MakeAvailable(SDL3_image)
36+
endif()
7637

77-
# Trick SDL3_image into thinking SDL3 is already found to avoid the broken find_package() in the build tree.
78-
# SDL3_image specifically checks for SDL3::Headers and SDL3::SDL3 (for static builds).
38+
# Uniform aliases to ensure linking works across both discovery methods
7939
if(NOT TARGET SDL3::Headers)
8040
if(TARGET SDL3_Headers)
8141
add_library(SDL3::Headers ALIAS SDL3_Headers)
8242
else()
8343
add_library(SDL3::Headers INTERFACE IMPORTED GLOBAL)
84-
target_include_directories(SDL3::Headers INTERFACE "${sdl3_SOURCE_DIR}/include")
44+
target_link_libraries(SDL3::Headers INTERFACE SDL3::SDL3)
8545
endif()
8646
endif()
8747

8848
if(NOT TARGET SDL3::SDL3)
89-
if(TARGET SDL3-static)
49+
if(TARGET SDL3::SDL3-static)
50+
add_library(SDL3::SDL3 ALIAS SDL3::SDL3-static)
51+
elseif(TARGET SDL3-static)
9052
add_library(SDL3::SDL3 ALIAS SDL3-static)
9153
elseif(TARGET SDL3-shared)
9254
add_library(SDL3::SDL3 ALIAS SDL3-shared)
9355
endif()
9456
endif()
9557

9658
set(SDL3_FOUND TRUE CACHE BOOL "" FORCE)
97-
set(SDL3_VERSION "3.4.2" CACHE STRING "" FORCE)
98-
99-
FetchContent_MakeAvailable(SDL3_image)

vcpkg.json

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
{
2-
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
3-
"builtin-baseline": "b02e341c927f16d991edbd915d8ea43eac52096c",
4-
"dependencies": [
5-
"zlib",
6-
"ffmpeg"
7-
]
8-
}
2+
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
3+
"builtin-baseline": "b02e341c927f16d991edbd915d8ea43eac52096c",
4+
"dependencies": [
5+
"zlib",
6+
"ffmpeg",
7+
"sdl3",
8+
"sdl3-image"
9+
],
10+
"overrides": [
11+
{ "name": "sdl3", "version": "3.4.2" },
12+
{ "name": "sdl3-image", "version": "3.4.0" }
13+
]
14+
}

0 commit comments

Comments
 (0)