New package: OpenTimelineIO-0.17.0

This commit is contained in:
John 2025-04-19 23:32:39 +02:00 committed by John Zimmermann
parent 32770fbd0c
commit 49cfec483c
6 changed files with 306 additions and 0 deletions

View file

@ -3313,6 +3313,8 @@ libarcan_shmif_server.so.0.16 arcan-0.6.3.3_1
libarcan_tui.so.0.16 arcan-0.6.3.3_1
libarcan_a12.so.0.1 arcan-0.6.1.1_1
liblwipv6.so.2 lwipv6-1.5a_1
libopentime.so.17 OpenTimelineIO-0.17.0_1
libopentimelineio.so.17 OpenTimelineIO-0.17.0_1
libpipewire-0.3.so.0 libpipewire-0.3.6_1
libvolk.so.3.1 volk-3.1.0_1
libgnuradio-runtime.so.3.10.11 gnuradio-3.10.11.0_1

View file

@ -0,0 +1 @@
OpenTimelineIO

View file

@ -0,0 +1,118 @@
From 2bd90edfb4730780b71fcacae9e492ff15a16268 Mon Sep 17 00:00:00 2001
From: Christophe Marin <christophe@krop.fr>
Date: Fri, 7 Mar 2025 10:42:48 +0100
Subject: [PATCH 1/2] Use system rapidjson
---
CMakeLists.txt | 56 +++----------------------------
src/opentimelineio/CMakeLists.txt | 5 ++-
2 files changed, 7 insertions(+), 54 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 825ad9d..0a4d0ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ project(OpenTimelineIO VERSION ${OTIO_VERSION} LANGUAGES C CXX)
# Installation options
option(OTIO_CXX_INSTALL "Install the C++ bindings" ON)
option(OTIO_PYTHON_INSTALL "Install the Python bindings" OFF)
-option(OTIO_DEPENDENCIES_INSTALL "Install OTIO's C++ header dependencies (any and nonstd)" ON)
+option(OTIO_DEPENDENCIES_INSTALL "Install OTIO's C++ header dependencies (any and nonstd)" OFF)
option(OTIO_INSTALL_PYTHON_MODULES "Install OTIO pure Python modules/files" ON)
option(OTIO_INSTALL_COMMANDLINE_TOOLS "Install the OTIO command line tools" ON)
option(OTIO_INSTALL_CONTRIB "Install the opentimelineio_contrib Python package" ON)
@@ -149,63 +149,16 @@ endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
-if(OTIO_CXX_COVERAGE AND NOT MSVC)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
- # this causes cmake to produce file.gcno instead of file.cpp.gcno
- set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)
- message(STATUS "Building C++ with Coverage: ON")
-else()
- message(STATUS "Building C++ with Coverage: OFF")
-endif()
-if(WIN32)
- # Windows debug builds for Python require a d in order for the module to
- # load. This also helps ensure that debug builds in general are matched
- # to the Microsoft debug CRT.
- set(OTIO_DEBUG_POSTFIX "d")
-endif()
+
+
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
#------------------------------------------------------------------------------
# Fetch or refresh submodules if requested
#
-if (OTIO_AUTOMATIC_SUBMODULES)
- # make sure that git submodules are up to date when building
- find_package(Git QUIET)
- if (GIT_FOUND)
- message(STATUS "Checking git repo is available:")
- execute_process(
- # the following command returns true if cwd is in the repo
- COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- RESULT_VARIABLE IN_A_GIT_REPO_RETCODE
- )
- endif()
- if (GIT_FOUND AND IN_A_GIT_REPO_RETCODE EQUAL 0)
- # you might want to turn this off if you're working in one of the submodules
- # or trying it out with a different version of the submodule
- option(GIT_UPDATE_SUBMODULES "Update submodules each build" ON)
- if (GIT_UPDATE_SUBMODULES)
- message(
- STATUS "root: Updating git submodules to make sure they are up to date"
- )
- execute_process(
- COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- RESULT_VARIABLE GIT_UPDATE_SUBMODULES_RESULT
- )
- if (NOT GIT_UPDATE_SUBMODULES_RESULT EQUAL "0")
- message(
- FATAL_ERROR
- "git submodule update --init --recursive failed with \
- ${GIT_UPDATE_SUBMODULES_RESULT}"
- )
- endif()
- endif()
- endif()
-endif()
#------------------------------------------------------------------------------
# Setup tests
@@ -245,7 +198,8 @@ else()
endif()
# set up the internally hosted dependencies
-add_subdirectory(src/deps)
+# add_subdirectory(src/deps)
+find_package(RapidJSON CONFIG REQUIRED)
set (OTIO_IMATH_TARGETS
# For OpenEXR/Imath 3.x:
diff --git a/src/opentimelineio/CMakeLists.txt b/src/opentimelineio/CMakeLists.txt
index 4b08e6d..e98828b 100644
--- a/src/opentimelineio/CMakeLists.txt
+++ b/src/opentimelineio/CMakeLists.txt
@@ -80,9 +80,8 @@ add_library(OTIO::opentimelineio ALIAS opentimelineio)
target_include_directories(opentimelineio
PRIVATE "${IMATH_INCLUDES}"
"${PROJECT_SOURCE_DIR}/src"
- "${PROJECT_SOURCE_DIR}/src/deps"
- "${PROJECT_SOURCE_DIR}/src/deps/rapidjson/include"
- "${IMATH_INCLUDES}")
+ "${IMATH_INCLUDES}"
+ ${RapidJSON_INCLUDE_DIRS})
target_link_libraries(opentimelineio
PUBLIC opentime ${OTIO_IMATH_TARGETS})
--
2.48.1

