From 80932c00bbcfbb8e78d2aa4b2c0c959656766332 Mon Sep 17 00:00:00 2001 From: Alexey Gruzdev Date: Sun, 31 May 2026 19:09:13 +0300 Subject: [PATCH 1/5] Avoid absolute path in dependencies to support ninja generator --- Source/Plugins/J2KHelper.cpp | 2 +- Source/Plugins/PluginJ2K.cpp | 2 +- Source/Plugins/PluginJP2.cpp | 2 +- Source/Plugins/PluginWebP.cpp | 33 ++++++++++++++++++++++++++------- cmake/dependency.brotli.cmake | 7 ++----- cmake/dependency.highway.cmake | 3 ++- cmake/dependency.imath.cmake | 3 ++- cmake/dependency.jpeg.cmake | 8 +++++--- cmake/dependency.jpegxl.cmake | 7 ++----- cmake/dependency.lcms2.cmake | 3 ++- cmake/dependency.openexr.cmake | 9 +++------ cmake/dependency.openjpeg.cmake | 14 +++++++------- cmake/dependency.openjph.cmake | 5 +++-- cmake/dependency.png.cmake | 5 +++-- cmake/dependency.tiff.cmake | 5 +++-- cmake/dependency.webp.cmake | 17 +++++++---------- cmake/dependency.zlib.cmake | 33 ++++++++++++++++----------------- 17 files changed, 86 insertions(+), 72 deletions(-) diff --git a/Source/Plugins/J2KHelper.cpp b/Source/Plugins/J2KHelper.cpp index d90dd0c..2fbbc9a 100644 --- a/Source/Plugins/J2KHelper.cpp +++ b/Source/Plugins/J2KHelper.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "openjp2/openjpeg.h" +#include "openjpeg.h" #include "J2KHelper.h" // -------------------------------------------------------------------------- diff --git a/Source/Plugins/PluginJ2K.cpp b/Source/Plugins/PluginJ2K.cpp index 373575c..d48df6b 100644 --- a/Source/Plugins/PluginJ2K.cpp +++ b/Source/Plugins/PluginJ2K.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "openjp2/openjpeg.h" +#include "openjpeg.h" #include "J2KHelper.h" // ========================================================== diff --git a/Source/Plugins/PluginJP2.cpp b/Source/Plugins/PluginJP2.cpp index 31f5c9b..d79f800 100644 --- a/Source/Plugins/PluginJP2.cpp +++ b/Source/Plugins/PluginJP2.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "openjp2/openjpeg.h" +#include "openjpeg.h" #include "J2KHelper.h" // ========================================================== diff --git a/Source/Plugins/PluginWebP.cpp b/Source/Plugins/PluginWebP.cpp index 25f2d98..04561f2 100644 --- a/Source/Plugins/PluginWebP.cpp +++ b/Source/Plugins/PluginWebP.cpp @@ -27,7 +27,7 @@ #include "webp/decode.h" #include "webp/encode.h" #include "webp/mux.h" -#include "dec/vp8i_dec.h" +//#include "dec/vp8i_dec.h" // ========================================================== // Plugin Interface @@ -679,13 +679,32 @@ InitWEBP(Plugin *plugin, int format_id) { plugin->supports_no_pixels_proc = SupportsNoPixels; } +namespace { + + const char* PrintWebpVersion(uint32_t major, uint32_t minor, uint32_t revision) { + static char buffer[128] = {}; + std::snprintf(buffer, std::size(buffer), "LibWebP v%u.%u.%u", major, minor, revision); + return buffer; + } + + FIDEPENDENCY MakeWebpDependency() { + const auto packedVersion = static_cast(WebPGetDecoderVersion()); + const auto major = (packedVersion >> 16) & 0xFF; + const auto minor = (packedVersion >> 8) & 0xFF; + const auto revision = packedVersion & 0xFF; + + return FIDEPENDENCY { + .name = "LibWebP", + .fullVersion = PrintWebpVersion(major, minor, revision), + .majorVersion = major, + .minorVersion = minor + }; + } + +} // namespace + const FIDEPENDENCY* GetWebpDependencyInfo() { - static const FIDEPENDENCY info = { - .name = "LibWebP", - .fullVersion = "LibWebP v" FI_QUOTE(DEC_MAJ_VERSION) "." FI_QUOTE(DEC_MIN_VERSION) "." FI_QUOTE(DEC_REV_VERSION), - .majorVersion = DEC_MAJ_VERSION, - .minorVersion = DEC_MIN_VERSION - }; + static const FIDEPENDENCY info = MakeWebpDependency(); return &info; } diff --git a/cmake/dependency.brotli.cmake b/cmake/dependency.brotli.cmake index 8758d16..ae48aff 100644 --- a/cmake/dependency.brotli.cmake +++ b/cmake/dependency.brotli.cmake @@ -29,11 +29,8 @@ ExternalProject_Get_Property(BROTLI INSTALL_DIR) add_library(LibBrotli INTERFACE) add_dependencies(LibBrotli BROTLI) -target_link_libraries(LibBrotli INTERFACE - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX} -) +target_link_directories(LibBrotli INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibBrotli INTERFACE brotlidec brotlienc brotlicommon) target_include_directories(LibBrotli INTERFACE ${INSTALL_DIR}/include) set_property(TARGET BROTLI PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.highway.cmake b/cmake/dependency.highway.cmake index a74b758..91ee960 100644 --- a/cmake/dependency.highway.cmake +++ b/cmake/dependency.highway.cmake @@ -28,7 +28,8 @@ ExternalProject_Get_Property(HIGHWAY INSTALL_DIR) add_library(LibHighway INTERFACE) add_dependencies(LibHighway HIGHWAY) -target_link_libraries(LibHighway INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}hwy${CMAKE_STATIC_LIBRARY_SUFFIX}) +target_link_directories(LibHighway INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibHighway INTERFACE hwy) target_include_directories(LibHighway INTERFACE ${INSTALL_DIR}/include) set_property(TARGET HIGHWAY PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.imath.cmake b/cmake/dependency.imath.cmake index 5d41b7d..536cc40 100644 --- a/cmake/dependency.imath.cmake +++ b/cmake/dependency.imath.cmake @@ -31,7 +31,8 @@ ExternalProject_Get_Property(IMATH INSTALL_DIR) add_library(LibImath INTERFACE) add_dependencies(LibImath IMATH) -target_link_libraries(LibImath INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Imath${CMAKE_STATIC_LIBRARY_SUFFIX}) +target_link_directories(LibImath INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibImath INTERFACE Imath) target_include_directories(LibImath INTERFACE ${INSTALL_DIR}/include ${INSTALL_DIR}/include/Imath) set_property(TARGET IMATH PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.jpeg.cmake b/cmake/dependency.jpeg.cmake index d1836fc..2ab98cd 100644 --- a/cmake/dependency.jpeg.cmake +++ b/cmake/dependency.jpeg.cmake @@ -30,7 +30,8 @@ if (JPEG_REPOSITORY STREQUAL "IJG") add_library(LibJPEG INTERFACE) add_dependencies(LibJPEG JPEG) - target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_directories(LibJPEG INTERFACE ${INSTALL_DIR}/lib) + target_link_libraries(LibJPEG INTERFACE jpeg) target_include_directories(LibJPEG INTERFACE ${INSTALL_DIR}/include) set_property(TARGET JPEG PROPERTY FOLDER "Dependencies") @@ -65,10 +66,11 @@ elseif(JPEG_REPOSITORY STREQUAL "JPEG-turbo") add_library(LibJPEG INTERFACE) add_dependencies(LibJPEG TURBOJPEG) + target_link_directories(LibJPEG INTERFACE ${INSTALL_DIR}/lib) if (MSVC) - target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/turbojpeg-static${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibJPEG INTERFACE turbojpeg-static${CMAKE_STATIC_LIBRARY_SUFFIX}) else() - target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/libturbojpeg${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibJPEG INTERFACE libturbojpeg${CMAKE_STATIC_LIBRARY_SUFFIX}) endif() target_compile_options(LibJPEG INTERFACE "-DJPEG_HAS_READ_ICC_PROFILE=1") target_include_directories(LibJPEG INTERFACE ${INSTALL_DIR}/include) diff --git a/cmake/dependency.jpegxl.cmake b/cmake/dependency.jpegxl.cmake index 03f9294..7229b07 100644 --- a/cmake/dependency.jpegxl.cmake +++ b/cmake/dependency.jpegxl.cmake @@ -45,12 +45,9 @@ ExternalProject_Get_Property(JPEGXL INSTALL_DIR) add_library(LibJpegXL INTERFACE) add_dependencies(LibJpegXL JPEGXL) -target_link_libraries(LibJpegXL INTERFACE - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jxl${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jxl_cms${CMAKE_STATIC_LIBRARY_SUFFIX} -) +target_link_directories(LibJpegXL INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibJpegXL INTERFACE jxl jxl_cms LibHighway LibBrotli LibLCMS2) target_include_directories(LibJpegXL INTERFACE ${INSTALL_DIR}/include) -target_link_libraries(LibJpegXL INTERFACE LibHighway LibBrotli LibLCMS2) set_property(TARGET JPEGXL PROPERTY FOLDER "Dependencies") set(JPEGXL_ROOT ${INSTALL_DIR}) diff --git a/cmake/dependency.lcms2.cmake b/cmake/dependency.lcms2.cmake index 9dfb897..be49314 100644 --- a/cmake/dependency.lcms2.cmake +++ b/cmake/dependency.lcms2.cmake @@ -28,7 +28,8 @@ ExternalProject_Get_Property(LCMS2 INSTALL_DIR) add_library(LibLCMS2 INTERFACE) add_dependencies(LibLCMS2 LCMS2) -target_link_libraries(LibLCMS2 INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lcms2${CMAKE_STATIC_LIBRARY_SUFFIX}) +target_link_directories(LibLCMS2 INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibLCMS2 INTERFACE lcms2) target_include_directories(LibLCMS2 INTERFACE ${INSTALL_DIR}/include) set_property(TARGET LCMS2 PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.openexr.cmake b/cmake/dependency.openexr.cmake index eb32412..ed5b1d4 100644 --- a/cmake/dependency.openexr.cmake +++ b/cmake/dependency.openexr.cmake @@ -36,13 +36,10 @@ ExternalProject_Get_Property(EXR INSTALL_DIR) add_library(LibOpenEXR INTERFACE) add_dependencies(LibOpenEXR EXR) +target_link_directories(LibOpenEXR INTERFACE ${INSTALL_DIR}/lib) target_link_libraries(LibOpenEXR INTERFACE - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}OpenEXR${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}OpenEXRCore${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Iex${CMAKE_STATIC_LIBRARY_SUFFIX} - ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}IlmThread${CMAKE_STATIC_LIBRARY_SUFFIX} - LibOpenJPH - LibImath + OpenEXR OpenEXRCore Iex IlmThread + LibOpenJPH LibImath ) target_include_directories(LibOpenEXR INTERFACE ${INSTALL_DIR}/include ${INSTALL_DIR}/include/Imath ${INSTALL_DIR}/include/OpenEXR) set_property(TARGET EXR PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.openjpeg.cmake b/cmake/dependency.openjpeg.cmake index 5ee4fbd..801308e 100644 --- a/cmake/dependency.openjpeg.cmake +++ b/cmake/dependency.openjpeg.cmake @@ -12,25 +12,25 @@ ExternalProject_Add(OPENJPEG DOWNLOAD_DIR "${EXTERNALPROJECT_SOURCE_ROOT}/openjpeg" SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/openjpeg/source" BINARY_DIR "${EXTERNALPROJECT_BINARY_ROOT}/openjpeg/build" + INSTALL_DIR "${EXTERNALPROJECT_BINARY_ROOT}/openjpeg/install" DOWNLOAD_EXTRACT_TIMESTAMP TRUE UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t openjp2 - INSTALL_COMMAND "" CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_CODEC=OFF" "-DBUILD_JPIP=OFF" "-DBUILD_TESTING=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" + "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/openjpeg/install" EXCLUDE_FROM_ALL ) -ExternalProject_Get_Property(OPENJPEG SOURCE_DIR) -ExternalProject_Get_Property(OPENJPEG BINARY_DIR) +ExternalProject_Get_Property(OPENJPEG INSTALL_DIR) add_library(LibOpenJPEG INTERFACE) add_dependencies(LibOpenJPEG OPENJPEG) -link_config_aware_library_path(LibOpenJPEG ${BINARY_DIR}/bin ${CMAKE_STATIC_LIBRARY_PREFIX}openjp2${CMAKE_STATIC_LIBRARY_SUFFIX}) -target_include_directories(LibOpenJPEG INTERFACE ${SOURCE_DIR}/src/lib ${BINARY_DIR}/src/lib/openjp2) +target_link_directories(LibOpenJPEG INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibOpenJPEG INTERFACE openjp2) +target_include_directories(LibOpenJPEG INTERFACE ${INSTALL_DIR}/include/openjpeg-2.5) set_property(TARGET OPENJPEG PROPERTY FOLDER "Dependencies") -unset(SOURCE_DIR) -unset(BINARY_DIR) +unset(INSTALL_DIR) diff --git a/cmake/dependency.openjph.cmake b/cmake/dependency.openjph.cmake index 88479d7..34dc490 100644 --- a/cmake/dependency.openjph.cmake +++ b/cmake/dependency.openjph.cmake @@ -26,10 +26,11 @@ ExternalProject_Get_Property(OPENJPH INSTALL_DIR) add_library(LibOpenJPH INTERFACE) add_dependencies(LibOpenJPH OPENJPH) +target_link_directories(LibOpenJPH INTERFACE ${INSTALL_DIR}/lib) if (MSVC) - target_link_libraries(LibOpenJPH INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}openjph.0.27${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibOpenJPH INTERFACE openjph.0.27) else() - target_link_libraries(LibOpenJPH INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}openjph${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibOpenJPH INTERFACE openjph) endif() target_include_directories(LibOpenJPH INTERFACE ${INSTALL_DIR}/include) set_property(TARGET OPENJPH PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.png.cmake b/cmake/dependency.png.cmake index 5b1e163..e615eb1 100644 --- a/cmake/dependency.png.cmake +++ b/cmake/dependency.png.cmake @@ -35,10 +35,11 @@ ExternalProject_Get_Property(PNG INSTALL_DIR) add_library(LibPNG INTERFACE) add_dependencies(LibPNG PNG) +target_link_directories(LibPNG INTERFACE ${INSTALL_DIR}/lib) if(UNIX) - target_link_libraries(LibPNG INTERFACE ${INSTALL_DIR}/lib/libpng16${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibPNG INTERFACE libpng16${CMAKE_STATIC_LIBRARY_SUFFIX}) else() - target_link_libraries(LibPNG INTERFACE ${INSTALL_DIR}/lib/libpng16_static${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibPNG INTERFACE libpng16_static${CMAKE_STATIC_LIBRARY_SUFFIX}) endif() target_include_directories(LibPNG INTERFACE ${INSTALL_DIR}/include) set_property(TARGET PNG PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.tiff.cmake b/cmake/dependency.tiff.cmake index e8ee2f9..1177ae0 100644 --- a/cmake/dependency.tiff.cmake +++ b/cmake/dependency.tiff.cmake @@ -37,10 +37,11 @@ ExternalProject_Get_Property(TIFF INSTALL_DIR) add_library(LibTIFF INTERFACE) add_dependencies(LibTIFF TIFF) +target_link_directories(LibTIFF INTERFACE ${INSTALL_DIR}/lib) if (MSVC AND IS_DEBUG_CONFIG) - target_link_libraries(LibTIFF INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}tiffd${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibTIFF INTERFACE tiffd) else() - target_link_libraries(LibTIFF INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}tiff${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibTIFF INTERFACE tiff) endif() target_include_directories(LibTIFF INTERFACE ${INSTALL_DIR}/include) set_property(TARGET TIFF PROPERTY FOLDER "Dependencies") diff --git a/cmake/dependency.webp.cmake b/cmake/dependency.webp.cmake index 9988a66..ba04612 100644 --- a/cmake/dependency.webp.cmake +++ b/cmake/dependency.webp.cmake @@ -14,28 +14,25 @@ ExternalProject_Add(WEBP DOWNLOAD_DIR "${EXTERNALPROJECT_SOURCE_ROOT}/webp" SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/webp/source" BINARY_DIR "${EXTERNALPROJECT_BINARY_ROOT}/webp/build" + INSTALL_DIR "${EXTERNALPROJECT_BINARY_ROOT}/webp/install" DOWNLOAD_EXTRACT_TIMESTAMP TRUE UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t webp libwebpmux sharpyuv - INSTALL_COMMAND "" CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DWEBP_BUILD_ANIM_UTILS=OFF" "-DWEBP_BUILD_CWEBP=OFF" "-DWEBP_BUILD_DWEBP=OFF" "-DWEBP_BUILD_GIF2WEBP=OFF" "-DWEBP_BUILD_IMG2WEBP=OFF" "-DWEBP_BUILD_VWEBP=OFF" "-DWEBP_BUILD_WEBPINFO=OFF" "-DWEBP_BUILD_LIBWEBPMUX=ON" "-DWEBP_BUILD_WEBPMUX=OFF" "-DWEBP_BUILD_EXTRAS=OFF" "-DWEBP_UNICODE=ON" - "-DBUILD_SHARED_LIBS=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" + "-DBUILD_SHARED_LIBS=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/webp/install" EXCLUDE_FROM_ALL ) -ExternalProject_Get_Property(WEBP SOURCE_DIR) -ExternalProject_Get_Property(WEBP BINARY_DIR) +ExternalProject_Get_Property(WEBP INSTALL_DIR) add_library(LibWEBP INTERFACE) add_dependencies(LibWEBP WEBP) -link_config_aware_library_path(LibWEBP ${BINARY_DIR} libwebp${CMAKE_STATIC_LIBRARY_SUFFIX}) -link_config_aware_library_path(LibWEBP ${BINARY_DIR} libwebpmux${CMAKE_STATIC_LIBRARY_SUFFIX}) -link_config_aware_library_path(LibWEBP ${BINARY_DIR} libsharpyuv${CMAKE_STATIC_LIBRARY_SUFFIX}) -target_include_directories(LibWEBP INTERFACE ${SOURCE_DIR} ${SOURCE_DIR}/src ${BINARY_DIR}/src) +target_link_directories(LibWEBP INTERFACE ${INSTALL_DIR}/lib) +target_link_libraries(LibWEBP INTERFACE libwebp${CMAKE_STATIC_LIBRARY_SUFFIX} libwebpmux${CMAKE_STATIC_LIBRARY_SUFFIX} libsharpyuv${CMAKE_STATIC_LIBRARY_SUFFIX}) +target_include_directories(LibWEBP INTERFACE ${INSTALL_DIR}/include) set_property(TARGET WEBP PROPERTY FOLDER "Dependencies") -unset(SOURCE_DIR) -unset(BINARY_DIR) +unset(INSTALL_DIR) diff --git a/cmake/dependency.zlib.cmake b/cmake/dependency.zlib.cmake index 981643a..382ecf4 100644 --- a/cmake/dependency.zlib.cmake +++ b/cmake/dependency.zlib.cmake @@ -9,6 +9,17 @@ set(_ZLIB_DEP_INCLUDE_GUARD_ ON) include(${EXTERNALPROJECT_INCLUDE_DIR}/external_project_common.cmake) +if(WIN32) + if (IS_DEBUG_CONFIG) + set(ZLIB_NAME zsd${CMAKE_STATIC_LIBRARY_SUFFIX}) + else() + set(ZLIB_NAME zs${CMAKE_STATIC_LIBRARY_SUFFIX}) + endif() +else() + set(ZLIB_NAME libz${CMAKE_STATIC_LIBRARY_SUFFIX}) +endif() + +set(ZLIB_ROOT "${EXTERNALPROJECT_BINARY_ROOT}/zlib/install") ExternalProject_Add(ZLIB PREFIX "${EXTERNALPROJECT_BINARY_ROOT}/zlib" @@ -18,32 +29,20 @@ ExternalProject_Add(ZLIB DOWNLOAD_EXTRACT_TIMESTAMP TRUE SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/zlib/source" BINARY_DIR "${EXTERNALPROJECT_BINARY_ROOT}/zlib/build" - INSTALL_DIR "${EXTERNALPROJECT_BINARY_ROOT}/zlib/install" + INSTALL_DIR ${ZLIB_ROOT} UPDATE_COMMAND "" INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - COMMAND ${CMAKE_COMMAND} -E copy "${EXTERNALPROJECT_SOURCE_PREFIX}/zlib/source/zutil.h" -t "${EXTERNALPROJECT_BINARY_ROOT}/zlib/install/include" - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/zlib/install" + COMMAND ${CMAKE_COMMAND} -E copy "${EXTERNALPROJECT_SOURCE_PREFIX}/zlib/source/zutil.h" -t "${ZLIB_ROOT}/include" + CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DCMAKE_INSTALL_PREFIX:PATH=${ZLIB_ROOT}" "-DZLIB_BUILD_TESTING=OFF" "-DZLIB_BUILD_SHARED=OFF" "-DZLIB_BUILD_STATIC=ON" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" ) -# For configuring other dependencies -ExternalProject_Get_Property(ZLIB INSTALL_DIR) -set(ZLIB_ROOT ${INSTALL_DIR}) -unset(INSTALL_DIR) - add_library(LibZLIB INTERFACE) add_dependencies(LibZLIB ZLIB) target_include_directories(LibZLIB INTERFACE ${ZLIB_ROOT}/include) -if(WIN32) - if (IS_DEBUG_CONFIG) - target_link_libraries(LibZLIB INTERFACE ${ZLIB_ROOT}/lib/zsd${CMAKE_STATIC_LIBRARY_SUFFIX}) - else() - target_link_libraries(LibZLIB INTERFACE ${ZLIB_ROOT}/lib/zs${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -else() - target_link_libraries(LibZLIB INTERFACE ${ZLIB_ROOT}/lib/libz${CMAKE_STATIC_LIBRARY_SUFFIX}) -endif() +target_link_directories(LibZLIB INTERFACE ${ZLIB_ROOT}/lib) +target_link_libraries(LibZLIB INTERFACE ${ZLIB_NAME}) set_property(TARGET ZLIB PROPERTY FOLDER "Dependencies") From 42f78b950e76ee70918fc24a919267d3385efd43 Mon Sep 17 00:00:00 2001 From: Alexey Gruzdev Date: Sun, 31 May 2026 21:25:06 +0300 Subject: [PATCH 2/5] Some fixes for MinGW --- cmake/dependency.de265.cmake | 2 +- cmake/dependency.kvazaar.cmake | 2 +- cmake/dependency.png.cmake | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/dependency.de265.cmake b/cmake/dependency.de265.cmake index 611e7fb..499481d 100644 --- a/cmake/dependency.de265.cmake +++ b/cmake/dependency.de265.cmake @@ -31,7 +31,7 @@ set_property(TARGET DE265 PROPERTY FOLDER "Dependencies") set(LIBDE265_INCLUDE_DIRS ${INSTALL_DIR}/include) set(LIBDE265_LINK_DIRS ${INSTALL_DIR}/lib) -if (WIN32) +if (MSVC) set(LIBDE265_LIBRARY libde265) else() set(LIBDE265_LIBRARY de265) diff --git a/cmake/dependency.kvazaar.cmake b/cmake/dependency.kvazaar.cmake index 9e55510..0f1ecdb 100644 --- a/cmake/dependency.kvazaar.cmake +++ b/cmake/dependency.kvazaar.cmake @@ -31,7 +31,7 @@ set_property(TARGET KVAZAAR PROPERTY FOLDER "Dependencies") set(KVAZAAR_INCLUDE_DIRS ${INSTALL_DIR}/include) set(KVAZAAR_LINK_DIRS ${INSTALL_DIR}/lib) -if(WIN32) +if(MSVC) set(KVAZAAR_LIBRARY libkvazaar) else() set(KVAZAAR_LIBRARY kvazaar) diff --git a/cmake/dependency.png.cmake b/cmake/dependency.png.cmake index e615eb1..7cb7841 100644 --- a/cmake/dependency.png.cmake +++ b/cmake/dependency.png.cmake @@ -36,10 +36,10 @@ ExternalProject_Get_Property(PNG INSTALL_DIR) add_library(LibPNG INTERFACE) add_dependencies(LibPNG PNG) target_link_directories(LibPNG INTERFACE ${INSTALL_DIR}/lib) -if(UNIX) - target_link_libraries(LibPNG INTERFACE libpng16${CMAKE_STATIC_LIBRARY_SUFFIX}) +if(MSVC) + target_link_libraries(LibPNG INTERFACE libpng16_static.lib) else() - target_link_libraries(LibPNG INTERFACE libpng16_static${CMAKE_STATIC_LIBRARY_SUFFIX}) + target_link_libraries(LibPNG INTERFACE png16) endif() target_include_directories(LibPNG INTERFACE ${INSTALL_DIR}/include) set_property(TARGET PNG PROPERTY FOLDER "Dependencies") From 6c4031d0ebe1698acd148c340924fa738a2b0f8d Mon Sep 17 00:00:00 2001 From: Alexey Gruzdev Date: Sun, 7 Jun 2026 13:31:21 +0300 Subject: [PATCH 3/5] Pass make command to dependencies. Android + ninja works. --- cmake/dependency.brotli.cmake | 2 +- cmake/dependency.de265.cmake | 2 +- cmake/dependency.heif.cmake | 2 +- cmake/dependency.highway.cmake | 2 +- cmake/dependency.imath.cmake | 2 +- cmake/dependency.jpeg.cmake | 4 ++-- cmake/dependency.jpegxl.cmake | 2 +- cmake/dependency.kvazaar.cmake | 2 +- cmake/dependency.lcms2.cmake | 2 +- cmake/dependency.openexr.cmake | 2 +- cmake/dependency.openjpeg.cmake | 2 +- cmake/dependency.openjph.cmake | 2 +- cmake/dependency.png.cmake | 2 +- cmake/dependency.svtav1.cmake | 2 +- cmake/dependency.tiff.cmake | 2 +- cmake/dependency.webp.cmake | 2 +- cmake/dependency.zlib.cmake | 2 +- cmake/external_project_common.cmake | 12 ++++++++++++ 18 files changed, 30 insertions(+), 18 deletions(-) diff --git a/cmake/dependency.brotli.cmake b/cmake/dependency.brotli.cmake index ae48aff..569106a 100644 --- a/cmake/dependency.brotli.cmake +++ b/cmake/dependency.brotli.cmake @@ -19,7 +19,7 @@ ExternalProject_Add(BROTLI PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DBROTLI_BUILD_FOR_PACKAGE=OFF" "-DBROTLI_BUILD_TOOLS=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/brotli/install" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.de265.cmake b/cmake/dependency.de265.cmake index 499481d..9ac4e14 100644 --- a/cmake/dependency.de265.cmake +++ b/cmake/dependency.de265.cmake @@ -19,7 +19,7 @@ ExternalProject_Add(DE265 PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t de265 INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DENABLE_DECODER=ON" "-DENABLE_ENCODER=OFF" "-DENABLE_SDL=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DENABLE_DECODER=ON" "-DENABLE_ENCODER=OFF" "-DENABLE_SDL=OFF" "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/libde265/install" "-DCMAKE_DEBUG_POSTFIX=" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.heif.cmake b/cmake/dependency.heif.cmake index 0f1af8b..1cc03a1 100644 --- a/cmake/dependency.heif.cmake +++ b/cmake/dependency.heif.cmake @@ -24,7 +24,7 @@ ExternalProject_Add(HEIF PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t heif INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=ON" "-DBUILD_TESTING=OFF" "-DENABLE_EXPERIMENTAL_FEATURES=OFF" "-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF" "-DENABLE_PLUGIN_LOADING=OFF" "-DWITH_REDUCED_VISIBILITY=ON" "-DWITH_EXAMPLES=OFF" "-DWITH_FUZZERS=OFF" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/heif/install" "-DCMAKE_SHARED_LIBRARY_PREFIX=lib" diff --git a/cmake/dependency.highway.cmake b/cmake/dependency.highway.cmake index 91ee960..4427b9b 100644 --- a/cmake/dependency.highway.cmake +++ b/cmake/dependency.highway.cmake @@ -18,7 +18,7 @@ ExternalProject_Add(HIGHWAY PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DHWY_ENABLE_TESTS=OFF" "-DHWY_ENABLE_EXAMPLES=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DHWY_ENABLE_TESTS=OFF" "-DHWY_ENABLE_EXAMPLES=OFF" "-DHWY_FORCE_STATIC_LIBS=ON" "-DHWY_ENABLE_CONTRIB=OFF" "-DHWY_TEST_STANDALONE=OFF" "-DHWY_WARNINGS_ARE_ERRORS=OFF" "-DHWY_CMAKE_HEADER_ONLY=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/highway/install" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.imath.cmake b/cmake/dependency.imath.cmake index 536cc40..1f946da 100644 --- a/cmake/dependency.imath.cmake +++ b/cmake/dependency.imath.cmake @@ -22,7 +22,7 @@ ExternalProject_Add(IMATH PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DIMATH_LIB_SUFFIX=" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DIMATH_LIB_SUFFIX=" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/imath/install" EXCLUDE_FROM_ALL ) diff --git a/cmake/dependency.jpeg.cmake b/cmake/dependency.jpeg.cmake index 2ab98cd..a84641c 100644 --- a/cmake/dependency.jpeg.cmake +++ b/cmake/dependency.jpeg.cmake @@ -22,7 +22,7 @@ if (JPEG_REPOSITORY STREQUAL "IJG") -t "${EXTERNALPROJECT_SOURCE_PREFIX}/jpeg/source" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/jpeg/install" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/jpeg/install" EXCLUDE_FROM_ALL ) @@ -57,7 +57,7 @@ elseif(JPEG_REPOSITORY STREQUAL "JPEG-turbo") "${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/build/jversion.h" "${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/build/jconfigint.h" -t "${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/install/include" - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DENABLE_SHARED=OFF" "-DENABLE_STATIC=ON" "-DWITH_JPEG7=ON" "-DWITH_CRT_DLL=ON" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DENABLE_SHARED=OFF" "-DENABLE_STATIC=ON" "-DWITH_JPEG7=ON" "-DWITH_CRT_DLL=ON" "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON" "-DWITH_TOOLS=OFF" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/install" EXCLUDE_FROM_ALL ) diff --git a/cmake/dependency.jpegxl.cmake b/cmake/dependency.jpegxl.cmake index 7229b07..be9afe5 100644 --- a/cmake/dependency.jpegxl.cmake +++ b/cmake/dependency.jpegxl.cmake @@ -26,7 +26,7 @@ ExternalProject_Add(JPEGXL UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t jxl - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DJPEGXL_ENABLE_BENCHMARK=OFF" "-DJPEGXL_ENABLE_EXAMPLES=OFF" "-DJPEGXL_ENABLE_JNI=OFF" "-DJPEGXL_ENABLE_JPEGLI=OFF" "-DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF" "-DJPEGXL_ENABLE_MANPAGES=OFF" "-DJPEGXL_ENABLE_OPENEXR=OFF" "-DJPEGXL_ENABLE_SJPEG=OFF" "-DJPEGXL_ENABLE_TOOLS=OFF" "-DJPEGXL_ENABLE_TOOLS=ON" "-DJPEGXL_WARNINGS_AS_ERRORS=OFF" "-DJPEGXL_ENABLE_SKCMS=OFF" diff --git a/cmake/dependency.kvazaar.cmake b/cmake/dependency.kvazaar.cmake index 0f1ecdb..9c1e309 100644 --- a/cmake/dependency.kvazaar.cmake +++ b/cmake/dependency.kvazaar.cmake @@ -19,7 +19,7 @@ ExternalProject_Add(KVAZAAR PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t kvazaar INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTS=OFF" "-DUSE_CRYPTO=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTS=OFF" "-DUSE_CRYPTO=OFF" "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/kvazaar/install" "-DCMAKE_DEBUG_POSTFIX=" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.lcms2.cmake b/cmake/dependency.lcms2.cmake index be49314..42b37df 100644 --- a/cmake/dependency.lcms2.cmake +++ b/cmake/dependency.lcms2.cmake @@ -18,7 +18,7 @@ ExternalProject_Add(LCMS2 PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DLCMS2_BUILD_SHARED=OFF" "-DLCMS2_BUILD_STATIC=ON" "-DLCMS2_BUILD_TESTS=OFF" "-DLCMS2_BUILD_TIFICC=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DLCMS2_BUILD_SHARED=OFF" "-DLCMS2_BUILD_STATIC=ON" "-DLCMS2_BUILD_TESTS=OFF" "-DLCMS2_BUILD_TIFICC=OFF" "-DLCMS2_BUILD_JPGICC=OFF" "-DLCMS2_BUILD_TOOLS=OFF" "-DLCMS2_WITH_JPEG=OFF" "-DLCMS2_WITH_TIFF=OFF" "-DLCMS2_WITH_ZLIB=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG} -DCMS_NO_REGISTER_KEYWORD=1" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/lcms2/install" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.openexr.cmake b/cmake/dependency.openexr.cmake index ed5b1d4..efba2e3 100644 --- a/cmake/dependency.openexr.cmake +++ b/cmake/dependency.openexr.cmake @@ -24,7 +24,7 @@ ExternalProject_Add(EXR UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t OpenEXR - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DOPENEXR_IS_SUBPROJECT=ON" "-DOPENEXR_FORCE_INTERNAL_IMATH=OFF" "-DOPENEXR_FORCE_INTERNAL_DEFLATE=ON" "-DOPENEXR_INSTALL=ON" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DOPENEXR_IS_SUBPROJECT=ON" "-DOPENEXR_FORCE_INTERNAL_IMATH=OFF" "-DOPENEXR_FORCE_INTERNAL_DEFLATE=ON" "-DOPENEXR_INSTALL=ON" "-DOPENEXR_INSTALL_TOOLS=OFF" "-DOPENEXR_INSTALL_EXAMPLES=OFF" "-DOPENEXR_INSTALL_PKG_CONFIG=OFF" "-DOPENEXR_BUILD_TOOLS=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DOPENEXR_LIB_SUFFIX=" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DImath_ROOT=${IMATH_ROOT}" "-Dopenjph_ROOT=${OPENJPH_ROOT}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/openexr/install" diff --git a/cmake/dependency.openjpeg.cmake b/cmake/dependency.openjpeg.cmake index 801308e..8ffe68a 100644 --- a/cmake/dependency.openjpeg.cmake +++ b/cmake/dependency.openjpeg.cmake @@ -17,7 +17,7 @@ ExternalProject_Add(OPENJPEG UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t openjp2 - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_CODEC=OFF" "-DBUILD_JPIP=OFF" "-DBUILD_TESTING=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_CODEC=OFF" "-DBUILD_JPIP=OFF" "-DBUILD_TESTING=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/openjpeg/install" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.openjph.cmake b/cmake/dependency.openjph.cmake index 34dc490..3e67655 100644 --- a/cmake/dependency.openjph.cmake +++ b/cmake/dependency.openjph.cmake @@ -17,7 +17,7 @@ ExternalProject_Add(OPENJPH UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t openjph - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DOJPH_BUILD_TESTS=OFF" "-DOJPH_ENABLE_TIFF_SUPPORT=OFF" "-DOJPH_BUILD_EXECUTABLES=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DOJPH_BUILD_TESTS=OFF" "-DOJPH_ENABLE_TIFF_SUPPORT=OFF" "-DOJPH_BUILD_EXECUTABLES=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/openjph/install" EXCLUDE_FROM_ALL ) diff --git a/cmake/dependency.png.cmake b/cmake/dependency.png.cmake index 7cb7841..8db55f4 100644 --- a/cmake/dependency.png.cmake +++ b/cmake/dependency.png.cmake @@ -23,7 +23,7 @@ ExternalProject_Add(PNG PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DZLIB_USE_STATIC_LIBS:BOOL=ON" "-DZLIB_ROOT:PATH=${ZLIB_ROOT}" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DZLIB_USE_STATIC_LIBS:BOOL=ON" "-DZLIB_ROOT:PATH=${ZLIB_ROOT}" "-DPNG_SHARED=OFF" "-DPNG_STATIC=ON" "-DPNG_TESTS=OFF" "-DPNG_TOOLS=OFF" "-DPNG_FRAMEWORK=OFF" "-DPNG_DEBUG_POSTFIX=" "-DPNG_BUILD_ZLIB=OFF" "-DPNG_HARDWARE_OPTIMIZATIONS=ON" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/png/install" "-DSKIP_INSTALL_EXECUTABLES=ON" "-DSKIP_INSTALL_PROGRAMS=ON" diff --git a/cmake/dependency.svtav1.cmake b/cmake/dependency.svtav1.cmake index 789cd74..9034354 100644 --- a/cmake/dependency.svtav1.cmake +++ b/cmake/dependency.svtav1.cmake @@ -22,7 +22,7 @@ ExternalProject_Add(SVTAV1 PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_APPS=OFF" "-DBUILD_TESTING=OFF" "-DSVT_AV1_LTO=ON" "-DUSE_CPUINFO=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_APPS=OFF" "-DBUILD_TESTING=OFF" "-DSVT_AV1_LTO=ON" "-DUSE_CPUINFO=OFF" "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/svtav1/install" "-DCMAKE_DEBUG_POSTFIX=" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.tiff.cmake b/cmake/dependency.tiff.cmake index 1177ae0..b1d6b44 100644 --- a/cmake/dependency.tiff.cmake +++ b/cmake/dependency.tiff.cmake @@ -25,7 +25,7 @@ ExternalProject_Add(TIFF "${EXTERNALPROJECT_SOURCE_PREFIX}/tiff/source/libtiff/tif_dir.h" "${EXTERNALPROJECT_BINARY_ROOT}/tiff/build/libtiff/tif_config.h" -t "${EXTERNALPROJECT_BINARY_ROOT}/tiff/install/include" - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DZLIB_ROOT:PATH=${ZLIB_ROOT}" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DZLIB_ROOT:PATH=${ZLIB_ROOT}" "-Dzlib=ON" "-Dlibdeflate=OFF" "-Djpeg=OFF" "-Dold-jpeg=OFF" "-Djpeg12=OFF" "-Djbig=OFF" "-Dwebp=OFF" "-Dzstd=OFF" "-Dlzma=OFF" "-Dtiff-tools=OFF" "-Dtiff-tests=OFF" "-Dtiff-docs=OFF" "-Dtiff-install=ON" "-Dwin32-io=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/tiff/install" diff --git a/cmake/dependency.webp.cmake b/cmake/dependency.webp.cmake index ba04612..e48a36d 100644 --- a/cmake/dependency.webp.cmake +++ b/cmake/dependency.webp.cmake @@ -19,7 +19,7 @@ ExternalProject_Add(WEBP UPDATE_COMMAND "" PATCH_COMMAND "" BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t webp libwebpmux sharpyuv - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DWEBP_BUILD_ANIM_UTILS=OFF" "-DWEBP_BUILD_CWEBP=OFF" "-DWEBP_BUILD_DWEBP=OFF" "-DWEBP_BUILD_GIF2WEBP=OFF" "-DWEBP_BUILD_IMG2WEBP=OFF" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DWEBP_BUILD_ANIM_UTILS=OFF" "-DWEBP_BUILD_CWEBP=OFF" "-DWEBP_BUILD_DWEBP=OFF" "-DWEBP_BUILD_GIF2WEBP=OFF" "-DWEBP_BUILD_IMG2WEBP=OFF" "-DWEBP_BUILD_VWEBP=OFF" "-DWEBP_BUILD_WEBPINFO=OFF" "-DWEBP_BUILD_LIBWEBPMUX=ON" "-DWEBP_BUILD_WEBPMUX=OFF" "-DWEBP_BUILD_EXTRAS=OFF" "-DWEBP_UNICODE=ON" "-DBUILD_SHARED_LIBS=OFF" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/webp/install" EXCLUDE_FROM_ALL diff --git a/cmake/dependency.zlib.cmake b/cmake/dependency.zlib.cmake index 382ecf4..f5b1d9c 100644 --- a/cmake/dependency.zlib.cmake +++ b/cmake/dependency.zlib.cmake @@ -33,7 +33,7 @@ ExternalProject_Add(ZLIB UPDATE_COMMAND "" INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install COMMAND ${CMAKE_COMMAND} -E copy "${EXTERNALPROJECT_SOURCE_PREFIX}/zlib/source/zutil.h" -t "${ZLIB_ROOT}/include" - CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DCMAKE_INSTALL_PREFIX:PATH=${ZLIB_ROOT}" + CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX:PATH=${ZLIB_ROOT}" "-DZLIB_BUILD_TESTING=OFF" "-DZLIB_BUILD_SHARED=OFF" "-DZLIB_BUILD_STATIC=ON" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" ) diff --git a/cmake/external_project_common.cmake b/cmake/external_project_common.cmake index 5fda7cd..92893fc 100644 --- a/cmake/external_project_common.cmake +++ b/cmake/external_project_common.cmake @@ -74,6 +74,18 @@ else() endif() +set(EXTERNALPROJECT_CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG}) +if (CMAKE_MAKE_PROGRAM) + set(EXTERNALPROJECT_CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}") +endif() +if (CMAKE_C_COMPILER) + set(EXTERNALPROJECT_CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") +endif() +if (CMAKE_CXX_COMPILER) + set(EXTERNALPROJECT_CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +endif() + + if (MSVC) set(ZERO_WARNINGS_FLAG "/w") set(EHSC_FLAG "/EHsc") From 9acad7cd83634c2618bb9743f216d92d7e7f73c5 Mon Sep 17 00:00:00 2001 From: Alexey Gruzdev Date: Sun, 7 Jun 2026 13:32:42 +0300 Subject: [PATCH 4/5] cmake cleanup --- cmake/external_project_common.cmake | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/cmake/external_project_common.cmake b/cmake/external_project_common.cmake index 92893fc..5f3ad71 100644 --- a/cmake/external_project_common.cmake +++ b/cmake/external_project_common.cmake @@ -98,32 +98,6 @@ else() set(DEF_FLAG "-D") endif() -macro(link_library_path2 TARGET_ PREFIX_ LIBRARY_ LIBRARY_DEBUG_) - if (IS_MULTI_CONFIG) - target_link_libraries(${TARGET_} INTERFACE - optimized "${PREFIX_}/${LIBRARY_}" - debug "${PREFIX_}/${LIBRARY_DEBUG_}" - ) - else () - target_link_libraries(${TARGET_} INTERFACE "${PREFIX_}/${LIBRARY_}") - endif() -endmacro() - -macro(link_config_aware_library_path2 TARGET_ PREFIX_ LIBRARY_ LIBRARY_DEBUG_) - if (IS_MULTI_CONFIG) - target_link_libraries(${TARGET_} INTERFACE - optimized "${PREFIX_}/Release/${LIBRARY_}" - debug "${PREFIX_}/Debug/${LIBRARY_DEBUG_}" - ) - else () - target_link_libraries(${TARGET_} INTERFACE "${PREFIX_}/${LIBRARY_}") - endif() -endmacro() - -macro(link_config_aware_library_path TARGET_ PREFIX_ LIBRARY_) - link_config_aware_library_path2(${TARGET_} ${PREFIX_} ${LIBRARY_} ${LIBRARY_}) -endmacro() - function(meson_build_type_from_cmake RETVAR_) From afe2997a29660fd3dba9742375b8d21f321cf761 Mon Sep 17 00:00:00 2001 From: Alexey Gruzdev Date: Sun, 7 Jun 2026 13:43:34 +0300 Subject: [PATCH 5/5] github notice Co-authored-by: Demetrius flavious Manually merged zlib related code --- cmake/external_project_common.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/external_project_common.cmake b/cmake/external_project_common.cmake index 5f3ad71..b043df4 100644 --- a/cmake/external_project_common.cmake +++ b/cmake/external_project_common.cmake @@ -125,4 +125,4 @@ function(meson_build_type_from_cmake RETVAR_) endfunction() -endif() #_EXTERNAL_PROJECT_INCLUDE_GUARD_ +endif() #_EXTERNAL_PROJECT_INCLUDE_GUARD_