vcpkg/ports/directxtex/enable_openexr_support.patch
Kai Pastor 94b089b7c1
[openexr] Update from 2 to 3.1.5, patch all consuming ports (#26862)
* Update to 3.1.5

* Add feature 'tools'

* ilmbase is now imath

* [theia] Use openimageio cmake config

* [freeimage] Use OpenEXR 3 and Imath

* [opencv4] Use upstream's OpenEXR 3 support

* [opencv3] Use upstream's OpenEXR 3 support

* [opencv2] Use OpenEXR 3 and Imath

* [osg] Use OpenEXR 3

* [openvdb] Use Imath, enable OpenEXR

* [pangolin] Use OpenEXR 3

* [directxtex] Use OpenEXR 3

* [uvatlas] Disable /guard:ehcont when directxtex uses openexr

* Update versions

Co-authored-by: chausner <chausner@users.noreply.github.com>
2022-09-25 23:45:07 -07:00

88 lines
3.1 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc0a3e8..7447741 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -156,7 +156,7 @@ target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)
if(ENABLE_OPENEXR_SUPPORT)
find_package(OpenEXR REQUIRED)
- target_include_directories(${PROJECT_NAME} PRIVATE ${OPENEXR_INCLUDE_DIRS}/OpenEXR)
+ target_link_libraries(${PROJECT_NAME} PRIVATE OpenEXR::OpenEXR)
endif()
if ((${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16") AND (NOT MINGW))
@@ -299,6 +299,7 @@ if(MSVC)
endif()
if((MSVC_VERSION GREATER_EQUAL 1928) AND (CMAKE_SIZEOF_VOID_P EQUAL 8)
+ AND NOT ENABLE_OPENEXR_SUPPORT
AND ((NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0)))
foreach(t IN LISTS TOOL_EXES ITEMS ${PROJECT_NAME})
target_compile_options(${t} PRIVATE "$<$<NOT:$<CONFIG:DEBUG>>:/guard:ehcont>")
diff --git a/DirectXTexEXR.cpp b/DirectXTexEXR.cpp
index 17bd171..825cfe4 100644
--- a/DirectXTex/DirectXTexEXR.cpp
+++ b/DirectXTex/DirectXTexEXR.cpp
@@ -8,7 +8,7 @@
//--------------------------------------------------------------------------------------
//Uncomment if you add DirectXTexEXR to your copy of the DirectXTex library
-//#include "DirectXTexP.h"
+#include "DirectXTexP.h"
#include "DirectXTexEXR.h"
@@ -57,7 +57,7 @@ using namespace DirectX;
using PackedVector::XMHALF4;
// Comment out this first anonymous namespace if you add the include of DirectXTexP.h above
-#ifdef WIN32
+#if 0
namespace
{
struct handle_closer { void operator()(HANDLE h) noexcept { assert(h != INVALID_HANDLE_VALUE); if (h) CloseHandle(h); } };
@@ -161,7 +161,7 @@ namespace
return result.QuadPart >= m_EOF;
}
- Imf::Int64 tellg() override
+ uint64_t tellg() override
{
const LARGE_INTEGER dist = {};
LARGE_INTEGER result;
@@ -169,10 +169,10 @@ namespace
{
throw com_exception(HRESULT_FROM_WIN32(GetLastError()));
}
- return static_cast<Imf::Int64>(result.QuadPart);
+ return static_cast<uint64_t>(result.QuadPart);
}
- void seekg(Imf::Int64 pos) override
+ void seekg(uint64_t pos) override
{
LARGE_INTEGER dist;
dist.QuadPart = static_cast<LONGLONG>(pos);
@@ -213,7 +213,7 @@ namespace
}
}
- Imf::Int64 tellp() override
+ uint64_t tellp() override
{
const LARGE_INTEGER dist = {};
LARGE_INTEGER result;
@@ -221,10 +221,10 @@ namespace
{
throw com_exception(HRESULT_FROM_WIN32(GetLastError()));
}
- return static_cast<Imf::Int64>(result.QuadPart);
+ return static_cast<uint64_t>(result.QuadPart);
}
- void seekp(Imf::Int64 pos) override
+ void seekp(uint64_t pos) override
{
LARGE_INTEGER dist;
dist.QuadPart = static_cast<LONGLONG>(pos);