View file

@ -0,0 +1,85 @@
From 43de3e5065c860865ede0c0bbb879578c7b325a2 Mon Sep 17 00:00:00 2001
From: Darby Johnston <darbyjohnston@yahoo.com>
Date: Wed, 2 Apr 2025 17:15:48 -0700
Subject: [PATCH] Add SOVERSION for the C++ libraries (#1860)
* Add SOVERSION for the C++ libraries
Co-authored-by: Nick Porcino <meshula@hotmail.com>
Signed-off-by: Darby Johnston <darbyjohnston@yahoo.com>
---
CMakeLists.txt | 25 +++++++++++++++++++++++++
src/opentime/CMakeLists.txt | 6 ++++++
src/opentimelineio/CMakeLists.txt | 6 ++++++
3 files changed, 37 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa4defd3f..00e18a5fc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -119,6 +119,31 @@ else()
endif()
endif()
+# Set the SO version. The SO version must be incremented every time a change
+# occurs to the ABI that causes a backward incompatibility. Such changes
+# include, exhaustively:
+#
+# * a change to struct or class layout
+# * enum changes that would cause a renumbering of previously published enums
+# * a removal of a struct, class, enumeration, or function
+# * a change in parameters to a free standing function
+# * a removal of a global variable
+#
+# OTIO currently designates the minor version number for breaking changes,
+# e.g. v0.15, v0.16.0, v0.17.0, accordingly the SO version will be incremented
+# to match. SO version must be monotically increasing, so the ABI version
+# should be computed as: major * 100 + revision. The third digit will never
+# implicate an ABI version change. So for example, the following OTIO versions
+# would map to these ABI versions:
+#
+# * v0.18.0 - 18
+# * v0.19.0 - 19
+# * v0.19.1 - 19 # No ABI changes with minor version changes
+# * v1.0.0 - 100
+# * v1.1.0 - 101
+#
+math(EXPR OTIO_SOVERSION "${OTIO_VERSION_MAJOR} * 100 + ${OTIO_VERSION_MINOR}")
+
set(OTIO_RESOLVED_CXX_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}")
if(OTIO_CXX_INSTALL)
diff --git a/src/opentime/CMakeLists.txt b/src/opentime/CMakeLists.txt
index b7cc47cf4..a973d03fa 100644
--- a/src/opentime/CMakeLists.txt
+++ b/src/opentime/CMakeLists.txt
@@ -24,6 +24,12 @@ set_target_properties(opentime PROPERTIES
POSITION_INDEPENDENT_CODE TRUE
WINDOWS_EXPORT_ALL_SYMBOLS true)
+if(BUILD_SHARED_LIBS)
+ set_target_properties(opentime PROPERTIES
+ SOVERSION ${OTIO_SOVERSION}
+ VERSION ${OTIO_VERSION})
+endif()
+
if(APPLE)
set_target_properties(opentime PROPERTIES
INSTALL_NAME_DIR "@loader_path"
diff --git a/src/opentimelineio/CMakeLists.txt b/src/opentimelineio/CMakeLists.txt
index 728b485cb..732793f2a 100644
--- a/src/opentimelineio/CMakeLists.txt
+++ b/src/opentimelineio/CMakeLists.txt
@@ -98,6 +98,12 @@ set_target_properties(opentimelineio PROPERTIES
POSITION_INDEPENDENT_CODE TRUE
WINDOWS_EXPORT_ALL_SYMBOLS true)
+if(BUILD_SHARED_LIBS)
+ set_target_properties(opentimelineio PROPERTIES
+ SOVERSION ${OTIO_SOVERSION}
+ VERSION ${OTIO_VERSION})
+endif()
+
if(APPLE)
set_target_properties(opentimelineio PROPERTIES
INSTALL_NAME_DIR "@loader_path"

View file

@ -0,0 +1,77 @@
--- a/src/opentimelineio/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200
+++ - 2025-04-19 23:24:03.444723937 +0200
@@ -124,7 +124,7 @@
RUNTIME DESTINATION "${OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR}")
install(EXPORT OpenTimelineIOTargets
- DESTINATION "${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO"
NAMESPACE OTIO:: )
include(CMakePackageConfigHelpers)
@@ -132,7 +132,7 @@
${CMAKE_CURRENT_SOURCE_DIR}/OpenTimelineIOConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/OpenTimelineIOConfig.cmake
INSTALL_DESTINATION
- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio
+ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO
NO_SET_AND_CHECK_MACRO
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
@@ -141,6 +141,6 @@
FILES
${CMAKE_CURRENT_BINARY_DIR}/OpenTimelineIOConfig.cmake
DESTINATION
- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio
+ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO
)
endif()
--- a/src/opentime/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200
+++ - 2025-04-19 23:24:45.851845467 +0200
@@ -49,7 +49,7 @@
RUNTIME DESTINATION "${OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR}")
install(EXPORT OpenTimeTargets
- DESTINATION "${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime"
NAMESPACE OTIO:: )
include(CMakePackageConfigHelpers)
@@ -57,7 +57,7 @@
${CMAKE_CURRENT_SOURCE_DIR}/OpenTimeConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/OpenTimeConfig.cmake
INSTALL_DESTINATION
- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime
+ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime
NO_SET_AND_CHECK_MACRO
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
@@ -66,7 +66,7 @@
FILES
${CMAKE_CURRENT_BINARY_DIR}/OpenTimeConfig.cmake
DESTINATION
- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime
+ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime
)
endif()
--- a/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200
+++ - 2025-04-21 12:15:44.839270019 +0200
@@ -20,6 +20,8 @@
project(OpenTimelineIO VERSION ${OTIO_VERSION} LANGUAGES C CXX)
+include(GNUInstallDirs)
+
#------------------------------------------------------------------------------
# Options
# Add all options and settings here for all subprojects to aid in project
@@ -100,7 +102,7 @@
endif()
else()
- set(OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+ set(OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
message(STATUS "OTIO C++ installing to ${CMAKE_INSTALL_PREFIX}")
endif()

View file

@ -0,0 +1,23 @@
# Template file for 'OpenTimelineIO'
pkgname=OpenTimelineIO
version=0.17.0
revision=1
build_style=cmake
configure_args="-DOTIO_FIND_IMATH=ON -DBUILD_SHARED_LIBS=ON"
makedepends="imath-devel rapidjson"
short_desc="Interchange format for editorial timeline information"
maintainer="John <me@johnnynator.dev>"
license="Apache-2.0"
homepage="https://github.com/AcademySoftwareFoundation/OpenTimelineIO"
distfiles="https://github.com/AcademySoftwareFoundation/OpenTimelineIO/archive/refs/tags/v${version}.tar.gz"
checksum=cdf8281c6091a18a4147295b660e13b610a6d58919a79608bf03e5359c1c2d24
OpenTimelineIO-devel_package() {
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/lib/cmake
vmove "usr/lib/*.so"
}
}