Skip to content

Commit 19e5005

Browse files
committed
Build all python package dependencies
Signed-off-by: Roger Nelson <[email protected]>
1 parent b5fa395 commit 19e5005

File tree

2 files changed

+5
-12
lines changed

2 files changed

+5
-12
lines changed

cmake/dependencies/python3.cmake

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,13 @@ SET(RV_DEPS_PYTHON_VERSION_SHORT
3131
)
3232

3333
# This version is used for generating src/build/requirements.txt from requirements.txt.in template
34-
# All platforms install OpenTimelineIO from git to ensure consistent source builds.
3534
SET(_opentimelineio_version
3635
"${RV_DEPS_OTIO_VERSION}"
3736
)
3837

3938
SET(_pyside_version
4039
"${RV_DEPS_PYSIDE_VERSION}"
4140
)
42-
# Construct the full git URL for pip to use in requirements.txt
43-
# Using this avoids @ symbol conflicts in CONFIGURE_FILE
44-
SET(_opentimelineio_pip_url
45-
"git+https://github.com/AcademySoftwareFoundation/OpenTimelineIO@v${_opentimelineio_version}#egg=OpenTimelineIO"
46-
)
4741

4842
SET(_python3_download_url
4943
"https://github.com/python/cpython/archive/refs/tags/v${_python3_version}.zip"
@@ -79,9 +73,6 @@ SET(_build_dir
7973
${RV_DEPS_BASE_DIR}/${_python3_target}/build
8074
)
8175

82-
# Note: OpenTimelineIO is now installed via requirements.txt from git URL for all platforms.
83-
# This ensures consistent source builds across Windows, Mac, and Linux.
84-
8576
FETCHCONTENT_DECLARE(
8677
${_pyside_target}
8778
URL ${_pyside_archive_url}
@@ -283,12 +274,13 @@ ELSE()
283274
SET(_otio_debug_env "")
284275
ENDIF()
285276

286-
# Single unified command for all platforms and build types
277+
# Using --no-binary :all: to ensure all packages with native extensions are built from source
278+
# against our custom Python build, preventing ABI compatibility issues.
287279
SET(_requirements_install_command
288280
${CMAKE_COMMAND} -E env
289281
${_otio_debug_env}
290282
"CMAKE_ARGS=-DPYTHON_LIBRARY=${_python3_cmake_library} -DPYTHON_INCLUDE_DIR=${_include_dir} -DPYTHON_EXECUTABLE=${_python3_executable}"
291-
"${_python3_executable}" -m pip install --upgrade --no-cache-dir --force-reinstall -r "${_requirements_output_file}"
283+
"${_python3_executable}" -m pip install --upgrade --no-cache-dir --force-reinstall --no-binary :all: -r "${_requirements_output_file}"
292284
)
293285

294286
IF(RV_TARGET_WINDOWS)

src/build/requirements.txt.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# This file contains all the packages that will be packaged with RV. Please add the license next to the package.
22
# NOTE: This is a CMake template file. The actual requirements.txt is generated during CMake configuration.
33
# To update OpenTimelineIO version, edit _opentimelineio_version in cmake/dependencies/python3.cmake
4+
# NOTE: Using --no-binary :all: in pip install ensures all packages are built from source against our custom Python.
45

56
pip # License: MIT License (MIT)
67
setuptools # License: MIT License
7-
@_opentimelineio_pip_url@ # License: Other/Proprietary License (Modified Apache 2.0 License)
8+
opentimelineio==@_opentimelineio_version@ # License: Other/Proprietary License (Modified Apache 2.0 License)
89
PyOpenGL # License: BSD License (BSD)
910

1011
# MacOS only - PyOpenGL_accelerate is built from source in python3.cmake as a workaround until the fix

0 commit comments

Comments
 (0)