aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/freeimage/CMakeLists.txt51
-rw-r--r--ports/freeimage/CONTROL2
-rw-r--r--ports/freeimage/cmake/FindJXR.cmake28
-rw-r--r--ports/freeimage/cmake/FindOpenEXR.cmake28
-rw-r--r--ports/freeimage/cmake/FindWEBP.cmake26
-rw-r--r--ports/freeimage/portfile.cmake13
-rw-r--r--ports/ilmbase/CONTROL7
-rw-r--r--ports/ilmbase/fix-parallel-build.patch54
-rw-r--r--ports/ilmbase/portfile.cmake50
-rw-r--r--ports/libwebp/0001-build-fixes.patch163
-rw-r--r--ports/libwebp/0002-cmake-config-add-backwards-compatibility.patch69
-rw-r--r--ports/libwebp/CONTROL8
-rw-r--r--ports/libwebp/FindWebP.cmake27
-rw-r--r--ports/libwebp/build_fixes.patch33
-rw-r--r--ports/libwebp/portfile.cmake89
-rw-r--r--ports/openexr/CMakeLists.txt.patch86
-rw-r--r--ports/openexr/CONTROL4
-rw-r--r--ports/openexr/FindOpenEXR.cmake88
-rw-r--r--ports/openexr/add-missing-export.patch13
-rw-r--r--ports/openexr/fix-static-linking.patch14
-rw-r--r--ports/openexr/portfile.cmake98
-rw-r--r--ports/openvdb/0001-fix-cmake-modules.patch198
-rw-r--r--ports/openvdb/0002-add-custom-options.patch14
-rw-r--r--ports/openvdb/0003-build-only-necessary-targets.patch (renamed from ports/openvdb/AddLinkageAndToolsChoice.patch)143
-rw-r--r--ports/openvdb/CONTROL6
-rw-r--r--ports/openvdb/UseGLEWOnWindowsForViewer.patch60
-rw-r--r--ports/openvdb/portfile.cmake89
27 files changed, 791 insertions, 670 deletions
diff --git a/ports/freeimage/CMakeLists.txt b/ports/freeimage/CMakeLists.txt
index 997fba37a..60c7f9bd8 100644
--- a/ports/freeimage/CMakeLists.txt
+++ b/ports/freeimage/CMakeLists.txt
@@ -4,22 +4,27 @@ include(GNUInstallDirs)
project(FreeImage C CXX)
-find_package(zlib REQUIRED)
-find_package(PNG REQUIRED)
-find_package(JPEG REQUIRED)
-if(NOT JPEG_LIBRARY_DEBUG)
- set(JPEG_LIBRARY_DEBUG ${JPEG_LIBRARY_RELEASE})
+set(CMAKE_MODULE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/share/JXR" ${CMAKE_MODULE_PATH})
+set(CMAKE_MODULE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/share/OpenEXR" ${CMAKE_MODULE_PATH})
+
+if(MSVC)
+ add_definitions("-D_CRT_SECURE_NO_WARNINGS")
+ set(CMAKE_CXX_FLAGS "/wd4828 ${CMAKE_CXX_FLAGS}")
endif()
-find_package(TIFF REQUIRED)
-find_package(OPENJPEG REQUIRED)
-# Include some custom Find***.cmake modules
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+if(BUILD_SHARED_LIBS)
+ add_definitions("-DOPENEXR_DLL")
+endif()
-find_package(WEBP REQUIRED)
-find_package(JXR REQUIRED)
-find_package(LibRaw REQUIRED)
-find_package(OpenEXR REQUIRED)
+find_package(zlib REQUIRED)
+find_package(PNG REQUIRED)
+find_package(JPEG REQUIRED)
+find_package(TIFF REQUIRED)
+find_package(OpenJPEG REQUIRED)
+find_package(WebP REQUIRED)
+find_package(JXR REQUIRED)
+find_package(LibRaw REQUIRED)
+find_package(OpenEXR REQUIRED)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(INSTALL_HEADERS "Install the development headers" ON)
@@ -33,12 +38,12 @@ set(CMAKE_DEBUG_POSTFIX "d")
set(PUBLIC_HEADERS ${REAL_SOURCE_DIR}/FreeImage.h)
# List the private header files
-set(ROOT_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/CacheFile.h
- ${REAL_SOURCE_DIR}/FreeImageIO.h
+set(ROOT_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/CacheFile.h
+ ${REAL_SOURCE_DIR}/FreeImageIO.h
${REAL_SOURCE_DIR}/MapIntrospector.h
- ${REAL_SOURCE_DIR}/Plugin.h
- ${REAL_SOURCE_DIR}/Quantizers.h
- ${REAL_SOURCE_DIR}/ToneMapping.h
+ ${REAL_SOURCE_DIR}/Plugin.h
+ ${REAL_SOURCE_DIR}/Quantizers.h
+ ${REAL_SOURCE_DIR}/ToneMapping.h
${REAL_SOURCE_DIR}/Utilities.h)
file(GLOB FREEIMAGE_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/FreeImage/*.h)
@@ -59,7 +64,7 @@ file(GLOB METADATA_SRCS ${REAL_SOURCE_DIR}/Metadata/*.cpp)
# The G3 plugin is disabled because it require the private copy of tiff
list(REMOVE_ITEM FREEIMAGE_SRCS ${REAL_SOURCE_DIR}/FreeImage/PluginG3.cpp)
-# The JPEGTransform plugin is disable because it requires a private copy of jpeg
+# The JPEGTransform plugin is disable because it requires a private copy of jpeg
list(REMOVE_ITEM FREEIMAGE_TOOLKIT_SRCS ${REAL_SOURCE_DIR}/FreeImageToolkit/JPEGTransform.cpp)
@@ -69,8 +74,8 @@ set(SRCS ${DEPRECATION_SRCS}
${METADATA_SRCS}
)
-# If FreeImage is used as a static library, FREEIMAGE_LIB
-# needs to be defined (at the C preprocessor level) to correctly
+# If FreeImage is used as a static library, FREEIMAGE_LIB
+# needs to be defined (at the C preprocessor level) to correctly
# define (to nothing instead of _declspec(dllimport) ) the DLL_API macro.
# For this purpouse we include (depending on the BUILD_SHARED_LIBS )
# the appropriate FreeImageConfig.h .
@@ -90,7 +95,7 @@ else()
endif()
target_include_directories(FreeImage PRIVATE ${REAL_SOURCE_DIR}
- ${ZLIB_INCLUDE_DIRS}
+ ${ZLIB_INCLUDE_DIRS}
${JPEG_INCLUDE_DIRS}
${TIFF_INCLUDE_DIRS}
${PNG_INCLUDE_DIRS}
@@ -149,4 +154,4 @@ install(TARGETS FreeImagePlus
if(INSTALL_HEADERS)
install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-endif() \ No newline at end of file
+endif()
diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL
index d8bd820e6..5497b0fa3 100644
--- a/ports/freeimage/CONTROL
+++ b/ports/freeimage/CONTROL
@@ -1,4 +1,4 @@
Source: freeimage
-Version: 3.18.0-2
+Version: 3.18.0-3
Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib, openexr
Description: Support library for graphics image formats
diff --git a/ports/freeimage/cmake/FindJXR.cmake b/ports/freeimage/cmake/FindJXR.cmake
deleted file mode 100644
index 7e4a5d45e..000000000
--- a/ports/freeimage/cmake/FindJXR.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# - Find JXR
-# Find the JXR library
-# This module defines
-# JXR_INCLUDE_DIRS, where to find jxrlib/JXRGlue.h
-# JXR_LIBRARIES, the libraries needed to use JXR
-#
-
-find_path(JXR_INCLUDE_DIRS
- NAMES JXRGlue.h
- PATH_SUFFIXES jxrlib
-)
-mark_as_advanced(JXR_INCLUDE_DIRS)
-
-include(SelectLibraryConfigurations)
-
-find_library(JPEGXR_LIBRARY_RELEASE NAMES jpegxr PATH_SUFFIXES lib)
-find_library(JPEGXR_LIBRARY_DEBUG NAMES jpegxrd PATH_SUFFIXES lib)
-select_library_configurations(JPEGXR)
-
-find_library(JXRGLUE_LIBRARY_RELEASE NAMES jxrglue PATH_SUFFIXES lib)
-find_library(JXRGLUE_LIBRARY_DEBUG NAMES jxrglued PATH_SUFFIXES lib)
-select_library_configurations(JXRGLUE)
-
-set(JXR_LIBRARIES ${JPEGXR_LIBRARY} ${JXRGLUE_LIBRARY})
-mark_as_advanced(JXR_LIBRARIES)
-
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(JXR DEFAULT_MSG JXR_INCLUDE_DIRS JXR_LIBRARIES)
diff --git a/ports/freeimage/cmake/FindOpenEXR.cmake b/ports/freeimage/cmake/FindOpenEXR.cmake
deleted file mode 100644
index beca25145..000000000
--- a/ports/freeimage/cmake/FindOpenEXR.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
-
-file(STRINGS "${OpenEXR_INCLUDE_DIRS}/OpenEXR/OpenEXRConfig.h" OPENEXR_CONFIG_H)
-
-string(REGEX REPLACE "^.*define OPENEXR_VERSION_MAJOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MAJOR "${OPENEXR_CONFIG_H}")
-string(REGEX REPLACE "^.*define OPENEXR_VERSION_MINOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MINOR "${OPENEXR_CONFIG_H}")
-set(OpenEXR_LIB_SUFFIX "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
-
-find_library(OpenEXR_LIBRARY IlmImf-${OpenEXR_LIB_SUFFIX})
-find_library(OpenEXR_UTIL_LIBRARY IlmImfUtil-${OpenEXR_LIB_SUFFIX})
-
-find_library(OpenEXR_HALF_LIBRARY Half)
-find_library(OpenEXR_IEX_LIBRARY Iex-${OpenEXR_LIB_SUFFIX})
-find_library(OpenEXR_THREAD_LIBRARY IlmThread-${OpenEXR_LIB_SUFFIX})
-find_library(OpenEXR_IEXMATH_LIBRARY IexMath-${OpenEXR_LIB_SUFFIX})
-find_library(OpenEXR_MATH_LIBRARY Imath-${OpenEXR_LIB_SUFFIX})
-
-set(OpenEXR_LIBRARIES
- ${OpenEXR_LIBRARY}
- ${OpenEXR_MATH_LIBRARY}
- ${OpenEXR_IEXMATH_LIBRARY}
- ${OpenEXR_UTIL_LIBRARY}
- ${OpenEXR_HALF_LIBRARY}
- ${OpenEXR_IEX_LIBRARY}
- ${OpenEXR_THREAD_LIBRARY})
-
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR REQUIRED_VARS OpenEXR_LIBRARIES OpenEXR_INCLUDE_DIRS)
diff --git a/ports/freeimage/cmake/FindWEBP.cmake b/ports/freeimage/cmake/FindWEBP.cmake
deleted file mode 100644
index b4fefeadc..000000000
--- a/ports/freeimage/cmake/FindWEBP.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-# - Find WEBP
-# Find the WEBP library
-# This module defines
-# WEBP_INCLUDE_DIRS, where to find webp/decode.h
-# WEBP_LIBRARIES, the libraries needed to use WEBP
-#
-
-find_path(WEBP_INCLUDE_DIRS
- NAMES webp/decode.h
-)
-mark_as_advanced(WEBP_INCLUDE_DIRS)
-
-find_library(WEBP_LIBRARY_RELEASE NAMES webp PATH_SUFFIXES lib)
-find_library(WEBP_LIBRARY_DEBUG NAMES webpd PATH_SUFFIXES lib)
-
-find_library(WEBPMUX_LIBRARY_RELEASE NAMES webpmux PATH_SUFFIXES lib)
-find_library(WEBPMUX_LIBRARY_DEBUG NAMES webpmuxd PATH_SUFFIXES lib)
-
-include(SelectLibraryConfigurations)
-select_library_configurations(WEBP)
-select_library_configurations(WEBPMUX)
-
-set(WEBP_LIBRARIES ${WEBPMUX_LIBRARY} ${WEBP_LIBRARY})
-
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(WEBP DEFAULT_MSG WEBP_INCLUDE_DIRS WEBP_LIBRARIES)
diff --git a/ports/freeimage/portfile.cmake b/ports/freeimage/portfile.cmake
index 6f3cfaebe..3fea39a0e 100644
--- a/ports/freeimage/portfile.cmake
+++ b/ports/freeimage/portfile.cmake
@@ -13,11 +13,8 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FreeImageConfig-static.h DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FreeImageConfig-dynamic.h DESTINATION ${SOURCE_PATH})
-# Copy some useful Find***.cmake modules
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH})
-
-# This is not strictly necessary, but to make sure
-# that no "internal" libraries are used by removing them
+# This is not strictly necessary, but to make sure
+# that no "internal" libraries are used we remove them
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibJPEG)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibPNG)
file(REMOVE_RECURSE ${SOURCE_PATH}/Source/LibTIFF4)
@@ -46,7 +43,11 @@ vcpkg_apply_patches(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS_DEBUG -DINSTALL_HEADERS=OFF
+ OPTIONS
+ -DVCPKG_ROOT_DIR=${VCPKG_ROOT_DIR}
+ -DTARGET_TRIPLET=${TARGET_TRIPLET}
+ OPTIONS_DEBUG
+ -DINSTALL_HEADERS=OFF
)
vcpkg_install_cmake()
diff --git a/ports/ilmbase/CONTROL b/ports/ilmbase/CONTROL
index 9e405df31..51ea5dffc 100644
--- a/ports/ilmbase/CONTROL
+++ b/ports/ilmbase/CONTROL
@@ -1,3 +1,4 @@
-Source: ilmbase
-Version: 2.2.1-1
-Description: Base libraries from ILM for OpenEXR
+Source: ilmbase
+Version: 2.3.0
+Build-Depends: openexr
+Description: empty package, linking to newer one
diff --git a/ports/ilmbase/fix-parallel-build.patch b/ports/ilmbase/fix-parallel-build.patch
deleted file mode 100644
index 85c773f31..000000000
--- a/ports/ilmbase/fix-parallel-build.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/Half/CMakeLists.txt b/Half/CMakeLists.txt
-index 6f9714d..0c43904 100644
---- a/Half/CMakeLists.txt
-+++ b/Half/CMakeLists.txt
-@@ -2,10 +2,10 @@
-
- ADD_EXECUTABLE ( eLut eLut.cpp )
-
--ADD_CUSTOM_COMMAND (
-- TARGET eLut POST_BUILD
-+ADD_CUSTOM_TARGET ( make_eLut
- COMMAND eLut > ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-+ DEPENDS eLut
- )
- SET_SOURCE_FILES_PROPERTIES(
- ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
-@@ -13,25 +13,16 @@ SET_SOURCE_FILES_PROPERTIES(
- )
-
- ADD_EXECUTABLE ( toFloat toFloat.cpp )
--ADD_CUSTOM_COMMAND (
-- TARGET toFloat POST_BUILD
-+ADD_CUSTOM_TARGET ( make_toFloat
- COMMAND toFloat > ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-+ DEPENDS toFloat
- )
- SET_SOURCE_FILES_PROPERTIES(
- ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
- PROPERTIES HEADER_FILE_ONLY TRUE
- )
-
--SET_SOURCE_FILES_PROPERTIES(
-- half.cpp
-- PROPERTIES
-- OBJECT_DEPENDS
-- ${CMAKE_CURRENT_BINARY_DIR}/eLut.h
-- OBJECT_DEPENDS
-- ${CMAKE_CURRENT_BINARY_DIR}/toFloat.h
-- )
--
- IF(BUILD_SHARED_LIBS)
- ADD_DEFINITIONS(-DHALF_EXPORTS)
- ENDIF()
-@@ -41,7 +32,7 @@ ADD_LIBRARY ( Half ${LIB_TYPE}
- )
-
-
--ADD_DEPENDENCIES ( Half toFloat eLut )
-+ADD_DEPENDENCIES ( Half make_toFloat make_eLut )
-
- INSTALL ( TARGETS
- Half
diff --git a/ports/ilmbase/portfile.cmake b/ports/ilmbase/portfile.cmake
index 1752beb2c..9aefc8241 100644
--- a/ports/ilmbase/portfile.cmake
+++ b/ports/ilmbase/portfile.cmake
@@ -1,49 +1 @@
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- message(FATAL_ERROR "UWP build not supported")
-endif()
-
-set(ILM_VERSION 2.2.1)
-set(ILM_HASH a08ddd9069b34a93612445a445a2ddf80c0e22349bcf221a3cc6e9f5575180b08a8b597009dacabf072360e7162e15964988bc79e8ec82cf3da6507148a75320)
-
-include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ilmbase-${ILM_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "http://download.savannah.nongnu.org/releases/openexr/ilmbase-${ILM_VERSION}.tar.gz"
- FILENAME "ilmbase-${ILM_VERSION}.tar.gz"
- SHA512 ${ILM_HASH})
-
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-parallel-build.patch)
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA)
-vcpkg_install_cmake()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- foreach(SUBDIR "" "/debug")
- file(GLOB DLLS ${CURRENT_PACKAGES_DIR}${SUBDIR}/lib/*.dll)
- file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}${SUBDIR}/bin)
- file(REMOVE ${DLLS})
- endforeach()
-endif()
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-vcpkg_copy_pdbs()
-
-foreach(HEADER halfExport.h IexExport.h IexMathFloatExc.h IlmThreadExport.h ImathExport.h)
- file(READ ${CURRENT_PACKAGES_DIR}/include/OpenEXR/${HEADER} HEADER_FILE)
- if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- string(REPLACE "defined(OPENEXR_DLL)" "1" HEADER_FILE "${HEADER_FILE}")
- else()
- string(REPLACE "defined(OPENEXR_DLL)" "0" HEADER_FILE "${HEADER_FILE}")
- endif()
- file(WRITE ${CURRENT_PACKAGES_DIR}/include/OpenEXR/${HEADER} "${HEADER_FILE}")
-endforeach()
-
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ilmbase)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/ilmbase/LICENSE ${CURRENT_PACKAGES_DIR}/share/ilmbase/copyright)
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/libwebp/0001-build-fixes.patch b/ports/libwebp/0001-build-fixes.patch
new file mode 100644
index 000000000..c25ecbfee
--- /dev/null
+++ b/ports/libwebp/0001-build-fixes.patch
@@ -0,0 +1,163 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 499ddce..895fda9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -159,6 +159,10 @@ add_definitions(-DHAVE_CONFIG_H)
+ if(MSVC)
+ # avoid security warnings for e.g., fopen() used in the examples.
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
++ add_definitions(-DWEBP_HAVE_JUST_SDL_H)
++ if(BUILD_SHARED_LIBS)
++ add_definitions(-DWEBP_EXTERN=__declspec\(dllexport\))
++ endif()
+ else()
+ add_definitions(-Wall)
+ endif()
+@@ -342,19 +346,23 @@ if(WEBP_BUILD_ANIM_UTILS
+ "example_util_[^ ]*")
+ list(APPEND EXAMPLEUTIL_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/examples/stopwatch.h)
+ add_library(exampleutil ${EXAMPLEUTIL_SRCS})
++ set_target_properties(exampleutil PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ target_include_directories(
+ exampleutil
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>)
++ target_link_libraries(exampleutil imageioutil)
+
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEIOUTILS_SRCS"
+ "imageio_util_[^ ]*")
+ add_library(imageioutil ${IMAGEIOUTILS_SRCS})
++ set_target_properties(imageioutil PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ target_link_libraries(imageioutil webp)
+
+ # Image-decoding utility library.
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEDEC_SRCS"
+ "imagedec_[^ ]*")
+ add_library(imagedec ${IMAGEDEC_SRCS})
++ set_target_properties(imagedec PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ target_link_libraries(imagedec
+ imageioutil
+ webpdemux
+@@ -365,7 +373,8 @@ if(WEBP_BUILD_ANIM_UTILS
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEENC_SRCS"
+ "imageenc_[^ ]*")
+ add_library(imageenc ${IMAGEENC_SRCS})
+- target_link_libraries(imageenc webp)
++ set_target_properties(imageenc PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
++ target_link_libraries(imageenc imageioutil webp)
+
+ set_property(TARGET exampleutil
+ imageioutil
+@@ -380,7 +389,7 @@ if(WEBP_BUILD_DWEBP)
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "DWEBP_SRCS" "dwebp")
+ add_executable(dwebp ${DWEBP_SRCS})
+ target_link_libraries(dwebp exampleutil imagedec imageenc)
+- target_include_directories(dwebp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(dwebp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS dwebp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+@@ -389,13 +398,14 @@ if(WEBP_BUILD_CWEBP)
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "CWEBP_SRCS" "cwebp")
+ add_executable(cwebp ${CWEBP_SRCS})
+ target_link_libraries(cwebp exampleutil imagedec webp)
+- target_include_directories(cwebp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(cwebp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS cwebp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+ if(WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP)
+ parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "WEBP_MUX_SRCS" "")
+ add_library(libwebpmux ${WEBP_MUX_SRCS})
++ set_target_properties(libwebpmux PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ target_link_libraries(libwebpmux webp)
+ target_include_directories(libwebpmux
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+@@ -411,7 +421,7 @@ if(WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP)
+ "${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux.h;\
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/mux_types.h;\
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h;")
+- set_target_properties(libwebpmux PROPERTIES OUTPUT_NAME webpmux)
++ #set_target_properties(libwebpmux PROPERTIES OUTPUT_NAME webpmux)
+ list(APPEND INSTALLED_LIBRARIES libwebpmux)
+ configure_pkg_config("src/mux/libwebpmux.pc")
+ endif()
+@@ -428,7 +438,7 @@ if(WEBP_BUILD_GIF2WEBP)
+ webp
+ libwebpmux
+ ${WEBP_DEP_GIF_LIBRARIES})
+- target_include_directories(gif2webp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(gif2webp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS gif2webp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+@@ -444,7 +454,7 @@ if(WEBP_BUILD_IMG2WEBP)
+ imageioutil
+ webp
+ libwebpmux)
+- target_include_directories(img2webp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(img2webp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS img2webp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+@@ -464,6 +474,7 @@ if(WEBP_BUILD_VWEBP)
+ webpdemux)
+ target_include_directories(vwebp
+ PRIVATE GLUT::GLUT
++ ${CMAKE_CURRENT_SOURCE_DIR}/src
+ ${CMAKE_CURRENT_BINARY_DIR}/src
+ ${OPENGL_INCLUDE_DIR})
+ install(TARGETS vwebp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -483,7 +494,7 @@ if(WEBP_BUILD_WEBPINFO)
+ "webpinfo")
+ add_executable(webpinfo ${WEBPINFO_SRCS})
+ target_link_libraries(webpinfo exampleutil imageioutil)
+- target_include_directories(webpinfo PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(webpinfo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS webpinfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+@@ -493,7 +504,7 @@ if(WEBP_BUILD_WEBPMUX)
+ "webpmux")
+ add_executable(webpmux ${WEBPMUX_SRCS})
+ target_link_libraries(webpmux exampleutil imageioutil libwebpmux webp)
+- target_include_directories(webpmux PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(webpmux PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ install(TARGETS webpmux RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
+
+@@ -540,7 +551,7 @@ if(WEBP_BUILD_WEBP_JS)
+ # JavaScript version
+ add_executable(webp_js ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c)
+ target_link_libraries(webp_js webpdecoder SDL)
+- target_include_directories(webp_js PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
++ target_include_directories(webp_js PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ set(WEBP_HAVE_SDL 1)
+ set_target_properties(
+ webp_js
+@@ -553,7 +564,7 @@ if(WEBP_BUILD_WEBP_JS)
+ # WASM version
+ add_executable(webp_wasm ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c)
+ target_link_libraries(webp_wasm webpdecoder SDL)
+- target_include_directories(webp_wasm PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
++ target_include_directories(webp_wasm PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ set_target_properties(
+ webp_wasm
+ PROPERTIES LINK_FLAGS "-s WASM=1 -s 'BINARYEN_METHOD=\"native-wasm\"' \
+@@ -579,7 +590,7 @@ if(WEBP_BUILD_ANIM_UTILS)
+ libwebpmux
+ webpdemux
+ ${WEBP_DEP_GIF_LIBRARIES})
+- target_include_directories(anim_diff PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(anim_diff PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+
+ # anim_dump
+ include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS} ${WEBP_DEP_GIF_INCLUDE_DIRS})
+@@ -595,7 +606,7 @@ if(WEBP_BUILD_ANIM_UTILS)
+ libwebpmux
+ webpdemux
+ ${WEBP_DEP_GIF_LIBRARIES})
+- target_include_directories(anim_dump PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
++ target_include_directories(anim_dump PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src)
+ endif()
+
+ # Install the different headers and libraries.
diff --git a/ports/libwebp/0002-cmake-config-add-backwards-compatibility.patch b/ports/libwebp/0002-cmake-config-add-backwards-compatibility.patch
new file mode 100644
index 000000000..2ed199ec8
--- /dev/null
+++ b/ports/libwebp/0002-cmake-config-add-backwards-compatibility.patch
@@ -0,0 +1,69 @@
+diff --git a/cmake/WebPConfig.cmake.in b/cmake/WebPConfig.cmake.in
+index bb22164..3ad256f 100644
+--- a/cmake/WebPConfig.cmake.in
++++ b/cmake/WebPConfig.cmake.in
+@@ -4,8 +4,60 @@ set(WEBP_VERSION ${WebP_VERSION})
+ @PACKAGE_INIT@
+
+ include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
++include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
+
+-set(WebP_INCLUDE_DIRS "webp")
+-set(WEBP_INCLUDE_DIRS ${WebP_INCLUDE_DIRS})
+-set(WebP_LIBRARIES "@INSTALLED_LIBRARIES@")
+-set(WEBP_LIBRARIES "${WebP_LIBRARIES}")
++find_path(WEBP_INCLUDE_DIR NAMES webp/types.h)
++set(WebP_INCLUDE_DIR ${WEBP_INCLUDE_DIR})
++set(WebP_INCLUDE_DIRS ${WEBP_INCLUDE_DIR})
++set(WEBP_INCLUDE_DIRS ${WEBP_INCLUDE_DIR})
++
++if(NOT WEBP_BASE_LIBRARY AND NOT WebP_BASE_LIBRARY)
++ find_library(WEBP_BASE_LIBRARY_RELEASE NAMES webp)
++ find_library(WEBP_BASE_LIBRARY_DEBUG NAMES webpd)
++ select_library_configurations(WEBP_BASE)
++ set(WebP_BASE_LIBRARY ${WEBP_BASE_LIBRARY})
++ if(WEBP_BASE_LIBRARY)
++ list(APPEND WEBP_LIBRARIES "${WEBP_BASE_LIBRARY}")
++ list(APPEND WebP_LIBRARIES "${WebP_BASE_LIBRARY}")
++ endif()
++endif()
++
++if(NOT WEBP_DECODER_LIBRARY AND NOT WebP_DECODER_LIBRARY)
++ find_library(WEBP_DECODER_LIBRARY_RELEASE NAMES webpdecoder)
++ find_library(WEBP_DECODER_LIBRARY_DEBUG NAMES webpdecoderd)
++ select_library_configurations(WEBP_DECODER)
++ set(WebP_DECODER_LIBRARY ${WEBP_DECODER_LIBRARY})
++ if(WEBP_DECODER_LIBRARY)
++ list(APPEND WEBP_LIBRARIES "${WEBP_DECODER_LIBRARY}")
++ list(APPEND WebP_LIBRARIES "${WebP_DECODER_LIBRARY}")
++ endif()
++endif()
++
++if(NOT WEBP_DEMUX_LIBRARY AND NOT WebP_DEMUX_LIBRARY)
++ find_library(WEBP_DEMUX_LIBRARY_RELEASE NAMES webpdemux)
++ find_library(WEBP_DEMUX_LIBRARY_DEBUG NAMES webpdemuxd)
++ select_library_configurations(WEBP_DEMUX)
++ set(WebP_DEMUX_LIBRARY ${WEBP_DEMUX_LIBRARY})
++ if(WEBP_DEMUX_LIBRARY)
++ list(APPEND WEBP_LIBRARIES "${WEBP_DEMUX_LIBRARY}")
++ list(APPEND WebP_LIBRARIES "${WebP_DEMUX_LIBRARY}")
++ endif()
++endif()
++
++if(NOT WEBP_MUX_LIBRARY AND NOT WebP_MUX_LIBRARY)
++ find_library(WEBP_MUX_LIBRARY_RELEASE NAMES libwebpmux)
++ find_library(WEBP_MUX_LIBRARY_DEBUG NAMES libwebpmuxd)
++ select_library_configurations(WEBP_MUX)
++ set(WebP_MUX_LIBRARY ${WEBP_MUX_LIBRARY})
++ if(WEBP_MUX_LIBRARY)
++ list(APPEND WEBP_LIBRARIES "${WEBP_MUX_LIBRARY}")
++ list(APPEND WebP_LIBRARIES "${WebP_MUX_LIBRARY}")
++ endif()
++endif()
++
++set(WEBP_LIBRARY ${WEBP_BASE_LIBRARY})
++set(WebP_LIBRARY ${WebP_BASE_LIBRARY})
++if(WEBP_BASE_LIBRARY AND WEBP_INCLUDE_DIR)
++ set(WEBP_FOUND 1)
++ set(WebP_FOUND 1)
++endif()
diff --git a/ports/libwebp/CONTROL b/ports/libwebp/CONTROL
index 3e3ae16d8..9ffa6426d 100644
--- a/ports/libwebp/CONTROL
+++ b/ports/libwebp/CONTROL
@@ -1,3 +1,9 @@
Source: libwebp
-Version: 0.6.1-2
+Version: 1.0.2-1
Description: Lossy compression of digital photographic images.
+Build-Depends: opengl
+Default-Features: all
+
+Feature: all
+Description: enable all webp features
+Build-Depends: giflib, libjpeg-turbo, zlib, libpng, tiff, freeglut, sdl1
diff --git a/ports/libwebp/FindWebP.cmake b/ports/libwebp/FindWebP.cmake
deleted file mode 100644
index c39a0eb05..000000000
--- a/ports/libwebp/FindWebP.cmake
+++ /dev/null
@@ -1,27 +0,0 @@
-include(SelectLibraryConfigurations)
-include(FindPackageHandleStandardArgs)
-
-# If the user has provided ``WEBP_ROOT``, use it! Choose items found
-# at this location over system locations.
-if( EXISTS "$ENV{WEBP_ROOT}" )
- file( TO_CMAKE_PATH "$ENV{WEBP_ROOT}" WEBP_ROOT )
- set( WEBP_ROOT "${WEBP_ROOT}" CACHE PATH "Prefix for WebP installation." )
-elseif(EXISTS "$ENV{WEBP_DIR}" )
- file( TO_CMAKE_PATH "$ENV{WEBP_DIR}" WEBP_ROOT )
- set( WEBP_ROOT "${WEBP_ROOT}" CACHE PATH "Prefix for WebP installation." )
-endif()
-
-if(NOT WEBP_INCLUDE_DIR)
- FIND_PATH(WEBP_INCLUDE_DIR NAMES webp/decode.h)
-endif()
-
-if(NOT WEBP_LIBRARY)
- find_library(WEBP_LIBRARY_RELEASE NAMES webp PATHS ${WEBP_ROOT} PATH_SUFFIXES webp )
- find_library(WEBP_LIBRARY_DEBUG NAMES webpd PATHS ${WEBP_ROOT} PATH_SUFFIXES debug webp webp/debug debug/webp)
- select_library_configurations(WEBP)
-endif()
-
-SET(WEBP_LIBRARIES ${WEBP_LIBRARY})
-SET(WEBP_INCLUDE_DIRS ${WEBP_INCLUDE_DIR})
-
-find_package_handle_standard_args(WEBP REQUIRED_VARS WEBP_LIBRARY WEBP_INCLUDE_DIR)
diff --git a/ports/libwebp/build_fixes.patch b/ports/libwebp/build_fixes.patch
deleted file mode 100644
index 72cb304a9..000000000
--- a/ports/libwebp/build_fixes.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3b105e37..f9b806c4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -106,6 +106,9 @@ endforeach()
- if(MSVC)
- # avoid security warnings for e.g., fopen() used in the examples.
- add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-+ if(BUILD_SHARED_LIBS)
-+ add_definitions(-DWEBP_EXTERN=__declspec\(dllexport\))
-+ endif()
- else()
- add_definitions(-Wall)
- endif()
-@@ -235,6 +238,10 @@ if(WEBP_BUILD_GIF2WEBP AND NOT GIF_FOUND)
- endif()
-
- if(WEBP_BUILD_GIF2WEBP OR WEBP_BUILD_IMG2WEBP)
-+ set(WEBP_BUILD_MUX ON)
-+endif()
-+
-+if(WEBP_BUILD_MUX)
- parse_Makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/src/mux "WEBP_MUX_SRCS"
- "")
- add_library(webpmux ${WEBP_MUX_SRCS})
-@@ -322,6 +329,7 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/decode.h
- ${CMAKE_CURRENT_SOURCE_DIR}/src/webp/types.h
- DESTINATION include/webp)
- install(TARGETS ${INSTALLED_LIBRARIES}
-+ RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib)
-
diff --git a/ports/libwebp/portfile.cmake b/ports/libwebp/portfile.cmake
index e4f5dbbc8..bae24ddff 100644
--- a/ports/libwebp/portfile.cmake
+++ b/ports/libwebp/portfile.cmake
@@ -1,37 +1,84 @@
include(vcpkg_common_functions)
vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO webmproject/libwebp
- REF v0.6.1
- SHA512 313b345a01c91eb07c2e4d46b93fcda9c50dca9e05e39f757238a679355514a2e9bc9bc220f3d3eb6d6a55148957cb2be14dac330203953337759841af1a32bf
- HEAD_REF master
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO webmproject/libwebp
+ REF v1.0.2
+ SHA512 27ca4e7c87d3114a5d3dba6801b5608207a9adc44d0fa62f7523d39be789d389d342d9db5e28c9301eff8fcb1471809c76680a68abd4ff97217b17dd13c4e22b
+ HEAD_REF master
+ PATCHES
+ 0001-build-fixes.patch
+ 0002-cmake-config-add-backwards-compatibility.patch
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/build_fixes.patch
-)
+set(WEBP_BUILD_ANIM_UTILS OFF)
+set(WEBP_BUILD_GIF2WEBP OFF)
+set(WEBP_BUILD_IMG2WEBP OFF)
+set(WEBP_BUILD_VWEBP OFF)
+set(WEBP_BUILD_WEBPINFO OFF)
+set(WEBP_BUILD_WEBPMUX OFF)
+set(WEBP_BUILD_EXTRAS OFF)
+set(WEBP_NEAR_LOSSLESS OFF)
+if("all" IN_LIST FEATURES)
+ set(WEBP_BUILD_ANIM_UTILS ON)
+ set(WEBP_NEAR_LOSSLESS ON)
+ set(WEBP_BUILD_GIF2WEBP ON)
+ set(WEBP_BUILD_IMG2WEBP ON)
+ set(WEBP_BUILD_VWEBP ON)
+ set(WEBP_BUILD_WEBPINFO ON)
+ set(WEBP_BUILD_WEBPMUX ON)
+ set(WEBP_BUILD_EXTRAS ON)
+endif()
vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS
- -DCMAKE_DEBUG_POSTFIX=d
- -DWEBP_BUILD_MUX=ON
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWEBP_ENABLE_SIMD:BOOL=ON
+ -DWEBP_BUILD_ANIM_UTILS:BOOL=${WEBP_BUILD_ANIM_UTILS}
+ -DWEBP_BUILD_CWEBP:BOOL=OFF
+ -DWEBP_BUILD_DWEBP:BOOL=OFF
+ -DWEBP_BUILD_GIF2WEBP:BOOL=${WEBP_BUILD_GIF2WEBP}
+ -DWEBP_BUILD_IMG2WEBP:BOOL=${WEBP_BUILD_IMG2WEBP}
+ -DWEBP_BUILD_VWEBP:BOOL=${WEBP_BUILD_VWEBP}
+ -DWEBP_BUILD_WEBPINFO:BOOL=${WEBP_BUILD_WEBPINFO}
+ -DWEBP_BUILD_WEBPMUX:BOOL=${WEBP_BUILD_WEBPMUX}
+ -DWEBP_BUILD_EXTRAS:BOOL=${WEBP_BUILD_EXTRAS}
+ -DWEBP_BUILD_WEBP_JS:BOOL=OFF
+ -DWEBP_NEAR_LOSSLESS:BOOL=${WEBP_NEAR_LOSSLESS}
+ -DWEBP_ENABLE_SWAP_16BIT_CSP:BOOL=OFF
+ OPTIONS_DEBUG
+ -DCMAKE_DEBUG_POSTFIX=d
)
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/WebP/cmake/" TARGET_PATH "share/WebP/")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share)
-# Handle copyright
+if("all" IN_LIST FEATURES)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/get_disto.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/gif2webp.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/img2webp.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vwebp.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/vwebp_sdl.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/webpinfo.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/webpmux.exe)
+ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/webp_quality.exe)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/libwebp/)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/get_disto.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/get_disto.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/gif2webp.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/gif2webp.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/img2webp.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/img2webp.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vwebp.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/vwebp.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/vwebp_sdl.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/vwebp_sdl.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/webpinfo.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/webpinfo.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/webpmux.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/webpmux.exe)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/bin/webp_quality.exe ${CURRENT_PACKAGES_DIR}/tools/libwebp/webp_quality.exe)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/libwebp)
+endif()
+
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebp)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libwebp/COPYING ${CURRENT_PACKAGES_DIR}/share/libwebp/copyright)
-
-vcpkg_copy_pdbs()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindWebP.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libwebp)
diff --git a/ports/openexr/CMakeLists.txt.patch b/ports/openexr/CMakeLists.txt.patch
deleted file mode 100644
index 0ee0110d5..000000000
--- a/ports/openexr/CMakeLists.txt.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8c0a385..887ddf5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -157,8 +157,8 @@ IF (HAVE_SYSCONF_NPROCESSORS_ONLN)
- FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_SYSCONF_NPROCESSORS_ONLN 1\n" )
- ENDIF()
-
--SET (OPENEXR_LIBSUFFIX "")
--SET (ILMBASE_LIBSUFFIX "")
-+SET (OPENEXR_LIBSUFFIX "" CACHE STRING "Default suffix for OpenEXR")
-+SET (ILMBASE_LIBSUFFIX "" CACHE STRING "Default suffix for ILMBase")
- IF (NAMESPACE_VERSIONING)
- SET ( OPENEXR_LIBSUFFIX "-${OPENEXR_VERSION_API}" )
- # assume same NAMESPACE_VERSION setting for IlmBase for now
-@@ -188,32 +188,6 @@ SET_TARGET_PROPERTIES ( IlmImfUtil
- SOVERSION 23
- OUTPUT_NAME "IlmImfUtil${OPENEXR_LIBSUFFIX}"
- )
--
--##########################
--# Example Code
--##########################
--ADD_SUBDIRECTORY ( IlmImfExamples )
--
--
--##########################
--# Tests
--##########################
--ADD_SUBDIRECTORY ( IlmImfTest )
--ADD_SUBDIRECTORY ( IlmImfUtilTest )
--ADD_SUBDIRECTORY ( IlmImfFuzzTest )
--
--
--##########################
--# Binaries / Utilities
--##########################
--ADD_SUBDIRECTORY ( exrheader )
--ADD_SUBDIRECTORY ( exrmaketiled )
--ADD_SUBDIRECTORY ( exrstdattr )
--ADD_SUBDIRECTORY ( exrmakepreview )
--ADD_SUBDIRECTORY ( exrenvmap )
--ADD_SUBDIRECTORY ( exrmultiview )
--ADD_SUBDIRECTORY ( exrmultipart )
--
-
- ##########################
- # Installation
-@@ -224,37 +198,3 @@ INSTALL ( FILES
- DESTINATION
- ${CMAKE_INSTALL_PREFIX}/include/OpenEXR
- )
--
--# Documentation
--INSTALL ( FILES
-- doc/TechnicalIntroduction.pdf
-- doc/ReadingAndWritingImageFiles.pdf
-- doc/OpenEXRFileLayout.pdf
-- doc/MultiViewOpenEXR.pdf
-- doc/InterpretingDeepPixels.pdf
-- doc/TheoryDeepPixels.pdf
-- DESTINATION
-- ${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}
-- )
--
--# Examples
--INSTALL ( FILES
-- IlmImfExamples/main.cpp
-- IlmImfExamples/drawImage.cpp
-- IlmImfExamples/rgbaInterfaceExamples.cpp
-- IlmImfExamples/rgbaInterfaceTiledExamples.cpp
-- IlmImfExamples/generalInterfaceExamples.cpp
-- IlmImfExamples/lowLevelIoExamples.cpp
-- IlmImfExamples/previewImageExamples.cpp
-- IlmImfExamples/generalInterfaceTiledExamples.cpp
-- IlmImfExamples/generalInterfaceTiledExamples.h
-- IlmImfExamples/drawImage.h
-- IlmImfExamples/rgbaInterfaceExamples.h
-- IlmImfExamples/generalInterfaceExamples.h
-- IlmImfExamples/rgbaInterfaceTiledExamples.h
-- IlmImfExamples/lowLevelIoExamples.h
-- IlmImfExamples/previewImageExamples.h
-- IlmImfExamples/namespaceAlias.h
-- DESTINATION
-- ${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}/examples
-- )
diff --git a/ports/openexr/CONTROL b/ports/openexr/CONTROL
index 752dafc6d..ea85a082f 100644
--- a/ports/openexr/CONTROL
+++ b/ports/openexr/CONTROL
@@ -1,4 +1,4 @@
Source: openexr
-Version: 2.2.1-1
+Version: 2.3.0-2
Description: OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications
-Build-Depends: zlib, ilmbase
+Build-Depends: zlib
diff --git a/ports/openexr/FindOpenEXR.cmake b/ports/openexr/FindOpenEXR.cmake
index cfff7824c..a381c6db9 100644
--- a/ports/openexr/FindOpenEXR.cmake
+++ b/ports/openexr/FindOpenEXR.cmake
@@ -1,13 +1,87 @@
include(FindPackageHandleStandardArgs)
+find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
find_path(OPENEXR_INCLUDE_PATHS NAMES ImfRgbaFile.h PATH_SUFFIXES OpenEXR)
-find_library(OPENEXR_HALF_LIBRARY NAMES Half)
-find_library(OPENEXR_IEX_LIBRARY NAMES Iex-2_2)
-find_library(OPENEXR_IMATH_LIBRARY NAMES Imath-2_2)
-find_library(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf-2_2)
-find_library(OPENEXR_ILMTHREAD_LIBRARY NAMES IlmThread-2_2)
+file(STRINGS "${OpenEXR_INCLUDE_DIRS}/OpenEXR/OpenEXRConfig.h" OPENEXR_CONFIG_H)
-set(OPENEXR_LIBRARIES ${OPENEXR_HALF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY})
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MAJOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MAJOR "${OPENEXR_CONFIG_H}")
+string(REGEX REPLACE "^.*define OPENEXR_VERSION_MINOR ([0-9]+).*$" "\\1" OpenEXR_VERSION_MINOR "${OPENEXR_CONFIG_H}")
+set(OpenEXR_LIB_SUFFIX "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
-find_package_handle_standard_args(OPENEXR REQUIRED_VARS OPENEXR_LIBRARIES OPENEXR_INCLUDE_PATHS)
+include(SelectLibraryConfigurations)
+
+if(NOT OpenEXR_BASE_LIBRARY)
+ find_library(OpenEXR_BASE_LIBRARY_RELEASE NAMES IlmImf-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_BASE_LIBRARY_DEBUG NAMES IlmImf-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_BASE)
+endif()
+
+if(NOT OpenEXR_UTIL_LIBRARY)
+ find_library(OpenEXR_UTIL_LIBRARY_RELEASE NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_UTIL_LIBRARY_DEBUG NAMES IlmImfUtil-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_UTIL)
+endif()
+
+if(NOT OpenEXR_HALF_LIBRARY)
+ find_library(OpenEXR_HALF_LIBRARY_RELEASE NAMES Half-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_HALF_LIBRARY_DEBUG NAMES Half-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_HALF)
+endif()
+
+if(NOT OpenEXR_IEX_LIBRARY)
+ find_library(OpenEXR_IEX_LIBRARY_RELEASE NAMES Iex-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_IEX_LIBRARY_DEBUG NAMES Iex-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_IEX)
+endif()
+
+if(NOT OpenEXR_MATH_LIBRARY)
+ find_library(OpenEXR_MATH_LIBRARY_RELEASE NAMES Imath-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_MATH_LIBRARY_DEBUG NAMES Imath-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_MATH)
+endif()
+
+if(NOT OpenEXR_THREAD_LIBRARY)
+ find_library(OpenEXR_THREAD_LIBRARY_RELEASE NAMES IlmThread-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_THREAD_LIBRARY_DEBUG NAMES IlmThread-${OpenEXR_LIB_SUFFIX}_d)
+ select_library_configurations(OpenEXR_THREAD)
+endif()
+
+if(NOT OpenEXR_IEXMATH_LIBRARY)
+ find_library(OpenEXR_IEXMATH_LIBRARY_RELEASE NAMES IexMath-${OpenEXR_LIB_SUFFIX})
+ find_library(OpenEXR_IEXMATH_LIBRARY_DEBUG NAMES IexMath-${OpenEXR_LIB_SUFFIX}d)
+ select_library_configurations(OpenEXR_IEXMATH)
+endif()
+
+set(OPENEXR_HALF_LIBRARY "${OpenEXR_HALF_LIBRARY}")
+set(OPENEXR_IEX_LIBRARY "${OpenEXR_IEX_LIBRARY}")
+set(OPENEXR_IMATH_LIBRARY "${OpenEXR_MATH_LIBRARY}")
+set(OPENEXR_ILMIMF_LIBRARY "${OpenEXR_BASE_LIBRARY}")
+set(OPENEXR_ILMIMFUTIL_LIBRARY "${OpenEXR_UTIL_LIBRARY}")
+set(OPENEXR_ILMTHREAD_LIBRARY "${OpenEXR_THREAD_LIBRARY}")
+
+set(OpenEXR_LIBRARY "${OpenEXR_BASE_LIBRARY}")
+
+set(OpenEXR_LIBRARIES
+ ${OpenEXR_LIBRARY}
+ ${OpenEXR_MATH_LIBRARY}
+ ${OpenEXR_IEXMATH_LIBRARY}
+ ${OpenEXR_UTIL_LIBRARY}
+ ${OpenEXR_HALF_LIBRARY}
+ ${OpenEXR_IEX_LIBRARY}
+ ${OpenEXR_THREAD_LIBRARY}
+)
+
+set(OPENEXR_LIBRARIES
+ ${OPENEXR_HALF_LIBRARY}
+ ${OPENEXR_IEX_LIBRARY}
+ ${OPENEXR_IMATH_LIBRARY}
+ ${OPENEXR_ILMIMF_LIBRARY}
+ ${OPENEXR_ILMTHREAD_LIBRARY}
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR REQUIRED_VARS OpenEXR_LIBRARIES OpenEXR_INCLUDE_DIRS)
+
+if(OpenEXR_FOUND)
+ set(OPENEXR_FOUND 1)
+endif()
diff --git a/ports/openexr/add-missing-export.patch b/ports/openexr/add-missing-export.patch
deleted file mode 100644
index c78842d18..000000000
--- a/ports/openexr/add-missing-export.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/IlmImf/ImfHeader.h b/IlmImf/ImfHeader.h
-index 756a62e..dd71e0e 100644
---- a/IlmImf/ImfHeader.h
-+++ b/IlmImf/ImfHeader.h
-@@ -493,7 +493,7 @@ class Header::ConstIterator
- //
- //------------------------------------------------------------------------
-
--void staticInitialize ();
-+IMF_EXPORT void staticInitialize ();
-
-
- //-----------------
diff --git a/ports/openexr/fix-static-linking.patch b/ports/openexr/fix-static-linking.patch
deleted file mode 100644
index af2f067f1..000000000
--- a/ports/openexr/fix-static-linking.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/IlmImf/CMakeLists.txt b/IlmImf/CMakeLists.txt
-index 18d90edc..21bbaa27 100644
---- a/IlmImf/CMakeLists.txt
-+++ b/IlmImf/CMakeLists.txt
-@@ -25,8 +25,8 @@ ADD_EXECUTABLE ( dwaLookups
-
- TARGET_LINK_LIBRARIES ( dwaLookups
- Half
-- Iex${ILMBASE_LIBSUFFIX}
- IlmThread${ILMBASE_LIBSUFFIX}
-+ Iex${ILMBASE_LIBSUFFIX}
- ${PTHREAD_LIB}
- )
-
diff --git a/ports/openexr/portfile.cmake b/ports/openexr/portfile.cmake
index b02a487a9..c32d07123 100644
--- a/ports/openexr/portfile.cmake
+++ b/ports/openexr/portfile.cmake
@@ -1,63 +1,71 @@
-set(OPENEXR_VERSION 2.2.1)
-set(OPENEXR_HASH 192100c6ac47534f3a93c55327d2ab90b07a8265156855086b326184328c257dcde12991b3f3f1831e2df4226fe884adcfe481c2f02a157c715aee665e89a480)
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openexr-${OPENEXR_VERSION})
-vcpkg_download_distfile(ARCHIVE
- URLS "http://download.savannah.nongnu.org/releases/openexr/openexr-${OPENEXR_VERSION}.tar.gz"
- FILENAME "openexr-${OPENEXR_VERSION}.tar.gz"
- SHA512 ${OPENEXR_HASH})
-
-vcpkg_extract_source_archive(${ARCHIVE})
-vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- "${CMAKE_CURRENT_LIST_DIR}/add-missing-export.patch"
- "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.patch"
- "${CMAKE_CURRENT_LIST_DIR}/fix-static-linking.patch"
-)
-# Ensure helper executables can run during build
-set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin")
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "UWP build not supported")
+endif()
+
+set(OPENEXR_VERSION 2.3.0)
+set(OPENEXR_HASH 268ae64b40d21d662f405fba97c307dad1456b7d996a447aadafd41b640ca736d4851d9544b4741a94e7b7c335fe6e9d3b16180e710671abfc0c8b2740b147b2)
-# In debug build buildsystem cannot locate IlmBase headers
-set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG}")
-set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -I\"${CURRENT_INSTALLED_DIR}/include/OpenEXR\"")
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO openexr/openexr
+ REF v${OPENEXR_VERSION}
+ SHA512 ${OPENEXR_HASH}
+ HEAD_REF master
+)
vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS_DEBUG
- -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR}/debug
- OPTIONS_RELEASE
- -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR})
+ PREFER_NINJA
+ OPTIONS
+ -DOPENEXR_BUILD_PYTHON_LIBS:BOOL=FALSE
+ OPTIONS_DEBUG
+ -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR}/debug
+ OPTIONS_RELEASE
+ -DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR})
vcpkg_install_cmake()
-# if you need to have OpenEXR tools, edit CMakeLists.txt.patch and remove the part that disables building executables,
-# then remove the following line which deletes them and finally use vcpkg_copy_tool_dependencies() to save them
-# (may require additional patching to the OpenEXR toolchain which is really broken)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- foreach(SUBDIR "" "/debug")
- file(GLOB DLLS ${CURRENT_PACKAGES_DIR}${SUBDIR}/lib/*.dll)
- file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}${SUBDIR}/bin)
- file(REMOVE ${DLLS})
- endforeach()
+# NOTE: Only use ".exe" extension on Windows executables.
+# Is there a cleaner way to do this?
+if(WIN32)
+ set(EXECUTABLE_SUFFIX ".exe")
+else()
+ set(EXECUTABLE_SUFFIX "")
endif()
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrenvmap${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrheader${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrmakepreview${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrmaketiled${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrmultipart${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrmultiview${EXECUTABLE_SUFFIX})
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/exrstdattr${EXECUTABLE_SUFFIX})
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/openexr/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrenvmap${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrenvmap${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrheader${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrheader${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrmakepreview${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrmakepreview${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrmaketiled${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrmaketiled${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrmultipart${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrmultipart${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrmultiview${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrmultiview${EXECUTABLE_SUFFIX})
+file(RENAME ${CURRENT_PACKAGES_DIR}/bin/exrstdattr${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/openexr/exrstdattr${EXECUTABLE_SUFFIX})
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/openexr)
vcpkg_copy_pdbs()
-file(READ ${CURRENT_PACKAGES_DIR}/include/OpenEXR/ImfExport.h HEADER_FILE)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- string(REPLACE "defined(OPENEXR_DLL)" "1" HEADER_FILE "${HEADER_FILE}")
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(OPENEXR_PORT_DIR "openexr")
else()
- string(REPLACE "defined(OPENEXR_DLL)" "0" HEADER_FILE "${HEADER_FILE}")
+ set(OPENEXR_PORT_DIR "OpenEXR")
endif()
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/OpenEXR/ImfExport.h "${HEADER_FILE}")
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openexr)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/openexr/LICENSE ${CURRENT_PACKAGES_DIR}/share/openexr/copyright)
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR})
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR}/copyright)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindOpenEXR.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/openexr)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindOpenEXR.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR})
diff --git a/ports/openvdb/0001-fix-cmake-modules.patch b/ports/openvdb/0001-fix-cmake-modules.patch
new file mode 100644
index 000000000..1e613e602
--- /dev/null
+++ b/ports/openvdb/0001-fix-cmake-modules.patch
@@ -0,0 +1,198 @@
+diff --git a/cmake/FindBlosc.cmake b/cmake/FindBlosc.cmake
+index 2d9d9d3..e9b4abc 100644
+--- a/cmake/FindBlosc.cmake
++++ b/cmake/FindBlosc.cmake
+@@ -37,11 +37,7 @@
+
+ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-FIND_PATH( BLOSC_LOCATION include/blosc.h
+- "$ENV{BLOSC_ROOT}"
+- NO_DEFAULT_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+- )
++FIND_PATH( BLOSC_LOCATION include/blosc.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( Blosc
+ REQUIRED_VARS BLOSC_LOCATION
+@@ -53,7 +49,7 @@ IF ( BLOSC_FOUND )
+ CACHE STRING "Blosc library directories")
+
+ SET ( _blosc_library_name "blosc" )
+-
++
+ # Static library setup
+ IF (Blosc_USE_STATIC_LIBS)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP ${CMAKE_FIND_LIBRARY_SUFFIXES})
+@@ -69,7 +65,7 @@ IF ( BLOSC_FOUND )
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+-
++
+ # Static library tear down
+ IF (Blosc_USE_STATIC_LIBS)
+ SET( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP} )
+diff --git a/cmake/FindGLEW.cmake b/cmake/FindGLEW.cmake
+index 0b72457..75951a6 100644
+--- a/cmake/FindGLEW.cmake
++++ b/cmake/FindGLEW.cmake
+@@ -39,11 +39,7 @@
+
+ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-FIND_PATH( GLEW_LOCATION include/GL/glew.h
+- "$ENV{GLEW_ROOT}"
+- NO_DEFAULT_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+- )
++FIND_PATH( GLEW_LOCATION include/GL/glew.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( GLEW
+ REQUIRED_VARS GLEW_LOCATION
+diff --git a/cmake/FindGLFW3.cmake b/cmake/FindGLFW3.cmake
+index cea0b86..07ea09e 100644
+--- a/cmake/FindGLFW3.cmake
++++ b/cmake/FindGLFW3.cmake
+@@ -39,11 +39,7 @@
+
+ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-FIND_PATH( GLFW3_LOCATION include/GLFW/glfw3.h
+- "$ENV{GLFW3_ROOT}"
+- NO_DEFAULT_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+-)
++FIND_PATH( GLFW3_LOCATION include/GLFW/glfw3.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( GLFW3
+ REQUIRED_VARS GLFW3_LOCATION
+diff --git a/cmake/FindILMBase.cmake b/cmake/FindILMBase.cmake
+index 664affd..5197110 100644
+--- a/cmake/FindILMBase.cmake
++++ b/cmake/FindILMBase.cmake
+@@ -43,11 +43,7 @@
+
+ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h
+- "$ENV{ILMBASE_ROOT}"
+- NO_DEFAULT_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+- )
++FIND_PATH ( ILMBASE_LOCATION include/OpenEXR/IlmBaseConfig.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( ILMBase
+ REQUIRED_VARS ILMBASE_LOCATION
+@@ -70,11 +66,13 @@ IF ( ILMBASE_FOUND )
+ SET ( IEXMATH_LIBRARY_NAME IexMath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( ILMTHREAD_LIBRARY_NAME IlmThread-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ SET ( IMATH_LIBRARY_NAME Imath-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
++ SET ( HALF_LIBRARY_NAME Half-${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR} )
+ ELSE ( ILMBASE_NAMESPACE_VERSIONING )
+ SET ( IEX_LIBRARY_NAME Iex )
+ SET ( IEXMATH_LIBRARY_NAME IexMath )
+ SET ( ILMTHREAD_LIBRARY_NAME IlmThread )
+ SET ( IMATH_LIBRARY_NAME Imath )
++ SET ( HALF_LIBRARY_NAME Half )
+ ENDIF ( ILMBASE_NAMESPACE_VERSIONING )
+
+ SET ( ILMBASE_INCLUDE_DIRS
+@@ -84,7 +82,7 @@ IF ( ILMBASE_FOUND )
+ SET ( ILMBASE_LIBRARYDIR ${ILMBASE_LOCATION}/lib
+ CACHE STRING "ILMBase library directories")
+ SET ( ILMBASE_FOUND TRUE )
+-
++
+ SET ( ORIGINAL_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ IF (Ilmbase_USE_STATIC_LIBS)
+ IF (APPLE)
+@@ -129,14 +127,14 @@ IF ( ILMBASE_FOUND )
+ ELSEIF (WIN32)
+ # Link library
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
+- FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR} )
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEX_LIBRARY ${IEX_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IEXMATH_LIBRARY ${IEXMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_ILMTHREAD_LIBRARY ${ILMTHREAD_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ FIND_LIBRARY ( Ilmbase_IMATH_LIBRARY ${IMATH_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR} )
+ # Load library
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+- FIND_LIBRARY ( Ilmbase_HALF_DLL Half PATHS ${ILMBASE_LOCATION}/bin
++ FIND_LIBRARY ( Ilmbase_HALF_DLL ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LOCATION}/bin
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+@@ -157,7 +155,7 @@ IF ( ILMBASE_FOUND )
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+ ELSE (APPLE)
+- FIND_LIBRARY ( Ilmbase_HALF_LIBRARY Half PATHS ${ILMBASE_LIBRARYDIR}
++ FIND_LIBRARY ( Ilmbase_HALF_LIBRARY ${HALF_LIBRARY_NAME} PATHS ${ILMBASE_LIBRARYDIR}
+ NO_DEFAULT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ )
+diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake
+index 6d69c03..5ecf8fa 100644
+--- a/cmake/FindOpenEXR.cmake
++++ b/cmake/FindOpenEXR.cmake
+@@ -38,11 +38,7 @@
+
+ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+-FIND_PATH ( OPENEXR_LOCATION include/OpenEXR/OpenEXRConfig.h
+- ENV OPENEXR_ROOT
+- NO_DEFAULT_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+- )
++FIND_PATH ( OPENEXR_LOCATION include/OpenEXR/OpenEXRConfig.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( OpenEXR
+ REQUIRED_VARS OPENEXR_LOCATION
+@@ -59,7 +55,7 @@ IF ( OPENEXR_FOUND )
+ FILE ( STRINGS "${OPENEXR_LOCATION}/include/OpenEXR/OpenEXRConfig.h" _openexr_version_minor_string REGEX "#define OPENEXR_VERSION_MINOR ")
+ STRING ( REGEX REPLACE "#define OPENEXR_VERSION_MINOR" "" _openexr_version_minor_unstrip "${_openexr_version_minor_string}")
+ STRING ( STRIP "${_openexr_version_minor_unstrip}" OPENEXR_VERSION_MINOR )
+-
++
+ MESSAGE ( STATUS "Found OpenEXR v${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR} at ${OPENEXR_LOCATION}" )
+
+ IF ( OPENEXR_NAMESPACE_VERSIONING )
+@@ -67,7 +63,7 @@ IF ( OPENEXR_FOUND )
+ ELSE ( OPENEXR_NAMESPACE_VERSIONING )
+ SET ( ILMIMF_LIBRARY_NAME IlmImf )
+ ENDIF ( OPENEXR_NAMESPACE_VERSIONING )
+-
++
+ SET ( OPENEXR_INCLUDE_DIRS
+ ${OPENEXR_LOCATION}/include
+ ${OPENEXR_LOCATION}/include/OpenEXR
+@@ -120,6 +116,5 @@ IF ( OPENEXR_FOUND )
+ ENDIF ()
+
+ # SET( Openexr_ILMIMF_LIBRARY ${OPENEXR_ILMIMF_LIBRARY_PATH} CACHE STRING "Openexr's IlmImf library")
+-
+-ENDIF ( OPENEXR_FOUND )
+
++ENDIF ( OPENEXR_FOUND )
+diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake
+index 8a56ec0..9f5a7b4 100644
+--- a/cmake/FindTBB.cmake
++++ b/cmake/FindTBB.cmake
+@@ -42,14 +42,7 @@ FIND_PACKAGE ( PackageHandleStandardArgs )
+
+ # SET ( TBB_FOUND FALSE )
+
+-FIND_PATH( TBB_LOCATION include/tbb/tbb.h
+- "$ENV{TBB_ROOT}"
+- NO_DEFAULT_PATH
+- NO_CMAKE_ENVIRONMENT_PATH
+- NO_CMAKE_PATH
+- NO_SYSTEM_ENVIRONMENT_PATH
+- NO_CMAKE_SYSTEM_PATH
+- )
++FIND_PATH( TBB_LOCATION include/tbb/tbb.h)
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS ( TBB
+ REQUIRED_VARS TBB_LOCATION
diff --git a/ports/openvdb/0002-add-custom-options.patch b/ports/openvdb/0002-add-custom-options.patch
new file mode 100644
index 000000000..5e8d49091
--- /dev/null
+++ b/ports/openvdb/0002-add-custom-options.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b35ec70..801e7df 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -38,6 +38,9 @@ if(CCACHE_FOUND)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+ endif(CCACHE_FOUND)
+
++OPTION ( OPENVDB_BUILD_TOOLS "Build OpenVDB utilities" OFF )
++OPTION ( OPENVDB_STATIC "Build statically linked library" OFF )
++OPTION ( OPENVDB_SHARED "Build dynamically linked library" ON )
+ OPTION ( OPENVDB_BUILD_UNITTESTS "Build the OpenVDB unit tests" ON )
+ OPTION ( OPENVDB_BUILD_DOCS "Build the OpenVDB documentation" OFF )
+ OPTION ( OPENVDB_BUILD_PYTHON_MODULE "Build the pyopenvdb Python module" ON )
diff --git a/ports/openvdb/AddLinkageAndToolsChoice.patch b/ports/openvdb/0003-build-only-necessary-targets.patch
index 57078be15..55b480ce4 100644
--- a/ports/openvdb/AddLinkageAndToolsChoice.patch
+++ b/ports/openvdb/0003-build-only-necessary-targets.patch
@@ -1,81 +1,63 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 712fb1d..440a63a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -32,6 +32,9 @@ PROJECT ( OpenVDB )
-
- ENABLE_TESTING()
-
-+OPTION ( OPENVDB_BUILD_TOOLS "Build OpenVDB utilities" ON )
-+OPTION ( OPENVDB_STATIC "Build statically linked library" ON )
-+OPTION ( OPENVDB_SHARED "Build dynamically linked library" ON )
- OPTION ( OPENVDB_BUILD_UNITTESTS "Build the OpenVDB unit tests" ON )
- OPTION ( OPENVDB_BUILD_DOCS "Build the OpenVDB documentation" OFF )
- OPTION ( OPENVDB_BUILD_PYTHON_MODULE "Build the pyopenvdb Python module" ON )
diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt
-index 5703eb9..6ff3c6a 100644
+index 9404dbc..b4129e3 100644
--- a/openvdb/CMakeLists.txt
+++ b/openvdb/CMakeLists.txt
-@@ -26,6 +26,7 @@
- #
- PROJECT ( OpenVDBCore )
+@@ -29,12 +29,13 @@ PROJECT ( OpenVDBCore )
+
+ set(CMAKE_CXX_STANDARD 11)
+IF ( OPENVDB_BUILD_TOOLS )
IF ( USE_GLFW3 )
FIND_PACKAGE ( GLFW3 REQUIRED )
SET ( OPENVDB_USE_GLFW_FLAG "-DOPENVDB_USE_GLFW_3" )
-@@ -42,9 +43,12 @@ ELSE ()
+ IF ( UNIX AND NOT APPLE )
+ SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" )
+- ENDIF ( UNIX AND NOT APPLE )
++ ENDIF ()
+ SET ( GLFW_LINK_LIBRARY ${GLFW3_glfw_LIBRARY} )
+ SET ( GLFW_INCLUDE_DIRECTORY ${GLFW3_INCLUDE_DIR} CACHE STRING "GLFW3 include directory")
+ ELSE ()
+@@ -45,12 +46,14 @@ ELSE ()
SET ( GLFW_LINK_LIBRARY ${GLFW_glfw_LIBRARY} )
SET ( GLFW_INCLUDE_DIRECTORY ${GLFW_INCLUDE_DIR} CACHE STRING "GLFW include directory")
ENDIF ()
-+ENDIF ( OPENVDB_BUILD_TOOLS )
++ENDIF ()
- IF (WIN32)
-+ IF ( OPENVDB_BUILD_TOOLS )
- FIND_PACKAGE ( GLEW REQUIRED )
-+ ENDIF ( OPENVDB_BUILD_TOOLS )
- ELSE ()
- FIND_PACKAGE ( Threads REQUIRED )
- ENDIF()
-@@ -75,7 +79,7 @@ SET ( OPENVDB_PATCH_VERSION_NUMBER ${_openvdb_patch_version_number} CACHE STRING
- # MESSAGE ( "OPENVDB_MINOR_VERSION_NUMBER = ${OPENVDB_MINOR_VERSION_NUMBER}" )
- # MESSAGE ( "OPENVDB_PATCH_VERSION_NUMBER = ${OPENVDB_PATCH_VERSION_NUMBER}" )
-
--FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} )
-+FIND_PACKAGE ( Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system thread date_time ${OPENVDB_BOOST_PYTHON_LIBRARY_COMPONENT_NAME} )
- IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
- ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB )
- ENDIF ()
-@@ -85,7 +89,9 @@ FIND_PACKAGE ( TBB REQUIRED )
- FIND_PACKAGE ( ZLIB REQUIRED )
- FIND_PACKAGE ( ILMBase REQUIRED )
- FIND_PACKAGE ( OpenEXR REQUIRED )
+-IF (WIN32)
+IF ( OPENVDB_BUILD_TOOLS )
- FIND_PACKAGE ( OpenGL REQUIRED )
++IF ( WIN32 )
+ FIND_PACKAGE ( GLEW REQUIRED )
+-ELSE ()
+- FIND_PACKAGE ( Threads REQUIRED )
+-ENDIF()
+ENDIF ()
- IF (OPENVDB_BUILD_DOCS)
- FIND_PACKAGE ( Doxygen REQUIRED )
- ENDIF ()
-@@ -127,7 +133,10 @@ INCLUDE_DIRECTORIES ( SYSTEM ${BLOSC_INCLUDE_DIR} )
++ENDIF ()
++FIND_PACKAGE ( Threads REQUIRED )
+
+ # Determine OpenVDB version
+ #define OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER 4
+@@ -130,7 +133,12 @@ INCLUDE_DIRECTORIES ( SYSTEM ${BLOSC_INCLUDE_DIR} )
INCLUDE_DIRECTORIES ( SYSTEM ${CPPUNIT_INCLUDE_DIR} )
IF (WIN32)
- ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX -DHALF_EXPORTS -DOPENVDB_DLL )
++ ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE )
++ ADD_DEFINITIONS ( -D__TBBMALLOC_NO_IMPLICIT_LINKAGE )
+ ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX )
+ IF ( OPENVDB_SHARED )
-+ ADD_DEFINITIONS ( -DOPENVDB_DLL )
++ ADD_DEFINITIONS ( -DOPENEXR_DLL -DOPENVDB_DLL )
+ ENDIF ()
ELSE ()
ADD_DEFINITIONS ( -pthread -fPIC )
ENDIF ()
-@@ -167,16 +176,20 @@ SET ( OPENVDB_LIBRARY_SOURCE_FILES
+@@ -170,16 +178,21 @@ SET ( OPENVDB_LIBRARY_SOURCE_FILES
SET_SOURCE_FILES_PROPERTIES ( ${OPENVDB_LIBRARY_SOURCE_FILES}
PROPERTIES
- COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}"
+ COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
)
--
+
+IF ( OPENVDB_STATIC )
ADD_LIBRARY ( openvdb_static STATIC
${OPENVDB_LIBRARY_SOURCE_FILES}
@@ -91,7 +73,7 @@ index 5703eb9..6ff3c6a 100644
TARGET_LINK_LIBRARIES ( openvdb_static
${Boost_IOSTREAMS_LIBRARY}
${Boost_SYSTEM_LIBRARY}
-@@ -185,6 +198,8 @@ TARGET_LINK_LIBRARIES ( openvdb_static
+@@ -188,6 +201,8 @@ TARGET_LINK_LIBRARIES ( openvdb_static
${ZLIB_LIBRARY}
${BLOSC_blosc_LIBRARY}
)
@@ -100,7 +82,7 @@ index 5703eb9..6ff3c6a 100644
TARGET_LINK_LIBRARIES ( openvdb_shared
${Boost_IOSTREAMS_LIBRARY}
${Boost_SYSTEM_LIBRARY}
-@@ -193,7 +208,9 @@ TARGET_LINK_LIBRARIES ( openvdb_shared
+@@ -196,7 +211,9 @@ TARGET_LINK_LIBRARIES ( openvdb_shared
${ZLIB_LIBRARY}
${BLOSC_blosc_LIBRARY}
)
@@ -110,17 +92,19 @@ index 5703eb9..6ff3c6a 100644
IF (WIN32)
SET_TARGET_PROPERTIES ( openvdb_static
PROPERTIES OUTPUT_NAME libopenvdb
-@@ -203,7 +220,9 @@ ELSE()
+@@ -205,8 +222,10 @@ ELSE()
+ SET_TARGET_PROPERTIES ( openvdb_static
PROPERTIES OUTPUT_NAME openvdb
)
- ENDIF()
+-ENDIF()
++ENDIF ()
+ENDIF ()
+IF ( OPENVDB_SHARED )
SET_TARGET_PROPERTIES(
openvdb_shared
PROPERTIES
-@@ -211,13 +230,15 @@ SET_TARGET_PROPERTIES(
+@@ -214,13 +233,15 @@ SET_TARGET_PROPERTIES(
SOVERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}
VERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}.${OPENVDB_PATCH_VERSION_NUMBER}
)
@@ -137,7 +121,7 @@ index 5703eb9..6ff3c6a 100644
ADD_EXECUTABLE ( vdb_print
${VDB_PRINT_SOURCE_FILES}
)
-@@ -231,7 +252,7 @@ TARGET_LINK_LIBRARIES ( vdb_print
+@@ -236,7 +257,7 @@ TARGET_LINK_LIBRARIES ( vdb_print
SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc )
SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES}
PROPERTIES
@@ -146,7 +130,7 @@ index 5703eb9..6ff3c6a 100644
)
ADD_EXECUTABLE ( vdb_render
${VDB_RENDER_SOURCE_FILES}
-@@ -256,26 +277,26 @@ SET ( VDB_VIEW_SOURCE_FILES
+@@ -263,31 +284,40 @@ SET ( VDB_VIEW_SOURCE_FILES
)
SET_SOURCE_FILES_PROPERTIES ( ${VDB_VIEW_SOURCE_FILES}
PROPERTIES
@@ -154,9 +138,13 @@ index 5703eb9..6ff3c6a 100644
+ COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1 $<$<CXX_COMPILER_ID:MSVC>:/bigobj>"
)
-IF (NOT WIN32)
++
ADD_EXECUTABLE ( vdb_view
${VDB_VIEW_SOURCE_FILES}
)
+-
++
+ target_include_directories ( vdb_view SYSTEM PRIVATE ${Boost_INCLUDE_DIR} )
TARGET_LINK_LIBRARIES ( vdb_view
openvdb_shared
@@ -167,41 +155,58 @@ index 5703eb9..6ff3c6a 100644
- ${COCOA_LIBRARY}
- ${IOKIT_LIBRARY}
- ${COREVIDEO_LIBRARY}
-+ #${COCOA_LIBRARY}
-+ #${IOKIT_LIBRARY}
-+ #${COREVIDEO_LIBRARY}
${GLFW_LINK_LIBRARY}
${GLFW_DEPENDENT_LIBRARIES}
${GLEW_GLEW_LIBRARY}
- )
--ENDIF ()
-+
-+ENDIF ( OPENVDB_BUILD_TOOLS )
++ )
++ IF (APPLE)
++ TARGET_LINK_LIBRARIES ( vdb_view
++ ${COCOA_LIBRARY}
++ ${IOKIT_LIBRARY}
++ ${COREVIDEO_LIBRARY}
++ )
++ ENDIF ()
++ IF (NOT WIN32)
++ TARGET_LINK_LIBRARIES ( vdb_view
+ m
+ stdc++
+- )
++ )
++ ENDIF ()
+ ENDIF ()
++
SET ( UNITTEST_SOURCE_FILES
unittest/main.cc
-@@ -405,27 +426,32 @@ IF (OPENVDB_BUILD_DOCS)
+ unittest/TestAttributeArray.cc
+@@ -398,7 +428,7 @@ IF ( OPENVDB_BUILD_UNITTESTS )
+ ADD_TEST ( vdb_unit_test vdb_test )
+
+-ENDIF (OPENVDB_BUILD_UNITTESTS)
++ENDIF ()
+
+ # Doxygen docmentation
+ IF (OPENVDB_BUILD_DOCS)
+@@ -419,26 +449,29 @@ IF (OPENVDB_BUILD_DOCS)
ENDIF ()
-+IF ( OPENVDB_BUILD_TOOLS )
# Installation
-IF ( NOT WIN32 )
-+#IF ( NOT WIN32 )
++IF ( OPENVDB_BUILD_TOOLS )
INSTALL ( TARGETS
vdb_view
DESTINATION
bin
)
-ENDIF ()
-+#ENDIF ()
INSTALL ( TARGETS
vdb_print
vdb_render
DESTINATION
bin
)
-+ENDIF ( OPENVDB_BUILD_TOOLS )
++ENDIF ()
+IF ( OPENVDB_STATIC)
INSTALL ( TARGETS
@@ -215,11 +220,11 @@ index 5703eb9..6ff3c6a 100644
IF (WIN32)
INSTALL ( TARGETS
openvdb_shared
-@@ -439,6 +465,7 @@ ELSE()
+@@ -452,6 +485,7 @@ ELSE()
lib
)
ENDIF ()
-+ENDIF ( OPENVDB_SHARED )
++ENDIF ()
INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION include
FILES_MATCHING PATTERN "*.h"
diff --git a/ports/openvdb/CONTROL b/ports/openvdb/CONTROL
index e822bf04c..acf11cd00 100644
--- a/ports/openvdb/CONTROL
+++ b/ports/openvdb/CONTROL
@@ -1,8 +1,8 @@
Source: openvdb
-Version: 5.0.0-2
-Build-Depends: ilmbase, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess
+Version: 6.0.0
+Build-Depends: boost-ptr-container, openexr, tbb, blosc, boost-iostreams, boost-system, boost-thread, boost-date-time, boost-any, boost-uuid, boost-interprocess
Description: Sparse volume data structure and tools
Feature: tools
Description: OpenVDB utilities: view, print and render
-Build-Depends: glew, glfw3, boost-ptr-container
+Build-Depends: glew, glfw3
diff --git a/ports/openvdb/UseGLEWOnWindowsForViewer.patch b/ports/openvdb/UseGLEWOnWindowsForViewer.patch
deleted file mode 100644
index bfa29c46c..000000000
--- a/ports/openvdb/UseGLEWOnWindowsForViewer.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/openvdb/viewer/ClipBox.h b/openvdb/viewer/ClipBox.h
-index b792491..d2f50cc 100644
---- a/openvdb/viewer/ClipBox.h
-+++ b/openvdb/viewer/ClipBox.h
-@@ -36,6 +36,8 @@
- #if defined(__APPLE__) || defined(MACOSX)
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
-+#elif defined(WIN32)
-+#include <GL/glew.h>
- #else
- #include <GL/gl.h>
- #include <GL/glu.h>
-diff --git a/openvdb/viewer/Font.h b/openvdb/viewer/Font.h
-index 6e79704..566cfbd 100644
---- a/openvdb/viewer/Font.h
-+++ b/openvdb/viewer/Font.h
-@@ -36,6 +36,8 @@
- #if defined(__APPLE__) || defined(MACOSX)
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
-+#elif defined(WIN32)
-+#include <GL/glew.h>
- #else
- #include <GL/gl.h>
- #include <GL/glu.h>
-diff --git a/openvdb/viewer/RenderModules.h b/openvdb/viewer/RenderModules.h
-index f4745d9..339dfc3 100644
---- a/openvdb/viewer/RenderModules.h
-+++ b/openvdb/viewer/RenderModules.h
-@@ -43,6 +43,8 @@
- #if defined(__APPLE__) || defined(MACOSX)
- #include <OpenGL/gl.h>
- #include <OpenGL/glu.h>
-+#elif defined(WIN32)
-+#include <GL/glew.h>
- #else
- #include <GL/gl.h>
- #include <GL/glu.h>
-diff --git a/openvdb/viewer/Viewer.cc b/openvdb/viewer/Viewer.cc
-index 307aa2b..8b79358 100644
---- a/openvdb/viewer/Viewer.cc
-+++ b/openvdb/viewer/Viewer.cc
-@@ -540,7 +540,15 @@ ViewerImpl::open(int width, int height)
- std::shared_ptr<GLFWwindow> curWindow(
- glfwGetCurrentContext(), glfwMakeContextCurrent);
- glfwMakeContextCurrent(mWindow);
-- BitmapFont13::initialize();
-+ BitmapFont13::initialize();
-+#ifdef WIN32
-+ if (glewInit() == GLEW_OK) {
-+ OPENVDB_LOG_DEBUG_RUNTIME("initialized GLEW from thread "
-+ << boost::this_thread::get_id());
-+ } else {
-+ OPENVDB_LOG_ERROR("GLEW initialization failed");
-+ }
-+#endif
- }
- }
- mCamera->setWindow(mWindow);
diff --git a/ports/openvdb/portfile.cmake b/ports/openvdb/portfile.cmake
index a21e82240..7f2fa6c29 100644
--- a/ports/openvdb/portfile.cmake
+++ b/ports/openvdb/portfile.cmake
@@ -2,17 +2,14 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
- REPO dreamworksanimation/openvdb
- REF v5.0.0
- SHA512 8916d54683d81144114e57f8332be43b7547e6da5d194f6147bcefd4ee9e8e7ec817f27b65adb129dfd149e6b308f4bab30591ee953ee2c319636491bf051a2b
+ REPO AcademySoftwareFoundation/openvdb
+ REF v6.0.0
+ SHA512 6b9e267fff46647b39e1e6faa12059442196c1858df1fda1515cfc375e25bc3033e2828c80e63a652509cfba386376e022cebf81ec85aaccece421b0c721529b
HEAD_REF master
-)
-
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
PATCHES
- ${CMAKE_CURRENT_LIST_DIR}/UseGLEWOnWindowsForViewer.patch
- ${CMAKE_CURRENT_LIST_DIR}/AddLinkageAndToolsChoice.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0001-fix-cmake-modules.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0002-add-custom-options.patch
+ ${CMAKE_CURRENT_LIST_DIR}/0003-build-only-necessary-targets.patch
)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
@@ -24,74 +21,24 @@ else()
endif()
if ("tools" IN_LIST FEATURES)
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(OPENVDB_BUILD_TOOLS ON)
- set(OPENVDB_SHARED ON) # tools require shared version of the library
-else()
- set(OPENVDB_BUILD_TOOLS OFF)
-endif()
-
-file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}" INSTALL_LOCATION)
-
-file(TO_NATIVE_PATH "${INSTALL_LOCATION}/include" INCLUDE_LOCATION)
-file(TO_NATIVE_PATH "${INSTALL_LOCATION}/lib/" LIB_LOCATION)
-file(TO_NATIVE_PATH "${INSTALL_LOCATION}/debug/lib/" LIB_LOCATION_DEBUG)
-
-file(TO_NATIVE_PATH "${LIB_LOCATION}/zlib.lib" ZLIB_LIBRARY)
-file(TO_NATIVE_PATH "${LIB_LOCATION}/tbb.lib" Tbb_TBB_LIBRARY)
-file(TO_NATIVE_PATH "${LIB_LOCATION}/tbbmalloc.lib" Tbb_TBBMALLOC_LIBRARY)
-file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbb_debug.lib" Tbb_TBB_LIBRARY_DEBUG)
-file(TO_NATIVE_PATH "${LIB_LOCATION_DEBUG}/tbbmalloc_debug.lib" Tbb_TBBMALLOC_LIBRARY_DEBUG)
-
-file(TO_NATIVE_PATH "${LIB_LOCATION}/Half.lib" Ilmbase_HALF_LIBRARY)
-file(TO_NATIVE_PATH "${LIB_LOCATION}/Iex-2_2.lib" Ilmbase_IEX_LIBRARY)
-file(TO_NATIVE_PATH "${LIB_LOCATION}/IlmThread-2_2.lib" Ilmbase_ILMTHREAD_LIBRARY)
-
-if (OPENVDB_STATIC)
- file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3.lib" GLFW3_LIBRARY)
-else()
- file(TO_NATIVE_PATH "${LIB_LOCATION}/glfw3dll.lib" GLFW3_LIBRARY)
+ else()
+ message(ERROR "Unable to build tools if static libraries are required")
+ endif()
endif()
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS -DOPENVDB_BUILD_UNITTESTS=OFF
- -DOPENVDB_BUILD_PYTHON_MODULE=OFF
- -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
- -DUSE_GLFW3=ON
- -DGLFW3_USE_STATIC_LIBS=${OPENVDB_STATIC}
- -DBlosc_USE_STATIC_LIBS=${OPENVDB_STATIC}
- -DOpenexr_USE_STATIC_LIBS=${OPENVDB_STATIC}
- -DIlmbase_USE_STATIC_LIBS=${OPENVDB_STATIC}
- -DGLFW3_glfw_LIBRARY=${GLFW3_LIBRARY}
-
- -DIlmbase_HALF_LIBRARY=${Ilmbase_HALF_LIBRARY}
- -DIlmbase_IEX_LIBRARY=${Ilmbase_IEX_LIBRARY}
- -DIlmbase_ILMTHREAD_LIBRARY=${Ilmbase_ILMTHREAD_LIBRARY}
-
- -DOPENVDB_STATIC=${OPENVDB_STATIC}
- -DOPENVDB_SHARED=${OPENVDB_SHARED}
- -DOPENVDB_BUILD_TOOLS=${OPENVDB_BUILD_TOOLS}
-
- -DZLIB_INCLUDE_DIR=${INCLUDE_LOCATION}
- -DTBB_INCLUDE_DIR=${INCLUDE_LOCATION}
- -DZLIB_LIBRARY=${ZLIB_LIBRARY}
-
- -DGLFW3_LOCATION=${INSTALL_LOCATION}
- -DGLEW_LOCATION=${INSTALL_LOCATION}
- -DILMBASE_LOCATION=${INSTALL_LOCATION}
- -DOPENEXR_LOCATION=${INSTALL_LOCATION}
- -DTBB_LOCATION=${INSTALL_LOCATION}
- -DBLOSC_LOCATION=${INSTALL_LOCATION}
- OPTIONS_RELEASE
- -DTBB_LIBRARY_PATH=${LIB_LOCATION}
- -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY}
- -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY}
- OPTIONS_DEBUG
- -DTBB_LIBRARY_PATH=${LIB_LOCATION_DEBUG}
- -DTbb_TBB_LIBRARY=${Tbb_TBB_LIBRARY_DEBUG}
- -DTbb_TBBMALLOC_LIBRARY=${Tbb_TBBMALLOC_LIBRARY_DEBUG}
+ OPTIONS
+ -DOPENVDB_BUILD_UNITTESTS=OFF
+ -DOPENVDB_BUILD_PYTHON_MODULE=OFF
+ -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
+ -DUSE_GLFW3=ON
+ -DOPENVDB_STATIC=${OPENVDB_STATIC}
+ -DOPENVDB_SHARED=${OPENVDB_SHARED}
+ -DOPENVDB_BUILD_TOOLS=${OPENVDB_BUILD_TOOLS}
)
vcpkg_install_cmake()