Comments (3)
Yeah, I totally understand, as I imagine it was a lot of work to get this out the door. Once I get this built and deployed I’ll see if I can tackle “cmake-ifying” a few of the deps. I think the most challenging part of that task will be preserving the download behavior, since it’ll need to move somewhere else. Should there be a higher level CMakeLists with the download and build functionality for all the external project, or should that move into a build script like USD’s build_usd.py? We could even start by copying and modifying that script since it has a lot of functionality that we would need here.
from openrv.
This is the eventual goal. We did a lot of clean up in the build system before open-sourcing the project, moving everything from Makefiles to CMake. Unfortunately, we did not have time to do everything we wanted, and we were hoping the community would help out with some of the "nice to haves" rather than the critical tasks we needed to get done. So on that subject, we would love to discuss ideas or collaborate with anyone interested in this topic.
from openrv.
We did CMake-ify some of the dependencies. You can take a look at the cmake/dependencies
folder to see what we did. It's a mix of FetchContent
and ExternalProject_Add
calls and some custom scripting too for the more complicated ones (python and pyside). Both have the of the built in calls have the ability to download from git repos built-in. FetchContent
is nice because it will effectively add all the CMake targets into your project, but you need to be careful with it might depend on other projects and those might not support FetchContent
(some projects like libjpeg do not allow it). Also FetchContent
happens at configure time and ExternalProject_Add
happens at build time, so FetchContent
cannot be parallelized. A lot of what we did in there was modelled after OpenEXR and/or Imath.
I think most of the remaining work would be to take what is in src/pub
and move it into cmake/dependencies
to have proper CMake builds. At the start of the project all third-party deps were in src/pub
, and we moved what was easy to move. The remaining dependencies were left there because they were difficult due to large number of dependencies (sometimes circular) or other complications, so it might be tricky business to get them moved over one-by-one.
from openrv.
Related Issues (20)
- VFX Reference Platform CY23 HOT 1
- Improve Apple Pro Res playback performances
- Build error for Windows targeting CY2024
- Audio/Video Output API
- Audio/Video Output API - AJA
- Audio/Video Output API - BMD
- [Bug]: Audio cache stops being filled in some conditions leading to audio silence during playback
- [Bug]: Crash with an image sequence containing incomplete PNGs
- [Bug]: Unable to build on non-RHEL distros
- Windows build failure on ADD_SUBDIRECTORY HOT 1
- [Bug]: Playback stops when RV Window is completely overlapped on macOS
- [Bug]: OCIO DisplayViewTransform Output is Incorrect (RV 2024.1.0) HOT 2
- `_install` directory not excluded from repository HOT 2
- [Bug]: PNG decoder is not enabled (FFmpeg, Windows) HOT 1
- [Bug]: OCIO failed to compile GL program with 1d luts with 2048 length in RV 2024.1.0 HOT 2
- Latest ZLIB patch does not apply correctly HOT 1
- [Bug]: OCIO causes crashing unless reader threads set to 1 HOT 1
- Revert PCRE2.cmake to use Autotools HOT 1
- [Bug]: inputImage.size() not working in merge and combine custom glsl nodes
- [Bug]: Crashes when stressing the timeline since the FFmpeg 6.0 update
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openrv.