Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
57884ec
build: replace autotools with CMake for PCRE2 and atomic_ops
cedrik-fuoco-adsk Mar 11, 2026
31d79fa
build: add find_package/pkg_config resolution infrastructure and dav1…
cedrik-fuoco-adsk Mar 18, 2026
2e40100
build: add Imath find_package dispatcher and version match options
cedrik-fuoco-adsk Mar 18, 2026
6faa14e
build: add Boost find_package dispatcher and fix Homebrew include pat…
cedrik-fuoco-adsk Mar 18, 2026
013c0c7
build: add OpenEXR find_package dispatcher and fix symlink include fi…
cedrik-fuoco-adsk Mar 18, 2026
77614f3
build: add GLEW find_package dispatcher
cedrik-fuoco-adsk Mar 18, 2026
ab4fa6d
build: add zlib find_package dispatcher and MODULE mode resolution
cedrik-fuoco-adsk Mar 19, 2026
791f25e
build: fix OIIO sub-build Boost header contamination and Imath resolu…
cedrik-fuoco-adsk Mar 19, 2026
233f5ea
build: fix plugin link race condition with ExternalProject dependencies
cedrik-fuoco-adsk Mar 19, 2026
a62d367
build: PCRE2 10.44+ fixed the __builtin_mul_overflow / _pcre2_ckd_smu…
cedrik-fuoco-adsk Mar 19, 2026
c8c8d88
build: add OpenSSL find_package dispatcher
cedrik-fuoco-adsk Mar 20, 2026
5f25d37
build: auto-resolve staged outputs from TARGET_LIBS imported locations
cedrik-fuoco-adsk Mar 20, 2026
0738c55
build: fix OCIO Windows staging and OIIO/OCIO Imath resolution on RHEL
cedrik-fuoco-adsk Mar 20, 2026
c112235
build: defer Darwin install_name_tool fixup to install time
cedrik-fuoco-adsk Mar 21, 2026
9289747
build: create SONAME symlinks for staged libraries on Linux
cedrik-fuoco-adsk Mar 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions cmake/defaults/CYCOMMON.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@ SET(RV_DEPS_ATOMIC_OPS_DOWNLOAD_HASH

# dav1d https://github.com/videolan/dav1d
SET(RV_DEPS_DAV1D_VERSION
"1.4.3"
"1.5.3"
)
SET(RV_DEPS_DAV1D_DOWNLOAD_HASH
"2c62106fda87a69122dc8709243a34e8"
"6a195752588586acf13349a1cceedab8"
)
SET(RV_DEPS_DAV1D_VERSION_LIB
"7"
)

# doctest https://github.com/doctest/doctest
Expand Down Expand Up @@ -205,10 +208,10 @@ SET(RV_DEPS_OTIO_VERSION

# pcre2 https://github.com/PCRE2Project/pcre2
SET(RV_DEPS_PCRE2_VERSION
"10.43"
"10.47"
)
SET(RV_DEPS_PCRE2_DOWNLOAD_HASH
"e4c3f2a24eb5c15bec8360e50b3f0137"
"9a77e2cdc4410addf9a77363a89fe858"
)

# png https://github.com/glennrp/libpng
Expand Down
26 changes: 26 additions & 0 deletions cmake/defaults/rv_options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,29 @@ SET_PROPERTY(
CACHE RV_FFMPEG
PROPERTY STRINGS ${_RV_FFMPEG}
)

#
# Dependency resolution option
#
# When ON, try find_package() for each dependency before building from source. When OFF (default), always build dependencies from source (current behavior).
#
# Per-dependency override: set RV_DEPS_<NAME>_FORCE_BUILD=ON to force building a specific dependency from source even when RV_DEPS_PREFER_INSTALLED=ON.
#
OPTION(RV_DEPS_PREFER_INSTALLED "Try find_package() for dependencies before building from source" OFF)

#
# Version matching mode for dependency resolution.
#
# Controls how RV_FIND_DEPENDENCY matches versions when RV_DEPS_PREFER_INSTALLED=ON. EXACT — require the exact version specified in CY*.cmake (default,
# recommended) MINIMUM — accept the specified version or newer (standard find_package behavior)
#
# Per-dependency override: set RV_DEPS_<NAME>_VERSION_MATCH=EXACT or MINIMUM to override the global setting for a specific dependency.
#
SET(RV_DEPS_VERSION_MATCH
"EXACT"
CACHE STRING "Version matching mode for find_package: EXACT or MINIMUM"
)
SET_PROPERTY(
CACHE RV_DEPS_VERSION_MATCH
PROPERTY STRINGS EXACT MINIMUM
)
6 changes: 6 additions & 0 deletions cmake/dependencies/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ INCLUDE(rv_create_std_deps_vars)
INCLUDE(rv_make_std_lib_name)
INCLUDE(rv_stage_dependency_libs)
INCLUDE(rv_add_imported_library)
INCLUDE(rv_find_dependency)

# All imported targets created by find_package() are automatically GLOBAL, so subdirectories can reference them without manual promotion.
SET(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL
TRUE
)

INCLUDE(ProcessorCount)
PROCESSORCOUNT(_cpu_count)
Expand Down
37 changes: 10 additions & 27 deletions cmake/dependencies/atomic_ops.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,35 +29,17 @@ SET(_lib_dir
${_install_dir}/lib
)

IF(RV_TARGET_WINDOWS)
SET(_atomic_ops_lib_name
libatomic_ops.a
)
ELSE()
SET(_atomic_ops_lib_name
${CMAKE_STATIC_LIBRARY_PREFIX}atomic_ops${CMAKE_STATIC_LIBRARY_SUFFIX}
)
ENDIF()
SET(_atomic_ops_lib_name
${CMAKE_STATIC_LIBRARY_PREFIX}atomic_ops${CMAKE_STATIC_LIBRARY_SUFFIX}
)

SET(_atomic_ops_lib
${_lib_dir}/${_atomic_ops_lib_name}
)

SET(_make_command
make
)
SET(_configure_command
sh ./configure
)
SET(_autogen_command
sh ./autogen.sh
)

# Make sure NOT to enable GPL
SET(_configure_args
"--disable-gpl"
SET(_build_dir
${RV_DEPS_BASE_DIR}/${_target}/build
)
LIST(APPEND _configure_args "--prefix=${_install_dir}")

EXTERNALPROJECT_ADD(
${_target}
Expand All @@ -67,10 +49,11 @@ EXTERNALPROJECT_ADD(
URL_MD5 ${_download_hash}
DOWNLOAD_NAME ${_target}_${_version}.zip
DOWNLOAD_DIR ${RV_DEPS_DOWNLOAD_DIR}
CONFIGURE_COMMAND ${_autogen_command} && ${_configure_command} ${_configure_args}
BUILD_COMMAND ${_make_command} -j${_cpu_count}
INSTALL_COMMAND ${_make_command} install
BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${RV_DEPS_BASE_DIR}/${_target}/src -B ${_build_dir} -DCMAKE_INSTALL_PREFIX=${_install_dir}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -Denable_gpl=OFF
BUILD_COMMAND ${CMAKE_COMMAND} --build ${_build_dir} --config ${CMAKE_BUILD_TYPE} -j${_cpu_count}
INSTALL_COMMAND ${CMAKE_COMMAND} --install ${_build_dir} --prefix ${_install_dir} --config ${CMAKE_BUILD_TYPE}
BUILD_IN_SOURCE FALSE
BUILD_ALWAYS FALSE
BUILD_BYPRODUCTS ${_atomic_ops_lib}
USES_TERMINAL_BUILD TRUE
Expand Down
Loading
Loading