Skip to content

Commit fe19c86

Browse files
committed
Fully re-worked the configuration process: using single config projects even for MSVC to simplify work with dependencies.
Co-authored-by: ShamrockLee shamrocklee@posteo.net Manually merged meson-related logic from PR #28 by @ShamrockLee
1 parent 5e15617 commit fe19c86

25 files changed

Lines changed: 326 additions & 462 deletions

CMakePresets.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"version": 3,
3+
"configurePresets": [
4+
{
5+
"name": "msvc-release",
6+
"displayName": "MSVC Release",
7+
"description": "Windows MSVC compiler with Release configuration",
8+
"generator": "Visual Studio 18 2026",
9+
"architecture": "x64",
10+
"binaryDir": "${sourceDir}/build-vs18-release",
11+
"cacheVariables": {
12+
"CMAKE_BUILD_TYPE": "Release",
13+
"CMAKE_CONFIGURATION_TYPES": "Release"
14+
},
15+
"condition": {
16+
"type": "equals",
17+
"lhs": "${hostSystemName}",
18+
"rhs": "Windows"
19+
}
20+
},
21+
{
22+
"name": "msvc-debug",
23+
"displayName": "MSVC Debug",
24+
"description": "Windows MSVC compiler with Debug configuration",
25+
"generator": "Visual Studio 18 2026",
26+
"architecture": "x64",
27+
"binaryDir": "${sourceDir}/build-vs18-debug",
28+
"cacheVariables": {
29+
"CMAKE_BUILD_TYPE": "Debug",
30+
"CMAKE_CONFIGURATION_TYPES": "Debug"
31+
},
32+
"condition": {
33+
"type": "equals",
34+
"lhs": "${hostSystemName}",
35+
"rhs": "Windows"
36+
}
37+
},
38+
{
39+
"name": "linux-release",
40+
"displayName": "Unix Release",
41+
"description": "Unix Makefiles with Release configuration",
42+
"generator": "Unix Makefiles",
43+
"binaryDir": "${sourceDir}/build-linux-release",
44+
"cacheVariables": {
45+
"CMAKE_BUILD_TYPE": "Release"
46+
},
47+
"condition": {
48+
"type": "notEquals",
49+
"lhs": "${hostSystemName}",
50+
"rhs": "Windows"
51+
}
52+
}
53+
]
54+
}

Source/Plugins/PluginG3.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
// Use at your own risk!
2121
// ==========================================================
2222

23+
// ToDo: Avoid using the private header?
2324
#include "tiffiop.h"
2425

2526
#include "FreeImage.h"

Source/Plugins/PluginHEIF.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class LibHeif
160160
# ifdef NDEBUG
161161
: LibraryLoader(std::vector<std::string>{ "heif.dll", "libheif.dll" })
162162
# else
163-
: LibraryLoader(std::vector<std::string>{ "heifd.dll", "libheifd.dll" })
163+
: LibraryLoader(std::vector<std::string>{ "heifd.dll", "libheifd.dll", "heif.dll", "libheif.dll" })
164164
# endif
165165
#else
166166
: LibraryLoader("libheif.so")

Source/Plugins/PluginTIFF.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
#include "FreeImage.h"
4444
#include "Utilities.h"
4545

46-
#include "tiffiop.h"
46+
#include "tiffio.h"
4747
#include "Imath/half.h"
4848

4949
#include "../Metadata/FreeImageTag.h"
@@ -2694,8 +2694,8 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_handle handle, int page, int flags, void
26942694

26952695
void DLL_CALLCONV
26962696
InitTIFF(Plugin *plugin, int format_id) {
2697-
_TIFFwarningHandler = msdosWarningHandler;
2698-
_TIFFerrorHandler = msdosErrorHandler;
2697+
TIFFSetWarningHandler(msdosWarningHandler);
2698+
TIFFSetErrorHandler(msdosErrorHandler);
26992699
s_format_id = format_id;
27002700

27012701
// Set up the callback for extended TIFF directory tag support (see XTIFF.cpp)

cmake/dependency.brotli.cmake

Lines changed: 8 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,53 +17,22 @@ ExternalProject_Add(BROTLI
1717
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
1818
UPDATE_COMMAND ""
1919
PATCH_COMMAND ""
20-
BUILD_COMMAND ""
21-
INSTALL_COMMAND ""
20+
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
21+
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
2222
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DBROTLI_BUILD_FOR_PACKAGE=OFF" "-DBROTLI_BUILD_TOOLS=OFF"
23-
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} -fPIC" "-DCMAKE_DEBUG_POSTFIX=d" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/brotli/install"
23+
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/brotli/install"
2424
EXCLUDE_FROM_ALL
2525
)
2626

