1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-09-01 06:30:52 +02:00

add section on removing standalone

This commit is contained in:
Lars Melchior 2020-04-15 13:51:39 +02:00
parent b130f1e58c
commit be4291f7f1

View file

@ -82,6 +82,10 @@ See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options
Yes, however you will need to change the library type to an `INTERFACE` library as documented in the [CMakeLists.txt](CMakeLists.txt).
> I don't need a standalone target. How can I get rid of it?
Simply remove the standalone directory and github workflow file.
> I see you are using `GLOB` to add source files in CMakeLists.txt. Isn't that evil?
Glob is considered bad because any changes to the source file structure [might not be automatically caught](https://cmake.org/cmake/help/latest/command/file.html#filesystem) by CMake's builders and you will need to manually invoke CMake on changes.
@ -91,7 +95,8 @@ See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options
If possible, avoid adding conditional includes to the CMakeLists (even though it is a common sight in the C++ world), as it makes the build system convoluted and hard to reason about.
Instead, create a new directory with a CMakeLists that adds the main project as a dependency (e.g. just copy the [standalone](standalone) directory).
Depending on the complexity of the project it might make sense move this to a separate repository and list a specific version or commit of the main project.
Depending on the complexity of the project it might make sense move the components into separate repositories and use CPM.cmake to add them as dependencies.
This has the advantage that individual libraries and components can be improved and updated independently.
> You recommend to add external dependencies using CPM.cmake. Will this force users of my library to use CPM as well?