Browse Source

Remove SDL_image dep from SDL1 build

Fixes #5504
pull/5518/head
Gleb Mazovetskiy 3 years ago
parent
commit
3cb24c15f3
  1. 20
      3rdParty/SDL_image/CMakeLists.txt
  2. 59
      CMake/Dependencies.cmake
  3. 5
      Source/CMakeLists.txt

20
3rdParty/SDL_image/CMakeLists.txt vendored

@ -18,17 +18,11 @@ endif()
include(functions/FetchContent_MakeAvailableExcludeFromAll)
include(FetchContent)
if(USE_SDL1)
FetchContent_Declare(SDL_image
URL https://github.com/libsdl-org/SDL_image/archive/refs/tags/release-1.2.12.tar.gz
URL_HASH MD5=5d499e3cf6be00bfb0a7bff1cbdbd348
)
else()
FetchContent_Declare(SDL_image
URL https://github.com/libsdl-org/SDL_image/archive/refs/tags/release-2.0.5.tar.gz
URL_HASH MD5=3446ed7ee3c700065dcb33426a9b0c6e
)
endif()
FetchContent_Declare(SDL_image
URL https://github.com/libsdl-org/SDL_image/archive/refs/tags/release-2.0.5.tar.gz
URL_HASH MD5=3446ed7ee3c700065dcb33426a9b0c6e
)
FetchContent_MakeAvailableExcludeFromAll(SDL_image)
if(DEVILUTIONX_STATIC_SDL_IMAGE)
@ -41,9 +35,7 @@ target_include_directories(SDL_image PRIVATE ${sdl_image_SOURCE_DIR})
target_compile_definitions(SDL_image PRIVATE LOAD_PNG SDL_IMAGE_USE_COMMON_BACKEND)
target_link_libraries(SDL_image PNG::PNG)
if(USE_SDL1)
target_link_libraries(SDL_image ${SDL_LIBRARY})
elseif(TARGET SDL2::SDL2)
if(TARGET SDL2::SDL2)
target_link_libraries(SDL_image SDL2::SDL2)
add_library(SDL2::SDL2_image ALIAS SDL_image)
elseif(TARGET SDL2::SDL2-static)

59
CMake/Dependencies.cmake

@ -83,46 +83,37 @@ else()
endif()
macro(_find_SDL_image QUIET_OR_REQUIRED)
if(USE_SDL1)
find_package(SDL_image ${QUIET_OR_REQUIRED})
else()
# vcpkg uses sdl2-image as the package name
find_package(sdl2-image QUIET)
set(SDL_image_FOUND ${sdl2-image_FOUND})
if(NOT SDL_image_FOUND)
# Fall back on PkgConfig via FindSDL2_image.cmake
find_package(SDL2_image ${QUIET_OR_REQUIRED})
set(SDL_image_FOUND ${SDL2_image_FOUND})
endif()
# vcpkg uses sdl2-image as the package name
find_package(sdl2-image QUIET)
set(SDL_image_FOUND ${sdl2-image_FOUND})
if(NOT SDL_image_FOUND)
# Fall back on PkgConfig via FindSDL2_image.cmake
find_package(SDL2_image ${QUIET_OR_REQUIRED})
set(SDL_image_FOUND ${SDL2_image_FOUND})
endif()
endmacro()
if(EMSCRIPTEN)
emscripten_system_library("SDL_image" SDL2::SDL2_image USE_SDL_IMAGE=2 "SDL2_IMAGE_FORMATS='[\"png\"]'")
else()
if(NOT DEFINED DEVILUTIONX_SYSTEM_SDL_IMAGE)
_find_SDL_image(QUIET)
if(SDL_image_FOUND)
message("-- Found SDL_image")
if(NOT USE_SDL1)
if(EMSCRIPTEN)
emscripten_system_library("SDL_image" SDL2::SDL2_image USE_SDL_IMAGE=2 "SDL2_IMAGE_FORMATS='[\"png\"]'")
else()
if(NOT DEFINED DEVILUTIONX_SYSTEM_SDL_IMAGE)
_find_SDL_image(QUIET)
if(SDL_image_FOUND)
message("-- Found SDL_image")
else()
message("-- Suitable system SDL_image package not found, will use SDL_image from source")
set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF)
endif()
endif()
dependency_options("SDL_image" DEVILUTIONX_SYSTEM_SDL_IMAGE ON DEVILUTIONX_STATIC_SDL_IMAGE)
if(DEVILUTIONX_SYSTEM_SDL_IMAGE)
_find_SDL_image(REQUIRED)
else()
message("-- Suitable system SDL_image package not found, will use SDL_image from source")
set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF)
add_subdirectory(3rdParty/SDL_image)
endif()
endif()
dependency_options("SDL_image" DEVILUTIONX_SYSTEM_SDL_IMAGE ON DEVILUTIONX_STATIC_SDL_IMAGE)
if(DEVILUTIONX_SYSTEM_SDL_IMAGE)
_find_SDL_image(REQUIRED)
else()
add_subdirectory(3rdParty/SDL_image)
endif()
endif()
add_library(DevilutionX::SDL_image INTERFACE IMPORTED GLOBAL)
if(USE_SDL1)
target_link_libraries(DevilutionX::SDL_image INTERFACE SDL_image)
else()
target_link_libraries(DevilutionX::SDL_image INTERFACE SDL2::SDL2_image)
endif()
if(NOT DEFINED DEVILUTIONX_SYSTEM_LIBFMT)

5
Source/CMakeLists.txt

@ -249,7 +249,6 @@ endif()
target_link_libraries(libdevilutionx PUBLIC
Threads::Threads
DevilutionX::SDL
DevilutionX::SDL_image
fmt::fmt
PKWare
libmpq
@ -259,6 +258,10 @@ target_link_libraries(libdevilutionx PUBLIC
hoehrmann_utf8
)
if(NOT USE_SDL1)
target_link_libraries(libdevilutionx PUBLIC SDL2::SDL2_image)
endif()
if(NOT NONET)
if(NOT DISABLE_TCP)
target_link_libraries(libdevilutionx PUBLIC asio)

Loading…
Cancel
Save