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

third-party libs as submodules #49

Open
5 of 20 tasks
BrunoLevy opened this issue Dec 2, 2022 · 3 comments
Open
5 of 20 tasks

third-party libs as submodules #49

BrunoLevy opened this issue Dec 2, 2022 · 3 comments

Comments

@BrunoLevy
Copy link
Owner

BrunoLevy commented Dec 2, 2022

Replace bundled third-party libs with submodules

lib/third_party

  • glfw
  • numerics/(LIBF2C,CBLAS,CLAPACK,ARPACK,SUPERLU): this will be another project with tools for generating the libs automatically from their github repository and f2c:
    • SUPERLU is on github (@starseeker)
    • ARPACK (ARPACK-NG) is on github

lib/geogram/third_party

  • amgcl
  • libMeshb: done
  • HLBFGS
  • lua
  • PoissonRecon: probably won't do (lots of local fixes...)
  • rply
  • stb_image
  • tetgen: no officiel github repo (but there is a mirror in libigl)
  • triangle
  • xatlas: lots of third party code in repo (libigl, eigen, ...), can we include just a few files as submodule ?
  • zlib: local changes (include path to make sure the right includes are used)

lib/geogram_gfx/third_party

  • glad
  • imgui
  • ImguiColorTextEdit: probably won't do (lots of local fixes...)
  • imgui_fonts (can do ?)
  • imgui_lua_bindings: probably won't do (lots of local fixes...)
@starseeker
Copy link

I don't know if it makes a difference, but I believe SuperLu is on github and actively maintained: https://github.com/xiaoyeli/superlu

@BrunoLevy
Copy link
Owner Author

Thank you for notifying, I'll take a look (it is in general better to have a submodule, because we can directly benefit from the maintenance and the evolutions !)

@jdumas
Copy link
Contributor

jdumas commented Mar 1, 2023

You may also want to look into FetchContent as an alternative to submodule. Here are some examples in Lagrange. You can see how we use those dependencies in our UI module.

Even if you don't use FetchContent to retrieve the dependency, I think it's important to check first if a certain target exist (e.g. imgui::imgui) before trying to call add_subdirectory() on the git submodule shipped with geogram. This will facilitate integration in third-party projects building geogram as a subdirectory.

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

No branches or pull requests

3 participants