mirror of
https://github.com/overte-org/overte.git
synced 2025-04-06 13:32:42 +02:00
Upgrade OpenEXR from 2.3.0 to 3.1.8
This commit is contained in:
parent
adf86d282f
commit
c655a8573d
11 changed files with 143 additions and 185 deletions
|
@ -14,36 +14,38 @@ macro(TARGET_OPENEXR)
|
||||||
TMP
|
TMP
|
||||||
REGEX "#define OPENEXR_VERSION_STRING.*$")
|
REGEX "#define OPENEXR_VERSION_STRING.*$")
|
||||||
string(REGEX MATCHALL "[0-9.]+" OPENEXR_VERSION ${TMP})
|
string(REGEX MATCHALL "[0-9.]+" OPENEXR_VERSION ${TMP})
|
||||||
|
|
||||||
file(STRINGS
|
file(STRINGS
|
||||||
${openexr_config_file}
|
${openexr_config_file}
|
||||||
TMP
|
TMP
|
||||||
REGEX "#define OPENEXR_VERSION_MAJOR.*$")
|
REGEX "#define OPENEXR_VERSION_MAJOR.*$")
|
||||||
string(REGEX MATCHALL "[0-9]" OPENEXR_MAJOR_VERSION ${TMP})
|
string(REGEX MATCHALL "[0-9]" OPENEXR_MAJOR_VERSION ${TMP})
|
||||||
|
|
||||||
file(STRINGS
|
file(STRINGS
|
||||||
${openexr_config_file}
|
${openexr_config_file}
|
||||||
TMP
|
TMP
|
||||||
REGEX "#define OPENEXR_VERSION_MINOR.*$")
|
REGEX "#define OPENEXR_VERSION_MINOR.*$")
|
||||||
string(REGEX MATCHALL "[0-9]" OPENEXR_MINOR_VERSION ${TMP})
|
string(REGEX MATCHALL "[0-9]" OPENEXR_MINOR_VERSION ${TMP})
|
||||||
|
else()
|
||||||
|
message(WARNING "Failed to find ${openexr_config_file}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENEXR_LIBRARY_RELEASE "")
|
set(OPENEXR_LIBRARY_RELEASE "")
|
||||||
set(OPENEXR_LIBRARY_DEBUG "")
|
set(OPENEXR_LIBRARY_DEBUG "")
|
||||||
foreach(OPENEXR_LIB
|
foreach(OPENEXR_LIB
|
||||||
IlmImf
|
OpenEXRCore
|
||||||
IlmImfUtil
|
OpenEXR
|
||||||
Half
|
OpenEXRUtil
|
||||||
Iex
|
Iex
|
||||||
IexMath
|
IlmThread
|
||||||
Imath
|
Imath
|
||||||
IlmThread)
|
)
|
||||||
|
|
||||||
# OpenEXR libraries may be suffixed with the version number, so we search
|
# OpenEXR libraries may be suffixed with the version number, so we search
|
||||||
# using both versioned and unversioned names.
|
# using both versioned and unversioned names.
|
||||||
find_library(OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE
|
find_library(OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE
|
||||||
NAMES
|
NAMES
|
||||||
${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}_s
|
${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}
|
||||||
${OPENEXR_LIB}_s
|
${OPENEXR_LIB}_s
|
||||||
|
|
||||||
PATHS ${VCPKG_INSTALL_ROOT}/lib NO_DEFAULT_PATH
|
PATHS ${VCPKG_INSTALL_ROOT}/lib NO_DEFAULT_PATH
|
||||||
|
@ -52,13 +54,15 @@ macro(TARGET_OPENEXR)
|
||||||
|
|
||||||
if(OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE)
|
if(OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE)
|
||||||
list(APPEND OPENEXR_LIBRARY_RELEASE ${OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE})
|
list(APPEND OPENEXR_LIBRARY_RELEASE ${OPENEXR_${OPENEXR_LIB}_LIBRARY_RELEASE})
|
||||||
|
else()
|
||||||
|
message(WARNING "Failed to find ${OPENEXR_LIB} (release); ${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenEXR libraries may be suffixed with the version number, so we search
|
# OpenEXR libraries may be suffixed with the version number, so we search
|
||||||
# using both versioned and unversioned names.
|
# using both versioned and unversioned names.
|
||||||
find_library(OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG
|
find_library(OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG
|
||||||
NAMES
|
NAMES
|
||||||
${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}_s_d
|
${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}_d
|
||||||
${OPENEXR_LIB}_s_d
|
${OPENEXR_LIB}_s_d
|
||||||
|
|
||||||
PATHS ${VCPKG_INSTALL_ROOT}/debug/lib NO_DEFAULT_PATH
|
PATHS ${VCPKG_INSTALL_ROOT}/debug/lib NO_DEFAULT_PATH
|
||||||
|
@ -67,10 +71,13 @@ macro(TARGET_OPENEXR)
|
||||||
|
|
||||||
if(OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG)
|
if(OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG)
|
||||||
list(APPEND OPENEXR_LIBRARY_DEBUG ${OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG})
|
list(APPEND OPENEXR_LIBRARY_DEBUG ${OPENEXR_${OPENEXR_LIB}_LIBRARY_DEBUG})
|
||||||
|
else()
|
||||||
|
message(WARNING "Failed to find ${OPENEXR_LIB} (debug); ${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}_d")
|
||||||
endif()
|
endif()
|
||||||
endforeach(OPENEXR_LIB)
|
endforeach(OPENEXR_LIB)
|
||||||
|
|
||||||
select_library_configurations(OPENEXR)
|
select_library_configurations(OPENEXR)
|
||||||
target_link_libraries(${TARGET_NAME} ${OPENEXR_LIBRARY})
|
target_link_libraries(${TARGET_NAME} ${OPENEXR_LIBRARY})
|
||||||
|
target_include_directories(${TARGET_NAME} PUBLIC "${VCPKG_INSTALL_ROOT}/include/Imath")
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
25
cmake/ports/imath/portfile.cmake
Normal file
25
cmake/ports/imath/portfile.cmake
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO AcademySoftwareFoundation/Imath
|
||||||
|
REF v3.1.9
|
||||||
|
SHA512 ad96b2ac306fc13c01e8ea3256f885499c3f545be327feaba0f5e093b70b544bcca6f8b353fa7e35107aae515c19caced44331a95d0414f367ead4691ec73564
|
||||||
|
HEAD_REF master
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_cmake_configure(
|
||||||
|
SOURCE_PATH "${SOURCE_PATH}"
|
||||||
|
OPTIONS
|
||||||
|
-DIMATH_INSTALL_SYM_LINK=OFF
|
||||||
|
-DBUILD_TESTING=OFF
|
||||||
|
-DIMATH_INSTALL_PKG_CONFIG=ON
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_cmake_install()
|
||||||
|
|
||||||
|
vcpkg_copy_pdbs()
|
||||||
|
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Imath)
|
||||||
|
vcpkg_fixup_pkgconfig()
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||||
|
|
||||||
|
file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
18
cmake/ports/imath/vcpkg.json
Normal file
18
cmake/ports/imath/vcpkg.json
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"name": "imath",
|
||||||
|
"version": "3.1.9",
|
||||||
|
"port-version": 1,
|
||||||
|
"description": "Imath is a C++ and Python library of 2D and 3D vector, matrix, and math operations for computer graphics.",
|
||||||
|
"homepage": "https://github.com/AcademySoftwareFoundation/Imath",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake",
|
||||||
|
"host": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake-config",
|
||||||
|
"host": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
Source: openexr
|
|
||||||
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
|
|
|
@ -1,87 +0,0 @@
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
|
|
||||||
find_path(OpenEXR_INCLUDE_DIRS OpenEXR/OpenEXRConfig.h)
|
|
||||||
find_path(OPENEXR_INCLUDE_PATHS NAMES ImfRgbaFile.h PATH_SUFFIXES OpenEXR)
|
|
||||||
|
|
||||||
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}")
|
|
||||||
|
|
||||||
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()
|
|
13
cmake/ports/openexr/fix-arm64-windows-build.patch
Normal file
13
cmake/ports/openexr/fix-arm64-windows-build.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/src/lib/OpenEXRCore/internal_dwa_simd.h b/src/lib/OpenEXRCore/internal_dwa_simd.h
|
||||||
|
index 7b53501ac..ca69c9848 100644
|
||||||
|
--- a/src/lib/OpenEXRCore/internal_dwa_simd.h
|
||||||
|
+++ b/src/lib/OpenEXRCore/internal_dwa_simd.h
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
// aligned. Unaligned pointers may risk seg-faulting.
|
||||||
|
//
|
||||||
|
|
||||||
|
-#if defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)
|
||||||
|
+#if defined __SSE2__ || (_MSC_VER >= 1300 && (_M_IX86 || _M_X64) && !_M_CEE_PURE)
|
||||||
|
# define IMF_HAVE_SSE2 1
|
||||||
|
# include <emmintrin.h>
|
||||||
|
# include <mmintrin.h>
|
|
@ -1,19 +0,0 @@
|
||||||
diff --git a/OpenEXR/IlmImf/CMakeLists.txt b/OpenEXR/IlmImf/CMakeLists.txt
|
|
||||||
index e1a8740..d31cf68 100644
|
|
||||||
--- a/OpenEXR/IlmImf/CMakeLists.txt
|
|
||||||
+++ b/OpenEXR/IlmImf/CMakeLists.txt
|
|
||||||
@@ -2,14 +2,6 @@
|
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR 1)
|
|
||||||
|
|
||||||
-IF (WIN32)
|
|
||||||
- SET(RUNTIME_DIR ${OPENEXR_PACKAGE_PREFIX}/bin)
|
|
||||||
- SET(WORKING_DIR ${RUNTIME_DIR})
|
|
||||||
-ELSE ()
|
|
||||||
- SET(RUNTIME_DIR ${OPENEXR_PACKAGE_PREFIX}/lib)
|
|
||||||
- SET(WORKING_DIR .)
|
|
||||||
-ENDIF ()
|
|
||||||
-
|
|
||||||
SET(BUILD_B44EXPLOGTABLE OFF)
|
|
||||||
IF (NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/b44ExpLogTable.h")
|
|
||||||
SET(BUILD_B44EXPLOGTABLE ON)
|
|
|
@ -1,71 +1,46 @@
|
||||||
set(OPENEXR_VERSION 2.3.0)
|
|
||||||
set(OPENEXR_HASH 268ae64b40d21d662f405fba97c307dad1456b7d996a447aadafd41b640ca736d4851d9544b4741a94e7b7c335fe6e9d3b16180e710671abfc0c8b2740b147b2)
|
|
||||||
|
|
||||||
vcpkg_from_github(
|
vcpkg_from_github(
|
||||||
OUT_SOURCE_PATH SOURCE_PATH
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
REPO openexr/openexr
|
REPO AcademySoftwareFoundation/openexr
|
||||||
REF v${OPENEXR_VERSION}
|
REF "v${VERSION}"
|
||||||
SHA512 ${OPENEXR_HASH}
|
SHA512 ec60e79341695452e05f50bbcc0d55e0ce00fbb64cdec01a83911189c8643eb28a8046b14ee4230e5f438f018f2f1d0714f691983474d7979befd199f3f34758
|
||||||
HEAD_REF master
|
HEAD_REF master
|
||||||
PATCHES "fix_install_ilmimf.patch"
|
PATCHES
|
||||||
|
fix-arm64-windows-build.patch # https://github.com/AcademySoftwareFoundation/openexr/pull/1447
|
||||||
)
|
)
|
||||||
|
|
||||||
set(OPENEXR_STATIC ON)
|
vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS
|
||||||
set(OPENEXR_SHARED OFF)
|
FEATURES
|
||||||
|
tools OPENEXR_BUILD_TOOLS
|
||||||
vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH}
|
tools OPENEXR_INSTALL_TOOLS
|
||||||
PREFER_NINJA
|
)
|
||||||
OPTIONS
|
vcpkg_cmake_configure(
|
||||||
-DOPENEXR_BUILD_PYTHON_LIBS=OFF
|
SOURCE_PATH "${SOURCE_PATH}"
|
||||||
-DOPENEXR_BUILD_VIEWERS=OFF
|
OPTIONS
|
||||||
-DOPENEXR_RUN_FUZZ_TESTS=OFF
|
${OPTIONS}
|
||||||
-DOPENEXR_BUILD_SHARED=${OPENEXR_SHARED}
|
-DBUILD_TESTING=OFF
|
||||||
-DOPENEXR_BUILD_STATIC=${OPENEXR_STATIC}
|
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
||||||
OPTIONS_DEBUG
|
-DBUILD_DOCS=OFF
|
||||||
-DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR}/debug
|
OPTIONS_DEBUG
|
||||||
OPTIONS_RELEASE
|
-DOPENEXR_BUILD_TOOLS=OFF
|
||||||
-DILMBASE_PACKAGE_PREFIX=${CURRENT_INSTALLED_DIR})
|
-DOPENEXR_INSTALL_TOOLS=OFF
|
||||||
|
)
|
||||||
vcpkg_install_cmake()
|
vcpkg_cmake_install()
|
||||||
|
|
||||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
|
||||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
|
||||||
|
|
||||||
# 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(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrenvmap${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrheader${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrmakepreview${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrmaketiled${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrmultipart${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrmultiview${EXECUTABLE_SUFFIX})
|
|
||||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/exrstdattr${EXECUTABLE_SUFFIX})
|
|
||||||
|
|
||||||
vcpkg_copy_pdbs()
|
vcpkg_copy_pdbs()
|
||||||
|
|
||||||
if (OPENEXR_STATIC)
|
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenEXR)
|
||||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
|
vcpkg_fixup_pkgconfig()
|
||||||
|
|
||||||
|
if(OPENEXR_INSTALL_TOOLS)
|
||||||
|
vcpkg_copy_tools(
|
||||||
|
TOOL_NAMES exrenvmap exrheader exrinfo exrmakepreview exrmaketiled exrmultipart exrmultiview exrstdattr exr2aces
|
||||||
|
AUTO_CLEAN
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
file(REMOVE_RECURSE
|
||||||
set(OPENEXR_PORT_DIR "openexr")
|
"${CURRENT_PACKAGES_DIR}/debug/include"
|
||||||
else()
|
"${CURRENT_PACKAGES_DIR}/debug/share"
|
||||||
set(OPENEXR_PORT_DIR "OpenEXR")
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR})
|
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR}/copyright)
|
file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||||
|
|
||||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindOpenEXR.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${OPENEXR_PORT_DIR})
|
|
||||||
|
|
4
cmake/ports/openexr/usage
Normal file
4
cmake/ports/openexr/usage
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
openexr provides CMake targets:
|
||||||
|
|
||||||
|
find_package(OpenEXR CONFIG REQUIRED)
|
||||||
|
target_link_libraries(main PRIVATE OpenEXR::OpenEXR)
|
25
cmake/ports/openexr/vcpkg.json
Normal file
25
cmake/ports/openexr/vcpkg.json
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"name": "openexr",
|
||||||
|
"version": "3.1.8",
|
||||||
|
"description": "OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications",
|
||||||
|
"homepage": "https://www.openexr.com/",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"supports": "!uwp",
|
||||||
|
"dependencies": [
|
||||||
|
"imath",
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake",
|
||||||
|
"host": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake-config",
|
||||||
|
"host": true
|
||||||
|
},
|
||||||
|
"zlib"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"tools": {
|
||||||
|
"description": "Build tools"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,6 +23,7 @@
|
||||||
#include <OpenEXR/ImfRgbaFile.h>
|
#include <OpenEXR/ImfRgbaFile.h>
|
||||||
#include <OpenEXR/ImfArray.h>
|
#include <OpenEXR/ImfArray.h>
|
||||||
#include <OpenEXR/ImfTestFile.h>
|
#include <OpenEXR/ImfTestFile.h>
|
||||||
|
#include <OpenEXR/ImfInt64.h>
|
||||||
|
|
||||||
class QIODeviceImfStream : public Imf::IStream {
|
class QIODeviceImfStream : public Imf::IStream {
|
||||||
public:
|
public:
|
||||||
|
@ -39,11 +40,11 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Imf::Int64 tellg() override {
|
uint64_t tellg() override {
|
||||||
return _device.pos();
|
return _device.pos();
|
||||||
}
|
}
|
||||||
|
|
||||||
void seekg(Imf::Int64 pos) override {
|
void seekg(uint64_t pos) override {
|
||||||
_device.seek(pos);
|
_device.seek(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +77,7 @@ image::Image image::readOpenEXR(QIODevice& content, const std::string& filename)
|
||||||
|
|
||||||
Image image{ width, height, Image::Format_PACKED_FLOAT };
|
Image image{ width, height, Image::Format_PACKED_FLOAT };
|
||||||
auto packHDRPixel = getHDRPackingFunction();
|
auto packHDRPixel = getHDRPackingFunction();
|
||||||
|
|
||||||
for (int y = 0; y < height; y++) {
|
for (int y = 0; y < height; y++) {
|
||||||
const auto srcScanline = pixels[y];
|
const auto srcScanline = pixels[y];
|
||||||
gpu::uint32* dstScanline = (gpu::uint32*) image.editScanLine(y);
|
gpu::uint32* dstScanline = (gpu::uint32*) image.editScanLine(y);
|
||||||
|
|
Loading…
Reference in a new issue