Skip to content

Commit fae24ba

Browse files
authored
Merge pull request #85 from agruzdev/ninja-fix
Better dependencies linking, ninja support
2 parents bdfee58 + afe2997 commit fae24ba

22 files changed

Lines changed: 119 additions & 119 deletions

Source/Plugins/J2KHelper.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "FreeImage.h"
2323
#include "Utilities.h"
24-
#include "openjp2/openjpeg.h"
24+
#include "openjpeg.h"
2525
#include "J2KHelper.h"
2626

2727
// --------------------------------------------------------------------------

Source/Plugins/PluginJ2K.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "FreeImage.h"
2323
#include "Utilities.h"
24-
#include "openjp2/openjpeg.h"
24+
#include "openjpeg.h"
2525
#include "J2KHelper.h"
2626

2727
// ==========================================================

Source/Plugins/PluginJP2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "FreeImage.h"
2323
#include "Utilities.h"
24-
#include "openjp2/openjpeg.h"
24+
#include "openjpeg.h"
2525
#include "J2KHelper.h"
2626

2727
// ==========================================================

Source/Plugins/PluginWebP.cpp

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "webp/decode.h"
2828
#include "webp/encode.h"
2929
#include "webp/mux.h"
30-
#include "dec/vp8i_dec.h"
30+
//#include "dec/vp8i_dec.h"
3131

3232
// ==========================================================
3333
// Plugin Interface
@@ -679,13 +679,32 @@ InitWEBP(Plugin *plugin, int format_id) {
679679
plugin->supports_no_pixels_proc = SupportsNoPixels;
680680
}
681681

682+
namespace {
683+
684+
const char* PrintWebpVersion(uint32_t major, uint32_t minor, uint32_t revision) {
685+
static char buffer[128] = {};
686+
std::snprintf(buffer, std::size(buffer), "LibWebP v%u.%u.%u", major, minor, revision);
687+
return buffer;
688+
}
689+
690+
FIDEPENDENCY MakeWebpDependency() {
691+
const auto packedVersion = static_cast<uint32_t>(WebPGetDecoderVersion());
692+
const auto major = (packedVersion >> 16) & 0xFF;
693+
const auto minor = (packedVersion >> 8) & 0xFF;
694+
const auto revision = packedVersion & 0xFF;
695+
696+
return FIDEPENDENCY {
697+
.name = "LibWebP",
698+
.fullVersion = PrintWebpVersion(major, minor, revision),
699+
.majorVersion = major,
700+
.minorVersion = minor
701+
};
702+
}
703+
704+
} // namespace
705+
682706

683707
const FIDEPENDENCY* GetWebpDependencyInfo() {
684-
static const FIDEPENDENCY info = {
685-
.name = "LibWebP",
686-
.fullVersion = "LibWebP v" FI_QUOTE(DEC_MAJ_VERSION) "." FI_QUOTE(DEC_MIN_VERSION) "." FI_QUOTE(DEC_REV_VERSION),
687-
.majorVersion = DEC_MAJ_VERSION,
688-
.minorVersion = DEC_MIN_VERSION
689-
};
708+
static const FIDEPENDENCY info = MakeWebpDependency();
690709
return &info;
691710
}

cmake/dependency.brotli.cmake

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ExternalProject_Add(BROTLI
1919
PATCH_COMMAND ""
2020
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
2121
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
22-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG}
22+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS}
2323
"-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DBROTLI_BUILD_FOR_PACKAGE=OFF" "-DBROTLI_BUILD_TOOLS=OFF"
2424
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/brotli/install"
2525
EXCLUDE_FROM_ALL
@@ -29,11 +29,8 @@ ExternalProject_Get_Property(BROTLI INSTALL_DIR)
2929