27-
if (MSVC)
28-
ExternalProject_Add_Step(BROTLI build_debug
29-
DEPENDEES build
30-
DEPENDERS install
31-
COMMAND echo "Build Debug"
32-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install --config Debug
33-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/brotli/build
34-
)
35-
ExternalProject_Add_Step(BROTLI build_release
36-
DEPENDEES build_debug
37-
DEPENDERS install
38-
COMMAND echo "Build Release"
39-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install --config Release
40-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/brotli/build
41-
)
42-
else()
43-
ExternalProject_Add_Step(BROTLI build_default
44-
DEPENDEES build
45-
DEPENDERS install
46-
COMMAND echo "Build"
47-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
48-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/brotli/build
49-
)
50-
endif()
51-
5227
ExternalProject_Get_Property(BROTLI INSTALL_DIR)
5328

5429
add_library(LibBrotli INTERFACE)
5530
add_dependencies(LibBrotli BROTLI)
56-
if (MSVC)
57-
link_library_path2(LibBrotli ${INSTALL_DIR}/lib brotlidec.lib brotlidecd.lib)
58-
link_library_path2(LibBrotli ${INSTALL_DIR}/lib brotlienc.lib brotliencd.lib)
59-
link_library_path2(LibBrotli ${INSTALL_DIR}/lib brotlicommon.lib brotlicommond.lib)
60-
else()
61-
target_link_libraries(LibBrotli INTERFACE
62-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}
63-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}
64-
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}
65-
)
66-
endif()
31+
target_link_libraries(LibBrotli INTERFACE
32+
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}
33+
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}
34+
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}
35+
)
6736
target_include_directories(LibBrotli INTERFACE ${INSTALL_DIR}/include)
6837
set_property(TARGET BROTLI PROPERTY FOLDER "Dependencies")
6938

cmake/dependency.dav1d.cmake

Lines changed: 27 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -14,85 +14,52 @@ find_program(MESON_EXECUTABLE meson
1414
REQUIRED
1515
)
1616

17+
18+
if (MSVC)
19+
set(MESON_BACKEND ${MSVC_NAME})
20+
else()
21+
set(MESON_BACKEND ninja)
22+
endif()
23+
24+
meson_build_type_from_cmake(MESON_BUILD_TYPE)
25+
1726
ExternalProject_Add(DAVID
1827
PREFIX ${EXTERNALPROJECT_BINARY_ROOT}/dav1d
1928
URL "https://code.videolan.org/videolan/dav1d/-/archive/1.5.3/dav1d-1.5.3.zip"
2029
URL_MD5 "1d7d9f14e106ed10d376bac434e113b7"
2130
DOWNLOAD_DIR "${EXTERNALPROJECT_SOURCE_ROOT}/dav1d"
2231
SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/dav1d/source"
2332
BINARY_DIR "${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build"
33+
INSTALL_DIR "${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install"
2434
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
2535
UPDATE_COMMAND ""
2636
PATCH_COMMAND ""
27-
CONFIGURE_COMMAND ""
28-
BUILD_COMMAND ""
29-
INSTALL_COMMAND ""
37+
CONFIGURE_COMMAND ${MESON_EXECUTABLE} setup --backend ${MESON_BACKEND} --buildtype ${MESON_BUILD_TYPE}
38+
--default-library static -Denable_tools=false -Denable_tests=false --prefix ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install --libdir=lib
39+
${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build ${EXTERNALPROJECT_SOURCE_PREFIX}/dav1d/source
40+
BUILD_COMMAND ${MESON_EXECUTABLE} compile -C ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build
41+
INSTALL_COMMAND ${MESON_EXECUTABLE} install -C ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build
3042
EXCLUDE_FROM_ALL
3143
)
3244

33-
ExternalProject_Get_Property(DAVID SOURCE_DIR)
34-
35-
set(DAVID_INCLUDE_DIRS ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install/include)
36-
set(DAVID_LINK_DIRS ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install/lib)
37-
38-
if (MSVC)
39-
ExternalProject_Add_Step(DAVID build_debug
40-
DEPENDEES configure
41-
DEPENDERS build
42-
COMMAND echo "Build Debug"
43-
COMMAND ${MESON_EXECUTABLE} setup ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_debug --backend ${MSVC_NAME} --buildtype debug
44-
--default-library static -Denable_tools=false -Denable_tests=false --prefix ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install
45-
COMMAND ${CMAKE_VS_MSBUILD_COMMAND} ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_debug/dav1d.sln
46-
COMMAND ${CMAKE_VS_MSBUILD_COMMAND} ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_debug/RUN_INSTALL.vcxproj
47-
COMMAND ${CMAKE_COMMAND} -E rename ${DAVID_LINK_DIRS}/libdav1d.a ${DAVID_LINK_DIRS}/libdav1d_deb.lib
48-
COMMAND echo " -- Done"
49-
WORKING_DIRECTORY ${SOURCE_DIR}
50-
)
51-
52-
ExternalProject_Add_Step(DAVID build_release
53-
DEPENDEES build_debug
54-
DEPENDERS build
55-
COMMAND echo "Build Release"
56-
COMMAND ${MESON_EXECUTABLE} setup ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_release --backend vs2022 --buildtype release
57-
--default-library static -Denable_tools=false -Denable_tests=false --prefix ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install
58-
COMMAND ${CMAKE_VS_MSBUILD_COMMAND} ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_release/dav1d.sln
59-
COMMAND ${CMAKE_VS_MSBUILD_COMMAND} ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_release/RUN_INSTALL.vcxproj
60-
COMMAND ${CMAKE_COMMAND} -E rename ${DAVID_LINK_DIRS}/libdav1d.a ${DAVID_LINK_DIRS}/libdav1d_rel.lib
61-
COMMAND echo " -- Done"
62-
WORKING_DIRECTORY ${SOURCE_DIR}
63-
)
64-
65-
set(DAVID_LIBRARY libdav1d_rel)
66-
set(DAVID_DEBUG_LIBRARY libdav1d_deb)
67-
68-
elseif(UNIX)
69-
set(CMAKE_BUILD_TYPE_FOR_STUPID_MESON "debug")
70-
if (CMAKE_BUILD_TYPE)
71-
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_FOR_STUPID_MESON)
72-
endif()
45+
ExternalProject_Get_Property(DAVID INSTALL_DIR)
7346

