diff --git a/3rdParty/SDL_image/CMakeLists.txt b/3rdParty/SDL_image/CMakeLists.txt index b96650747..8f4ae7536 100644 --- a/3rdParty/SDL_image/CMakeLists.txt +++ b/3rdParty/SDL_image/CMakeLists.txt @@ -1,5 +1,20 @@ -include(FetchContent_MakeAvailableExcludeFromAll) +option(DEVILUTIONX_SYSTEM_LIBPNG "Use system-provided libpng" ON) +cmake_dependent_option(DEVILUTIONX_STATIC_LIBPNG "Link static libpng" OFF + "DEVILUTIONX_SYSTEM_LIBPNG AND NOT DIST" ON) +if(DEVILUTIONX_SYSTEM_LIBPNG) + find_package(PNG QUIET) + if(PNG_FOUND) + message("-- Found png ${PNG_VERSION_STRING}") + else() + message("-- Suitable system png package not found, will use png from source") + endif() +endif() +if(NOT PNG_FOUND) + add_subdirectory(../libpng libpng) +endif() + +include(FetchContent_MakeAvailableExcludeFromAll) include(FetchContent) if(USE_SDL1) FetchContent_Declare(SDL_image diff --git a/CMake/ctr/modules/FindPNG.cmake b/CMake/ctr/modules/FindPNG.cmake index aae3260d0..b272dccc3 100644 --- a/CMake/ctr/modules/FindPNG.cmake +++ b/CMake/ctr/modules/FindPNG.cmake @@ -63,3 +63,4 @@ set(PNG_PROCESS_LIBS PNG_LIBRARY LIBM_LIBRARY) libfind_process(PNG) try_add_imported_target(PNG m 3ds::zlib) +add_library(PNG::PNG ALIAS 3ds::png) diff --git a/CMakeLists.txt b/CMakeLists.txt index 116da573f..41fa9fbf6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,10 +89,6 @@ option(DEVILUTIONX_SYSTEM_LIBFMT "Use system-provided libfmt" ON) cmake_dependent_option(DEVILUTIONX_STATIC_LIBFMT "Link static libfmt" OFF "DEVILUTIONX_SYSTEM_LIBFMT AND NOT DIST" ON) -option(DEVILUTIONX_SYSTEM_LIBPNG "Use system-provided libpng" ON) -cmake_dependent_option(DEVILUTIONX_STATIC_LIBPNG "Link static libpng" OFF - "DEVILUTIONX_SYSTEM_LIBPNG AND NOT DIST" ON) - option(DEVILUTIONX_SYSTEM_SDL_IMAGE "Use system-provided SDL_image" ON) cmake_dependent_option(DEVILUTIONX_STATIC_SDL_IMAGE "Link static SDL_image" OFF "DEVILUTIONX_SYSTEM_SDL_IMAGE AND NOT DIST" ON) @@ -260,21 +256,6 @@ if(NOT fmt_FOUND) add_subdirectory(3rdParty/libfmt) endif() -if(DEVILUTIONX_SYSTEM_LIBPNG) - find_package(PNG QUIET) - if(PNG_FOUND) - message("-- Found png ${PNG_VERSION_STRING}") - else() - message("-- Suitable system png package not found, will use png from source") - endif() - if(NOT TARGET PNG::PNG AND TARGET 3ds::png) - add_library(PNG::PNG ALIAS 3ds::png) - endif() -endif() -if(NOT PNG_FOUND) - add_subdirectory(3rdParty/libpng) -endif() - if(ANDROID) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/android-project/3rdParty/SDL2) elseif(USE_SDL1) @@ -899,7 +880,6 @@ if(NOT NONET) endif() target_link_libraries(libdevilutionx PUBLIC fmt::fmt) -target_link_libraries(libdevilutionx PUBLIC PNG::PNG) genex_for_option(DEBUG) target_compile_definitions(libdevilutionx PUBLIC "$<${DEBUG_GENEX}:_DEBUG>")