In the first phase of GSoC 2021 @ The FOSSology Project, I have completed the desired milestone. As of now, FOSSology can be installed completely via CMake and most of the components are working fine in initial testing.
List of tasks completed
- Added CMake build configurations for all the C/C++ agents for executables, libraries, and coverages
- Added CMake install configuration for all C/C++ and PHP agents as well as extra components
- Reworked the shell scripts and generated source files to make them more compatible with CMake as well as better in terms of overall compatibility with the latest tools.
- The new CMake build architecture is much more flexible to changes as compared to hard-coded Makefiles.
- CMake generated configurations support parallel build by default, this has led to significant improvement in build time. CMake generated configuration can now build the whole project within 2 mins or even faster on more powerful CPUs (Both Ninja and Makefiles with the same number of parallel processes) compared to 4-5 minutes previously. (These results are averaged from initial testing of new build architecture)
- CMake supports out-source builds by default, which means the source folders are not touched/modified while building, all build files and residuals get their separate folder and the source tree can be cleaned easily.
- Developers can now opt for a long list of generators to build FOSSology e.g Makefiles, Ninja as per their needs.
How to test
Instructions to test the new Build system is in this wiki.
- There may be a permission issue with some generated sources while building. This can be bypassed for now by running
sudo chmod +x <filename>command.
- Coverage builds may fail.
- configuration for tests are skipped for now
Work in Progress
- Currently, I am working on packaging the FOSSology with CMake.
This Blog is licensed under Attribution-NonCommercial 4.0 International