74-
ExternalProject_Add_Step(DAVID build_unix
75-
DEPENDEES configure
76-
DEPENDERS build
77-
COMMAND echo "Build Unix"
78-
COMMAND ${MESON_EXECUTABLE} setup ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_unix --backend ninja --buildtype ${CMAKE_BUILD_TYPE_FOR_STUPID_MESON}
79-
--default-library static -Denable_tools=false -Denable_tests=false --prefix ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/install --libdir=lib
80-
COMMAND ${MESON_EXECUTABLE} compile -C ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_unix
81-
COMMAND ${MESON_EXECUTABLE} install -C ${EXTERNALPROJECT_BINARY_ROOT}/dav1d/build_unix
82-
COMMAND echo " -- Done"
83-
WORKING_DIRECTORY ${SOURCE_DIR}
47+
if (WIN32)
48+
ExternalProject_Add_Step(DAVID rename_stupid_meson
49+
DEPENDEES install
50+
COMMAND ${CMAKE_COMMAND} -E rename ${INSTALL_DIR}/lib/libdav1d.a ${INSTALL_DIR}/lib/dav1d.lib
8451
)
52+
endif()
8553

86-
set(DAVID_LIBRARY dav1d)
8754

88-
else()
89-
message(FATAL_ERROR "Unknown platform")
90-
91-
endif()
9255

56+
set(DAVID_INCLUDE_DIRS ${INSTALL_DIR}/include)
57+
set(DAVID_LINK_DIRS ${INSTALL_DIR}/lib)
58+
set(DAVID_LIBRARY dav1d)
9359

9460
set_property(TARGET DAVID PROPERTY FOLDER "Dependencies")
9561

96-
unset(SOURCE_DIR)
97-
unset(BINARY_DIR)
62+
unset(INSTALL_DIR)
63+
unset(MESON_BACKEND)
64+
unset(MESON_BUILD_TYPE)
9865

cmake/dependency.de265.cmake

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,29 @@ ExternalProject_Add(DE265
1313
DOWNLOAD_DIR "${EXTERNALPROJECT_SOURCE_ROOT}/libde265"
1414
SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/libde265/source"
1515
BINARY_DIR "${EXTERNALPROJECT_BINARY_ROOT}/libde265/build"
16+
INSTALL_DIR "${EXTERNALPROJECT_BINARY_ROOT}/libde265/install"
1617
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
1718
UPDATE_COMMAND ""
1819
PATCH_COMMAND ""
1920
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t de265
2021
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
2122
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DENABLE_DECODER=ON" "-DENABLE_ENCODER=OFF" "-DENABLE_SDL=OFF"
2223
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${ZERO_WARNINGS_FLAG}"
23-
"-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/libde265/install" ${CMAKE_DEBUG_POSTFIX_MULTICONF}
24+
"-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/libde265/install" "-DCMAKE_DEBUG_POSTFIX="
2425
EXCLUDE_FROM_ALL
2526
)
2627

27-
ExternalProject_Get_Property(DE265 SOURCE_DIR)
28-
ExternalProject_Get_Property(DE265 BINARY_DIR)
28+
ExternalProject_Get_Property(DE265 INSTALL_DIR)
2929

3030
set_property(TARGET DE265 PROPERTY FOLDER "Dependencies")
3131

32-
set(LIBDE265_INCLUDE_DIRS ${EXTERNALPROJECT_BINARY_ROOT}/libde265/install/include)
33-
set(LIBDE265_LINK_DIRS ${EXTERNALPROJECT_BINARY_ROOT}/libde265/install/lib)
32+
set(LIBDE265_INCLUDE_DIRS ${INSTALL_DIR}/include)
33+
set(LIBDE265_LINK_DIRS ${INSTALL_DIR}/lib)
3434
if (WIN32)
3535
set(LIBDE265_LIBRARY libde265)
36-
set(LIBDE265_DEBUG_LIBRARY libde265d)
3736
else()
3837
set(LIBDE265_LIBRARY de265)
3938
endif()
4039

41-
unset(SOURCE_DIR)
42-
unset(BINARY_DIR)
40+
unset(INSTALL_DIR)
4341

cmake/dependency.heif.cmake

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,13 @@ ExternalProject_Add(HEIF
2727
CMAKE_ARGS "--preset" "release-noplugins"
2828
"-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/heif/install" "-DCMAKE_SHARED_LIBRARY_PREFIX=lib"
2929
"-DZLIB_ROOT:PATH=${ZLIB_ROOT}"
30-
"-DWITH_LIBDE265=ON"
31-
"-DLIBDE265_INCLUDE_DIR:PATH=${LIBDE265_INCLUDE_DIRS}" "-DLIBDE265_LINK_DIRS:PATH=${LIBDE265_LINK_DIRS}"
32-
"-DLIBDE265_LIBRARY:PATH=${LIBDE265_LIBRARY}" "-DLIBDE265_DEBUG_LIBRARY:PATH=${LIBDE265_DEBUG_LIBRARY}"
33-
"-DWITH_KVAZAAR=ON"
34-
"-DKVAZAAR_INCLUDE_DIR:PATH=${KVAZAAR_INCLUDE_DIRS}" "-DKVAZAAR_LINK_DIRS:PATH=${KVAZAAR_LINK_DIRS}"
35-
"-DKVAZAAR_LIBRARY:PATH=${KVAZAAR_LIBRARY}" "-DKVAZAAR_DEBUG_LIBRARY:PATH=${KVAZAAR_DEBUG_LIBRARY}"
36-
"-DWITH_DAV1D=ON"
37-
"-DDAV1D_INCLUDE_DIR:PATH=${DAVID_INCLUDE_DIRS}" "-DDAV1D_LINK_DIRS:PATH=${DAVID_LINK_DIRS}"
38-
"-DDAV1D_LIBRARY:PATH=${DAVID_LIBRARY}" "-DDAV1D_DEBUG_LIBRARY:PATH=${DAVID_DEBUG_LIBRARY}"
39-
"-DWITH_SvtEnc=ON"
40-
"-DSvtEnc_INCLUDE_DIR:PATH=${SVTAV1_INCLUDE_DIRS}" "-DSvtEnc_LINK_DIRS:PATH=${SVTAV1_LINK_DIRS}"
41-
"-DSvtEnc_LIBRARY:PATH=${SVTAV1_LIBRARY}" "-DSvtEnc_DEBUG_LIBRARY:PATH=${SVTAV1_DEBUG_LIBRARY}"
30+
"-DWITH_LIBDE265=ON" "-DLIBDE265_INCLUDE_DIR:PATH=${LIBDE265_INCLUDE_DIRS}" "-DLIBDE265_LINK_DIRS:PATH=${LIBDE265_LINK_DIRS}" "-DLIBDE265_LIBRARY:PATH=${LIBDE265_LIBRARY}"
31+
"-DWITH_KVAZAAR=ON" "-DKVAZAAR_INCLUDE_DIR:PATH=${KVAZAAR_INCLUDE_DIRS}" "-DKVAZAAR_LINK_DIRS:PATH=${KVAZAAR_LINK_DIRS}" "-DKVAZAAR_LIBRARY:PATH=${KVAZAAR_LIBRARY}"
32+
"-DWITH_DAV1D=ON" "-DDAV1D_INCLUDE_DIR:PATH=${DAVID_INCLUDE_DIRS}" "-DDAV1D_LINK_DIRS:PATH=${DAVID_LINK_DIRS}" "-DDAV1D_LIBRARY:PATH=${DAVID_LIBRARY}"
33+
"-DWITH_SvtEnc=ON" "-DSvtEnc_INCLUDE_DIR:PATH=${SVTAV1_INCLUDE_DIRS}" "-DSvtEnc_LINK_DIRS:PATH=${SVTAV1_LINK_DIRS}" "-DSvtEnc_LIBRARY:PATH=${SVTAV1_LIBRARY}"
4234
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} ${DEF_FLAG}LIBDE265_STATIC_BUILD=1 ${DEF_FLAG}KVZ_STATIC_LIB=1"
4335
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} ${DEF_FLAG}LIBDE265_STATIC_BUILD=1 ${DEF_FLAG}KVZ_STATIC_LIB=1"
44-
"${CMAKE_DEBUG_POSTFIX_MULTICONF}"
36+
"-DCMAKE_DEBUG_POSTFIX="
4537
EXCLUDE_FROM_ALL
4638
DEPENDS DE265 KVAZAAR DAVID SVTAV1
4739
)