3030
add_library(LibBrotli INTERFACE)
3131
add_dependencies(LibBrotli BROTLI)
32-
target_link_libraries(LibBrotli INTERFACE
33-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}
34-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}
35-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}
36-
)
32+
target_link_directories(LibBrotli INTERFACE ${INSTALL_DIR}/lib)
33+
target_link_libraries(LibBrotli INTERFACE brotlidec brotlienc brotlicommon)
3734
target_include_directories(LibBrotli INTERFACE ${INSTALL_DIR}/include)
3835
set_property(TARGET BROTLI PROPERTY FOLDER "Dependencies")
3936

cmake/dependency.de265.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ExternalProject_Add(DE265
1919
PATCH_COMMAND ""
2020
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t de265
2121
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
22-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DENABLE_DECODER=ON" "-DENABLE_ENCODER=OFF" "-DENABLE_SDL=OFF"
22+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DENABLE_DECODER=ON" "-DENABLE_ENCODER=OFF" "-DENABLE_SDL=OFF"
2323
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${ZERO_WARNINGS_FLAG}"
2424
"-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/libde265/install" "-DCMAKE_DEBUG_POSTFIX="
2525
EXCLUDE_FROM_ALL
@@ -31,7 +31,7 @@ set_property(TARGET DE265 PROPERTY FOLDER "Dependencies")
3131

3232
set(LIBDE265_INCLUDE_DIRS ${INSTALL_DIR}/include)
3333
set(LIBDE265_LINK_DIRS ${INSTALL_DIR}/lib)
34-
if (WIN32)
34+
if (MSVC)
3535
set(LIBDE265_LIBRARY libde265)
3636
else()
3737
set(LIBDE265_LIBRARY de265)

cmake/dependency.heif.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ExternalProject_Add(HEIF
2424
PATCH_COMMAND ""
2525
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t heif
2626
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
27-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG}
27+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS}
2828
"-DBUILD_SHARED_LIBS=ON" "-DBUILD_TESTING=OFF" "-DENABLE_EXPERIMENTAL_FEATURES=OFF" "-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF"
2929
"-DENABLE_PLUGIN_LOADING=OFF" "-DWITH_REDUCED_VISIBILITY=ON" "-DWITH_EXAMPLES=OFF" "-DWITH_FUZZERS=OFF"
3030
"-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/heif/install" "-DCMAKE_SHARED_LIBRARY_PREFIX=lib"

cmake/dependency.highway.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ExternalProject_Add(HIGHWAY
1818
PATCH_COMMAND ""
1919
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
2020
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
21-
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"
21+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DHWY_ENABLE_TESTS=OFF" "-DHWY_ENABLE_EXAMPLES=OFF"
2222
"-DHWY_FORCE_STATIC_LIBS=ON" "-DHWY_ENABLE_CONTRIB=OFF" "-DHWY_TEST_STANDALONE=OFF" "-DHWY_WARNINGS_ARE_ERRORS=OFF" "-DHWY_CMAKE_HEADER_ONLY=OFF"
2323
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/highway/install"
2424
EXCLUDE_FROM_ALL
@@ -28,7 +28,8 @@ ExternalProject_Get_Property(HIGHWAY INSTALL_DIR)
2828

2929
add_library(LibHighway INTERFACE)
3030
add_dependencies(LibHighway HIGHWAY)
31-
target_link_libraries(LibHighway INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}hwy${CMAKE_STATIC_LIBRARY_SUFFIX})
31+
target_link_directories(LibHighway INTERFACE ${INSTALL_DIR}/lib)
32+
target_link_libraries(LibHighway INTERFACE hwy)
3233
target_include_directories(LibHighway INTERFACE ${INSTALL_DIR}/include)
3334
set_property(TARGET HIGHWAY PROPERTY FOLDER "Dependencies")
3435

cmake/dependency.imath.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ExternalProject_Add(IMATH
2222
PATCH_COMMAND ""
2323
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
2424
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
25-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DIMATH_LIB_SUFFIX="
25+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DIMATH_LIB_SUFFIX="
2626
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/imath/install"
2727
EXCLUDE_FROM_ALL
2828
)
@@ -31,7 +31,8 @@ ExternalProject_Get_Property(IMATH INSTALL_DIR)
3131

