aboutsummaryrefslogtreecommitdiff
path: root/ports/openexr
diff options
context:
space:
mode:
Diffstat (limited to 'ports/openexr')
-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
6 files changed, 136 insertions, 167 deletions
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})