cmake/dependency.highway.cmake

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,19 @@ ExternalProject_Add(HIGHWAY
1616
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
1717
UPDATE_COMMAND ""
1818
PATCH_COMMAND ""
19-
BUILD_COMMAND ""
20-
INSTALL_COMMAND ""
21-
#BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t hwy
19+
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET}
20+
INSTALL_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
2221
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF" "-DHWY_ENABLE_TESTS=OFF" "-DHWY_ENABLE_EXAMPLES=OFF"
2322
"-DHWY_FORCE_STATIC_LIBS=ON" "-DHWY_ENABLE_CONTRIB=OFF" "-DHWY_TEST_STANDALONE=OFF" "-DHWY_WARNINGS_ARE_ERRORS=OFF" "-DHWY_CMAKE_HEADER_ONLY=OFF"
24-
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} -fPIC" "-DCMAKE_DEBUG_POSTFIX=d" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/highway/install"
23+
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} ${FPIC_FLAG}" "-DCMAKE_DEBUG_POSTFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${EXTERNALPROJECT_BINARY_ROOT}/highway/install"
2524
EXCLUDE_FROM_ALL
2625
)
2726

28-
if (MSVC)
29-
ExternalProject_Add_Step(HIGHWAY build_debug
30-
DEPENDEES build
31-
DEPENDERS install
32-
COMMAND echo "Build Debug"
33-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install --config Debug
34-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/highway/build
35-
)
36-
ExternalProject_Add_Step(HIGHWAY build_release
37-
DEPENDEES build_debug
38-
DEPENDERS install
39-
COMMAND echo "Build Release"
40-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install --config Release
41-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/highway/build
42-
)
43-
else()
44-
ExternalProject_Add_Step(HIGHWAY build_default
45-
DEPENDEES build
46-
DEPENDERS install
47-
COMMAND echo "Build"
48-
COMMAND ${BUILD_COMMAND_FOR_TARGET} -t install
49-
WORKING_DIRECTORY ${EXTERNALPROJECT_BINARY_ROOT}/highway/build
50-
)
51-
endif()
52-
5327
ExternalProject_Get_Property(HIGHWAY INSTALL_DIR)
5428

5529
add_library(LibHighway INTERFACE)
5630
add_dependencies(LibHighway HIGHWAY)
57-
if (MSVC)
58-
link_library_path2(LibHighway ${INSTALL_DIR}/lib hwy.lib hwyd.lib)
59-
else()
60-
target_link_libraries(LibHighway INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}hwy${CMAKE_STATIC_LIBRARY_SUFFIX})
61-
endif()
31+
target_link_libraries(LibHighway INTERFACE ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}hwy${CMAKE_STATIC_LIBRARY_SUFFIX})
6232
target_include_directories(LibHighway INTERFACE ${INSTALL_DIR}/include)
6333
set_property(TARGET HIGHWAY PROPERTY FOLDER "Dependencies")
6434

0 commit comments

Comments
 (0)