3232
add_library(LibImath INTERFACE)
3333
add_dependencies(LibImath IMATH)
34-
target_link_libraries(LibImath INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Imath${CMAKE_STATIC_LIBRARY_SUFFIX})
34+
target_link_directories(LibImath INTERFACE ${INSTALL_DIR}/lib)
35+
target_link_libraries(LibImath INTERFACE Imath)
3536
target_include_directories(LibImath INTERFACE ${INSTALL_DIR}/include ${INSTALL_DIR}/include/Imath)
3637
set_property(TARGET IMATH PROPERTY FOLDER "Dependencies")
3738

cmake/dependency.jpeg.cmake

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@ if (JPEG_REPOSITORY STREQUAL "IJG")
2222
-t "${EXTERNALPROJECT_SOURCE_PREFIX}/jpeg/source"
2323
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
2424
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
25-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/jpeg/install"
25+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/jpeg/install"
2626
EXCLUDE_FROM_ALL
2727
)
2828

2929
ExternalProject_Get_Property(JPEG INSTALL_DIR)
3030

3131
add_library(LibJPEG INTERFACE)
3232
add_dependencies(LibJPEG JPEG)
33-
target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${CMAKE_STATIC_LIBRARY_SUFFIX})
33+
target_link_directories(LibJPEG INTERFACE ${INSTALL_DIR}/lib)
34+
target_link_libraries(LibJPEG INTERFACE jpeg)
3435
target_include_directories(LibJPEG INTERFACE ${INSTALL_DIR}/include)
3536
set_property(TARGET JPEG PROPERTY FOLDER "Dependencies")
3637

@@ -56,7 +57,7 @@ elseif(JPEG_REPOSITORY STREQUAL "JPEG-turbo")
5657
"${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/build/jversion.h"
5758
"${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/build/jconfigint.h"
5859
-t "${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/install/include"
59-
CMAKE_ARGS ${CMAKE_TOOLCHAIN_FILE_ARG} ${CMAKE_BUILD_TYPE_ARG} "-DENABLE_SHARED=OFF" "-DENABLE_STATIC=ON" "-DWITH_JPEG7=ON" "-DWITH_CRT_DLL=ON"
60+
CMAKE_ARGS ${EXTERNALPROJECT_CMAKE_ARGS} "-DENABLE_SHARED=OFF" "-DENABLE_STATIC=ON" "-DWITH_JPEG7=ON" "-DWITH_CRT_DLL=ON"
6061
"-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON" "-DWITH_TOOLS=OFF" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/turbojpeg/install"
6162
"-DCMAKE_INSTALL_DEFAULT_LIBDIR:PATH=lib"
6263
EXCLUDE_FROM_ALL
@@ -66,10 +67,11 @@ elseif(JPEG_REPOSITORY STREQUAL "JPEG-turbo")
6667

6768
add_library(LibJPEG INTERFACE)
6869
add_dependencies(LibJPEG TURBOJPEG)
70+
target_link_directories(LibJPEG INTERFACE ${INSTALL_DIR}/lib)
6971
if (MSVC)
70-
target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/turbojpeg-static${CMAKE_STATIC_LIBRARY_SUFFIX})
72+
target_link_libraries(LibJPEG INTERFACE turbojpeg-static${CMAKE_STATIC_LIBRARY_SUFFIX})
7173
else()
72-
target_link_libraries(LibJPEG INTERFACE ${INSTALL_DIR}/lib/libturbojpeg${CMAKE_STATIC_LIBRARY_SUFFIX})
74+
target_link_libraries(LibJPEG INTERFACE libturbojpeg${CMAKE_STATIC_LIBRARY_SUFFIX})
7375
endif()
7476
target_compile_options(LibJPEG INTERFACE "-DJPEG_HAS_READ_ICC_PROFILE=1")
7577
target_include_directories(LibJPEG INTERFACE ${INSTALL_DIR}/include)

0 commit comments

Comments
 (0)