Code Monkey home page Code Monkey logo

Comments (3)

chadrik avatar chadrik commented on June 14, 2024 1

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.

rogernelson avatar rogernelson commented on June 14, 2024

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.

rogernelson avatar rogernelson commented on June 14, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.