Resolve "Finish installation and usage instruction on the documentation"
What does this MR do?
Resolves #55 (closed) and #60 (closed)
- Improve installation instructions
- Tighten the build system to much more Modern CMake
- Detachment of build system for downstream consumers
- Increment CMake required version to 3.13
- Install binary executables
- Install and test CMake config file
- Installation divided on three components:
Runtime|Library|Development
- Force GHC usage whenever c++ filesystem cannot be found, else, optional
- Vendor GHC with CMake instead of git submodules
- Increase GHC version
- Improve CI installation scripts
- Improve CI error messages diagnosis
- Scripts extract information from dune options file
- Build on temporary folder
- No need of specifying
dunecontrol
path - Scripts are callable from anywhere
- Define all-in-one dune options file (tested on CI)
- Improve Docker containers
- Simplify build and usage on docker containers (One command is now enough to either build or run)
- Reduce final size of docker image by using multistaging
- Adds GitHub Actions for
Linux|MacOS|Windows
- Deploy Debian Packages on release (sketch for installation is also provided)
- Provide help message when executables are not used correctly
- As part of this MR, I also created --an almost-- ready to use macOS
brew tap (Third-Party Repository)
. The idea is to finish and include it in the documentation after the next release. - Produce versioned documentation
Is there something that needs to be double checked?
??
Can this MR be accepted?
-
I've read contribution guide
-
Implemented -
Added/Updated tests -
Added/Updated documentation -
Pipelines passing
-
Delete branch option set -
Fast-forwaded git merge is possible -
Added entry to CHANGELOG.md
Related issues
Closes #55 (closed) #60 (closed) #40 (closed)
Edited by Santiago Ospina De Los Ríos