feat: SG-42145: Common dependency updates (aja, atomic_ops, gc, openjph, pcre2 and spdlog)#1075
feat: SG-42145: Common dependency updates (aja, atomic_ops, gc, openjph, pcre2 and spdlog)#1075mcoliver wants to merge 33 commits intoAcademySoftwareFoundation:mainfrom
Conversation
Numerous improvements, supported hardware, and bug fixes aja-video/libajantv2@ntv2_17_1_0...ntv2_17_6_0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
bdwgc/libatomic_ops@0445739...v7.10.0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
You can run this script to quickly check for new versions of common dependencies. It checks releases first and then tags. Best effort to discover the latest release or tag that conforms to the versioning schema per package. Ignores rc, beta, dev, test, pre, and alpha named versions. There is some messiness out there with versioning. Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Performance improvements and optimizations videolan/dav1d@1.4.3...1.5.3 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
fixes build errors aja-video/libajantv2@ntv2_17_6_0...ntv2_17_6_0_hotfix1 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
doctest/doctest@v2.4.9...v2.4.12 https://github.com/doctest/doctest/blob/master/CHANGELOG.md Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous security and bug fixes. libexpat/libexpat@R_2_6_3...R_2_7_3 https://github.com/libexpat/libexpat/blob/master/expat/Changes Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous bug fixes and features https://github.com/bdwgc/bdwgc/blob/master/ChangeLog bdwgc/bdwgc@v8.2.2...v8.2.10 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Bug fixes and feature updates https://github.com/uclouvain/openjpeg/blob/master/CHANGELOG.md uclouvain/openjpeg@v2.5.0...v2.5.4 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
numerous bug fixes and enhancements aous72/OpenJPH@0.21.3...0.26.0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Numerous bug fixes and improvements https://github.com/PCRE2Project/pcre2/blob/pcre2-10.47/ChangeLog PCRE2Project/pcre2@pcre2-10.43...pcre2-10.47 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
bug and security fixes https://github.com/pnggroup/libpng/blob/0f07f70aa55e4771d00b0f8a238dca992fbb60e4/CHANGES#L6264 pnggroup/libpng@v1.6.48...v1.6.54 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
bug fixes, security fixes, and feature improvements https://github.com/gabime/spdlog/releases gabime/spdlog@v1.11.0...v1.17.0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Numerous changes and fixes https://github.com/webmproject/libwebp/blob/45102247a82396fabac5241c64305b13ed711335/ChangeLog#L741 webmproject/libwebp@v1.2.1...v1.6.0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
LibRaw/LibRaw@0.21.1...0.22.0 https://github.com/LibRaw/LibRaw/blob/d20315b6e7b0162d3b0d7820dcbaf4de716b3e77/Changelog.txt#L3 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
forgot to update the hash Signed-off-by: Michael Oliver <mcoliver@gmail.com>
formatting Signed-off-by: Michael Oliver <mcoliver@gmail.com>
apparently it wants to squash this all into one line. ¯\_(ツ)_/¯ Signed-off-by: Michael Oliver <mcoliver@gmail.com>
0bb1b7b to
c3b2c76
Compare
uses lib64 since v0.24. https://github.com/aous72/OpenJPH/releases/tag/0.24.0 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
updated hash to be accurate Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Windows builds failing on spdlog and oiio because they bundle fmt which requires a utf-8 flag when compiling on windows. Error was D:\a\OpenRV\OpenRV\_build\RV_DEPS_SPDLOG\install\include\spdlog\fmt\bundled\base.h(465,28): error C2338: static_assert failed: 'Unicode support requires compiling with /utf-8' [D:\a\OpenRV\OpenRV\_build\src\lib\base\TwkUtil\TwkUtil.vcxproj] Signed-off-by: Michael Oliver <mcoliver@gmail.com>
openjph now support debug envs so lets support them as well https://github.com/aous72/OpenJPH/blob/8e597d11715552a6c63e3963d940fa29a4c5831b/src/core/CMakeLists.txt#L119 Signed-off-by: Michael Oliver <mcoliver@gmail.com>
fixed formatting Signed-off-by: Michael Oliver <mcoliver@gmail.com>
format fixes Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Builds failing with LINK : fatal error LNK1181: cannot open input file '..\..\..\..\RV_DEPS_AJA\install\lib\ajantv2_vs143_MT.lib' Install log references Installing: D:/a/OpenRV/OpenRV/_build/RV_DEPS_AJA/install/lib/ajantv2.lib so let's change the lib name Signed-off-by: Michael Oliver <mcoliver@gmail.com>
|
pre-commit.ci autofix |
for more information, see https://pre-commit.ci
Signed-off-by: Michael Oliver <mcoliver@gmail.com>
need to move the debug postfix. According to CICD build logs windows debug wants to build D:/a/OpenRV/OpenRV/_build/RV_DEPS_OPENJPH/build/src/core/Debug/openjph.0.26d.lib Signed-off-by: Michael Oliver <mcoliver@gmail.com>
…dependency_updates Signed-off-by: Michael Oliver <mcoliver@gmail.com>
|
@cedrik-fuoco-adsk apologies for all the ci/cd build runs to iron out the kinks. Setting up all the dev envs to build locally is not possible for me at the moment. I just pushed the last one that should fix the debug windows build name for openjph. That should be the last one |
AJA updated the release lib name to match macos/linux, but kept the _vs143_MT suffix for the debug lib. Signed-off-by: Michael Oliver <mcoliver@gmail.com>
|
@cedrik-fuoco-adsk would it be helpful for me to break this into separate PR's per dependency? I know it's a lot of upgrades all at once. |
|
I think it's ok @mcoliver. They all do different things. Having a single build with everything should help with the testing. The two main one that really need testing are AJA and OIIO. |
bedcrypto.lib(md.obj) : error LNK2019: unresolved external symbol __imp_ferror referenced in function mbedtls_md_file
There was a problem hiding this comment.
Pull request overview
This PR updates several third-party dependency versions used by the CMake dependency build system and adds a helper script to compare the pinned versions in CYCOMMON.cmake against upstream Git tags.
Changes:
- Bump multiple common dependency versions/hashes in
cmake/defaults/CYCOMMON.cmake(e.g., spdlog, pcre2, gc, openjpeg/openjph, libpng, libraw, webp, dav1d, etc.). - Adjust several dependency build recipes (download artifacts switched to
.tar.gzin a few places; OpenJPH naming updated for Debug postfix handling; Windows/utf-8flags added for spdlog/OIIO). - Add
check_dependency_versions.pyto scanCYCOMMON.cmakeand report latest upstream tags.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| cmake/dependencies/spdlog.cmake | Switch spdlog download to tarball; add Windows UTF-8 compile flag handling. |
| cmake/dependencies/pcre2.cmake | Switch PCRE2 download artifact from zip to tarball. |
| cmake/dependencies/openjph.cmake | Update OpenJPH library naming for Debug postfix (notably on Windows). |
| cmake/dependencies/oiio.cmake | Add Windows UTF-8 compile flag handling for OIIO consumers/build. |
| cmake/dependencies/gc.cmake | Switch bdwgc download artifact from zip to tarball. |
| cmake/dependencies/atomic_ops.cmake | Update atomic_ops download URL to tagged release under bdwgc repo. |
| cmake/dependencies/aja.cmake | Adjust Windows Debug naming selection and force mbedtls runtime setting in Debug. |
| cmake/defaults/CYCOMMON.cmake | Central version/hash bumps for common dependencies. |
| check_dependency_versions.py | New script to compare pinned dependency versions vs latest upstream tags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| IF(RV_TARGET_WINDOWS) | ||
| LIST(PREPEND _configure_options "-G ${CMAKE_GENERATOR}") | ||
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8") |
There was a problem hiding this comment.
Passing -DCMAKE_CXX_FLAGS=/utf-8 on the CMake command line hard-sets the cache value for CMAKE_CXX_FLAGS inside the ExternalProject, which can override toolchain-provided flags (and any existing CMAKE_CXX_FLAGS content). Prefer adding /utf-8 via target compile options in that project (or appending to the existing flags, e.g. including the prior value) rather than replacing the whole variable.
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8") | |
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} /utf-8") |
| RV_MAKE_STANDARD_LIB_NAME("openjph.${_version_major}.${_version_minor}${RV_OPENJPH_DEBUG_POSTFIX}" "${RV_DEPS_OPENJPH_VERSION}" "SHARED" "") | ||
| SET(_libname | ||
| "openjph.${_version_major}.${_version_minor}.lib" | ||
| "openjph.${_version_major}.${_version_minor}${RV_OPENJPH_DEBUG_POSTFIX}.lib" | ||
| ) | ||
| SET(_implibpath | ||
| ${_lib_dir}/${_libname} | ||
| ) |
There was a problem hiding this comment.
On Windows this overrides _libname (which RV_COPY_LIB_BIN_FOLDERS() expects to be the DLL name for staging) with the import library name ending in .lib. That will make the stage target depend on ${RV_STAGE_BIN_DIR}/${_libname} where _libname is now a .lib that lives in ${_lib_dir}, causing staging/build failures. Keep _libname as the DLL name from RV_MAKE_STANDARD_LIB_NAME, and instead override _implibname/_implibpath (or use a separate variable) for the import library.
| SET(_make_command | ||
| ninja | ||
| ) | ||
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8") |
There was a problem hiding this comment.
Passing -DCMAKE_CXX_FLAGS=/utf-8 on the CMake command line hard-sets the cache value for CMAKE_CXX_FLAGS inside the ExternalProject, which can override toolchain-provided flags (and any existing CMAKE_CXX_FLAGS content). Prefer adding /utf-8 via target compile options in that project (or appending to the existing flags, e.g. including the prior value) rather than replacing the whole variable.
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=/utf-8") | |
| LIST(APPEND _configure_options "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} /utf-8") |
|
Hi @mcoliver, Do you mind splitting We would like to merge |
Summarize your change.
Created a script to check common dependencies against their most recent releases. Useful for seeing if there are updates to dependency packages. I used that script to identify a few that were behind on bug fixes, security updates, and features. None are breaking changes.
Describe the reason for the change.
There were quite a few dependencies that were running old versions. Newer versions fix bugs and security issues along with exposing new features that can be harnessed for future performance optimizations and feature extensions.
Fixes:
#1096
#1097
#1098
#1099
#1100
#1102
#1103
#1104
#1106
#1108
#1105
#1110
#1111
Describe what you have tested and on which operating system.
builds locally. Will monitor CICD on the PR. Tested various images and videos affected by the packages that were updated with success (jpeg, webp, png, libraw, etc..)
Add a list of changes, and note any that might need special attention during the review.
I linked out to each changelog and commit diff for the various dependencies. I made a best effort to ensure there are no breaking changes and stuck to minor version updates.
One thing to note: Libraw does deprecate some older cameras but also adds support for a bunch of new ones along with other new features. Feels like a worthwhile tradeoff but should be noted. https://github.com/LibRaw/LibRaw/blob/d20315b6e7b0162d3b0d7820dcbaf4de716b3e77/Changelog.txt#L50
If possible, provide screenshots.