ringmesh / RINGMesh

RINGMesh is a C++ open-source platform for manipulating meshes of geological models.
http://ringmesh.org
BSD 3-Clause "New" or "Revised" License
70 stars 16 forks source link

Compil lib we need: DO NOT ACCEPT THIS PR, THIS IS A PROTOTYPE #84

Closed benjaminchauvin closed 6 years ago

benjaminchauvin commented 6 years ago

Now we have several libraries in RINGMesh. So a client code can use only the parts of RINGMesh it needs. The idea of this PR is the following. If my client code only needs some RINGMesh libraries (not all of them), why should I compile everything in RINGMesh? If I just need basic and geomodel_core, why should I spend (waste) time to compile the other libraries. This PR enables the developer to just compile the library (s)he wants.

It works: you can choose the libraries to build. How it works: each library compiling is a cmake option. By default all the libraries are built (except visualize as before). The developer can unselect one or several libraries. If the developer checks a library which needs a library which is unchecked, an error message is displayed during the cmake configuration.

TODO:

benjaminchauvin commented 6 years ago

A little precision: the library "basic" is always built, it does not make any sense to make its build optional.

benjaminchauvin commented 6 years ago

Another precision: as this functionality is for an "advanced" use of RINGMesh, we can mark these cmake options as "advanced". Thus, they will appear in the cmake gui option list only if the user displays the "advanced options".

BotellaA commented 6 years ago

I think these options will only bring more complex cmake files. The core of RINGMesh is not really optional. If you do not want geomodel_core or geomodel_builder, juste do not use RINGMesh it will be simpler.

Regarding visualization or tetrahedralization, they should be moved outside RINGMesh as a separate plugin in another git repository.