Skip to content

Draft: Vendored libraries

Daniele Cesarini requested to merge danielecesarini/q-e:vendor-libs into develop

The main idea beyond this MR is that QE should include the code of the external libraries as part of the repo (library vendoring). @nazavode and me think that does not make sense to download external libraries through submodules every time QE is cloned, because those libraries are mandatory to compile QE, so the submodules are always triggered (not matter what). Removing the submodules and vendoring the external libraries solve a lot of issues, as instance:

  • solve all the weird use cases when there is non-internet connectivity (see #331 (closed))
  • avoid fancy scripts to force the triggering of submodules and to create tar archive for redistribution
  • it simplify the whole management of the repository
  • avoid QE developers to know how to use submodules that are often very tricky
  • it allows autotools and cmake to use the same folders for the external libraries without doing fancy unzipping
  • the external libraries are updated very occasionally so we don't need to change them very often
  • it simplify the implementation of a spack package
  • clean the repo of weird mechanisms used to handle external libraries

The next step it should be to remove the "archive" directory and leaving autotools to use external directory as cmake does.

Please take a look to the external/README.md that explain the mechanism.

@nazavode if want add something, please welcome!

@ye-luo @giannozz

Edited by Ye Luo

Merge request reports