|
|
|
|
@@ -0,0 +1,201 @@
|
|
|
|
|
From b20b49b78f250414a8a2be9d49f8c444759561fb Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: =?UTF-8?q?Julius=20K=C3=BCnzel?=
|
|
|
|
|
<78424983+jlskuz@users.noreply.github.com>
|
|
|
|
|
Date: Thu, 27 Mar 2025 18:10:53 +0100
|
|
|
|
|
Subject: [PATCH] Drop Imath2 support and modernize Imath includes (#1852)
|
|
|
|
|
MIME-Version: 1.0
|
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
|
|
* Drop support for Imath 2
|
|
|
|
|
* Port Imath includes to Imath/*.h
|
|
|
|
|
As suggested by Imath devs, see https://github.com/AcademySoftwareFoundation/Imath/issues/136#issuecomment-812671628
|
|
|
|
|
This is possible now that Imath 2 support was dropped
|
|
|
|
|
|
|
|
|
|
* Add find_dependency call for Imath to *Config.cmake
|
|
|
|
|
This will make it easier for downstream users
|
|
|
|
|
* Use global include_directories for internal Imath
|
|
|
|
|
|
|
|
|
|
---------
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Julius Künzel <julius.kuenzel@kde.org>
|
|
|
|
|
---
|
|
|
|
|
CMakeLists.txt | 28 ++++---------------
|
|
|
|
|
src/opentimelineio/CMakeLists.txt | 6 ++--
|
|
|
|
|
.../OpenTimelineIOConfig.cmake.in | 1 +
|
|
|
|
|
src/opentimelineio/composable.h | 2 +-
|
|
|
|
|
src/opentimelineio/mediaReference.h | 2 +-
|
|
|
|
|
src/opentimelineio/serializableObject.h | 2 +-
|
|
|
|
|
.../opentimelineio-bindings/otio_imath.cpp | 4 +--
|
|
|
|
|
.../otio_serializableObjects.cpp | 2 +-
|
|
|
|
|
tests/CMakeLists.txt | 3 --
|
|
|
|
|
9 files changed, 15 insertions(+), 35 deletions(-)
|
|
|
|
|
|
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
|
|
index 36f6e27..a1a074f 100644
|
|
|
|
|
--- a/CMakeLists.txt
|
|
|
|
|
+++ b/CMakeLists.txt
|
|
|
|
|
@@ -183,37 +183,22 @@ elseif(OTIO_FIND_IMATH)
|
|
|
|
|
message(STATUS "Found Imath 3 at ${Imath_CONFIG}")
|
|
|
|
|
set(USE_DEPS_IMATH OFF)
|
|
|
|
|
else()
|
|
|
|
|
- find_package(IlmBase QUIET)
|
|
|
|
|
- if (IlmBase_FOUND)
|
|
|
|
|
- message(STATUS "Imath 3 not found, found Imath 2 at ${IlmBase_CONFIG}")
|
|
|
|
|
- message(STATUS "You may need to point to the Imath headers by setting IMATH_INCLUDES")
|
|
|
|
|
- set(USE_DEPS_IMATH_OFF)
|
|
|
|
|
- set(OTIO_RESOLVED_IMATH_LIBRARIES "${IlmBase_LIBRARIES")
|
|
|
|
|
- else()
|
|
|
|
|
- message(STATUS "Imath 3 and 2 were not found, using src/deps/Imath")
|
|
|
|
|
- set(USE_DEPS_IMATH ON)
|
|
|
|
|
- endif()
|
|
|
|
|
+ message(STATUS "Imath 3 was not found, using src/deps/Imath")
|
|
|
|
|
+ set(USE_DEPS_IMATH ON)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
message(STATUS "Using src/deps/Imath by default")
|
|
|
|
|
set(USE_DEPS_IMATH ON)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
+if(USE_DEPS_IMATH)
|
|
|
|
|
+ include_directories("${PROJECT_SOURCE_DIR}/src/deps/Imath/src")
|
|
|
|
|
+endif()
|
|
|
|
|
+
|
|
|
|
|
# set up the internally hosted dependencies
|
|
|
|
|
# add_subdirectory(src/deps)
|
|
|
|
|
find_package(RapidJSON CONFIG REQUIRED)
|
|
|
|
|
|
|
|
|
|
-set (OTIO_IMATH_TARGETS
|
|
|
|
|
- # For OpenEXR/Imath 3.x:
|
|
|
|
|
- $<TARGET_NAME_IF_EXISTS:Imath::Imath>
|
|
|
|
|
- $<TARGET_NAME_IF_EXISTS:Imath::Half>
|
|
|
|
|
- # For OpenEXR >= 2.4/2.5 with reliable exported targets
|
|
|
|
|
- $<TARGET_NAME_IF_EXISTS:IlmBase::Imath>
|
|
|
|
|
- $<TARGET_NAME_IF_EXISTS:IlmBase::Half>
|
|
|
|
|
- $<TARGET_NAME_IF_EXISTS:IlmBase::Iex>
|
|
|
|
|
- # For OpenEXR <= 2.3:
|
|
|
|
|
- ${ILMBASE_LIBRARIES})
|
|
|
|
|
-
|
|
|
|
|
add_subdirectory(src/opentime)
|
|
|
|
|
add_subdirectory(src/opentimelineio)
|
|
|
|
|
|
|
|
|
|
@@ -228,4 +213,3 @@ endif()
|
|
|
|
|
if(OTIO_CXX_EXAMPLES)
|
|
|
|
|
add_subdirectory(examples)
|
|
|
|
|
endif()
|
|
|
|
|
-
|
|
|
|
|
diff --git a/src/opentimelineio/CMakeLists.txt b/src/opentimelineio/CMakeLists.txt
|
|
|
|
|
index 22828a6..ad1890b 100644
|
|
|
|
|
--- a/src/opentimelineio/CMakeLists.txt
|
|
|
|
|
+++ b/src/opentimelineio/CMakeLists.txt
|
|
|
|
|
@@ -78,13 +78,11 @@ add_library(opentimelineio ${OTIO_SHARED_OR_STATIC_LIB}
|
|
|
|
|
add_library(OTIO::opentimelineio ALIAS opentimelineio)
|
|
|
|
|
|
|
|
|
|
target_include_directories(opentimelineio
|
|
|
|
|
- PRIVATE "${IMATH_INCLUDES}"
|
|
|
|
|
- "${PROJECT_SOURCE_DIR}/src"
|
|
|
|
|
- "${IMATH_INCLUDES}"
|
|
|
|
|
+ PRIVATE "${PROJECT_SOURCE_DIR}/src"
|
|
|
|
|
${RapidJSON_INCLUDE_DIRS})
|
|
|
|
|
|
|
|
|
|
target_link_libraries(opentimelineio
|
|
|
|
|
- PUBLIC opentime ${OTIO_IMATH_TARGETS})
|
|
|
|
|
+ PUBLIC opentime Imath::Imath)
|
|
|
|
|
|
|
|
|
|
set_target_properties(opentimelineio PROPERTIES
|
|
|
|
|
VERSION ${OTIO_VERSION}
|
|
|
|
|
diff --git a/src/opentimelineio/OpenTimelineIOConfig.cmake.in b/src/opentimelineio/OpenTimelineIOConfig.cmake.in
|
|
|
|
|
index f735b36..355f8ea 100644
|
|
|
|
|
--- a/src/opentimelineio/OpenTimelineIOConfig.cmake.in
|
|
|
|
|
+++ b/src/opentimelineio/OpenTimelineIOConfig.cmake.in
|
|
|
|
|
@@ -2,5 +2,6 @@
|
|
|
|
|
|
|
|
|
|
include(CMakeFindDependencyMacro)
|
|
|
|
|
find_dependency(OpenTime)
|
|
|
|
|
+find_dependency(Imath)
|
|
|
|
|
|
|
|
|
|
include("${CMAKE_CURRENT_LIST_DIR}/OpenTimelineIOTargets.cmake")
|
|
|
|
|
diff --git a/src/opentimelineio/composable.h b/src/opentimelineio/composable.h
|
|
|
|
|
index d2691ff..4f63856 100644
|
|
|
|
|
--- a/src/opentimelineio/composable.h
|
|
|
|
|
+++ b/src/opentimelineio/composable.h
|
|
|
|
|
@@ -6,7 +6,7 @@
|
|
|
|
|
#include "opentimelineio/serializableObjectWithMetadata.h"
|
|
|
|
|
#include "opentimelineio/version.h"
|
|
|
|
|
|
|
|
|
|
-#include <ImathBox.h>
|
|
|
|
|
+#include <Imath/ImathBox.h>
|
|
|
|
|
|
|
|
|
|
namespace opentimelineio { namespace OPENTIMELINEIO_VERSION {
|
|
|
|
|
|
|
|
|
|
diff --git a/src/opentimelineio/mediaReference.h b/src/opentimelineio/mediaReference.h
|
|
|
|
|
index f7fde5a..63fa70c 100644
|
|
|
|
|
--- a/src/opentimelineio/mediaReference.h
|
|
|
|
|
+++ b/src/opentimelineio/mediaReference.h
|
|
|
|
|
@@ -6,7 +6,7 @@
|
|
|
|
|
#include "opentimelineio/serializableObjectWithMetadata.h"
|
|
|
|
|
#include "opentimelineio/version.h"
|
|
|
|
|
|
|
|
|
|
-#include <ImathBox.h>
|
|
|
|
|
+#include <Imath/ImathBox.h>
|
|
|
|
|
|
|
|
|
|
namespace opentimelineio { namespace OPENTIMELINEIO_VERSION {
|
|
|
|
|
|
|
|
|
|
diff --git a/src/opentimelineio/serializableObject.h b/src/opentimelineio/serializableObject.h
|
|
|
|
|
index 63ccc04..280706e 100644
|
|
|
|
|
--- a/src/opentimelineio/serializableObject.h
|
|
|
|
|
+++ b/src/opentimelineio/serializableObject.h
|
|
|
|
|
@@ -12,7 +12,7 @@
|
|
|
|
|
#include "opentimelineio/typeRegistry.h"
|
|
|
|
|
#include "opentimelineio/version.h"
|
|
|
|
|
|
|
|
|
|
-#include "ImathBox.h"
|
|
|
|
|
+#include "Imath/ImathBox.h"
|
|
|
|
|
#include "serialization.h"
|
|
|
|
|
|
|
|
|
|
#include <list>
|
|
|
|
|
diff --git a/src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp b/src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp
|
|
|
|
|
index 540025a..4cd5df2 100644
|
|
|
|
|
--- a/src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp
|
|
|
|
|
+++ b/src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp
|
|
|
|
|
@@ -6,8 +6,8 @@
|
|
|
|
|
|
|
|
|
|
#include "otio_utils.h"
|
|
|
|
|
|
|
|
|
|
-#include "ImathBox.h"
|
|
|
|
|
-#include "ImathVec.h"
|
|
|
|
|
+#include "Imath/ImathBox.h"
|
|
|
|
|
+#include "Imath/ImathVec.h"
|
|
|
|
|
|
|
|
|
|
namespace py = pybind11;
|
|
|
|
|
|
|
|
|
|
diff --git a/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp b/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp
|
|
|
|
|
index 290a70d..1bdd8c8 100644
|
|
|
|
|
--- a/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp
|
|
|
|
|
+++ b/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp
|
|
|
|
|
@@ -32,7 +32,7 @@
|
|
|
|
|
#include "otio_utils.h"
|
|
|
|
|
#include "otio_anyDictionary.h"
|
|
|
|
|
|
|
|
|
|
-#include "ImathBox.h"
|
|
|
|
|
+#include "Imath/ImathBox.h"
|
|
|
|
|
|
|
|
|
|
namespace py = pybind11;
|
|
|
|
|
using namespace pybind11::literals;
|
|
|
|
|
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
|
|
|
|
index 85cb216..a17de5c 100644
|
|
|
|
|
--- a/tests/CMakeLists.txt
|
|
|
|
|
+++ b/tests/CMakeLists.txt
|
|
|
|
|
@@ -20,9 +20,6 @@ foreach(test ${tests_opentimelineio})
|
|
|
|
|
add_executable(${test} utils.h utils.cpp ${test}.cpp)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(${test} opentimelineio)
|
|
|
|
|
- if (NOT "${IMATH_INCLUDES}" STREQUAL "")
|
|
|
|
|
- target_include_directories(${test} "${IMATH_INCLUDES}")
|
|
|
|
|
- endif()
|
|
|
|
|
set_target_properties(${test} PROPERTIES FOLDER tests)
|
|
|
|
|
add_test(NAME ${test}
|
|
|
|
|
COMMAND ${test}
|
|
|
|
|
--
|
|
|
|
|
2.49.0
|
|
|
|
|
|