Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake support #78

Open
erleben opened this issue Apr 19, 2022 · 1 comment
Open

CMake support #78

erleben opened this issue Apr 19, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@erleben
Copy link
Collaborator

erleben commented Apr 19, 2022

Integrate CMake into GitHub workflows such that C++ code gets compiled and C++ unit tests run when trying to do a pull request on the main branch.

Here is a bit of getting started boilerplate code

https:/marketplace/actions/run-cmake

Here is a checklist of features we need

  • Support in CMake for pybind11
  • Support in CMake for Eigen
  • Support in CMake for IGL
  • (Future) Support in CMake for CUDA
  • Automatically run unit tests (we need to select a unit test framework for c++), possible with a memory checker on

The idea is that CMake should set up the whole 3rdparty environment itself, such that end-users should not install anything in order to make our code work and run. Just run CMake on our stuff and then build our things philosophy.

Regarding unit tests, we have in the past used the Boost unit test framework. It works really well, but it is a huge dependency to have for only using the unit test framework and further, it needs a binary install which makes it a little inconvenient too. Many of the other dependencies will work as header-only libraries which greatly simplify dealing with 3rd party libraries. Hence, it might be worthwhile to study other options for unit test frameworks in C++ before deciding on our final choice for libRAINBOW.

Our C++ code standards are heavily influenced by the OpenTissue project

https:/erleben/OpenTissue

We have made several "descendants" from OpenTissue such as

https:/diku-dk/PROX

These illustrate well how we wish to write C++ code to be included in libRAINBOW.

@erleben erleben added the enhancement New feature or request label Apr 19, 2022
@erleben
Copy link
Collaborator Author

erleben commented Apr 19, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants