[build-system] Add CMake support
Description
We should gradually switch to a CMake
workflow for various reasons:
- Better IDE support, e.g.
CLion
, allowing developers to quickly navigate the code, add breakpoints, etc. - Lessen the barrier of entry for new developers wanting to contribute.
autotools
is slowly fossilizing - Various hand-built scripts can be exchanged for just a few lines of
CMake
Note
- The bundled dependency location is being changed to
/third_party
in order to avoid confusion and keep track of the ones that are ported - Bundled packages should be converted to git modules even if they are not cmake based. If not git repository is available, one should be created
- Wrapper configurations for both bundled and optional packages should be placed in
/third_party
News snippet
Octopus can now build using cmake
Checklist
-
Add all executables (they should contain only the relevant code for compilation) -
Add documentation builder (!1914) -
Add testsuite (!1898 (closed)) -
Add third-party library support -
Add external_libs natively ( find_package
,fetch
,git submodule
, etc.) -
liboct_parser
? -
Integrate buildbot
Edited by Alex Buccheri