From 671a8528cccf8f2fa5855a2fc35c9b568393a6ee Mon Sep 17 00:00:00 2001 From: Snider Date: Fri, 10 Oct 2025 12:19:20 +0100 Subject: [PATCH] Improve build cleaning instructions and Makefile targets Updated the README to clarify proper cleaning procedures for the build directory, emphasizing the use of 'make clean' and consequences of manual deletion. Modified the Makefile so 'clean-build' now depends on 'clean' for a more thorough cleanup. Updated docs submodule to latest commit. --- Makefile | 2 +- README.md | 17 +++++++++++------ docs | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 60068533..914e0606 100644 --- a/Makefile +++ b/Makefile @@ -157,7 +157,7 @@ docs-dev: configure clean: @cmake -P cmake/CleanBuild.cmake -clean-build: +clean-build: clean rm -rf build tags: diff --git a/README.md b/README.md index 1353c12f..2a767574 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,12 @@ | [XCode](https://developer.apple.com/downloads/) (macOS) | 12.3 | 14.3 | 15.2 | | [CMake](https://cmake.org/download/) | 3.26.3 | 3.26.3 | 3.31.6 | - ## Cloning Be sure to clone the repository properly, with `--recursive` flag, or you'll get angry: `git clone --recursive https://github.com/letheanVPN/blockchain.git` # Building --------- The project uses a `Makefile` that provides a simple and powerful interface for building. It automatically handles dependency installation with Conan and compilation with CMake. @@ -38,7 +36,6 @@ For most use cases, these two commands are all you need. They handle the entire You can use the `make build` target with variables for more control over the final binaries. - ## Creating Release Packages To create distributable packages (e.g., `.zip`, `.msi`, `.pkg`, `.deb`), run the `release` target. This will build the project, build the documentation, and then package everything. @@ -87,7 +84,15 @@ For advanced use cases, you can override variables in the `Makefile` to customiz ## Cleaning the Build Directory -You can nuke the build directory with `make clean-build` +ALWAYS USE `make clean` to clean the build directory, manually deleting the `build/release`, `build/SOME_FOLDER` will cause you issues. -To completely reset the build directory to its cached warm-up state, run `make clean`; -the selective clean script can be edited here: `cmake/CleanBuild.cmake` \ No newline at end of file +Our `make clean` triggers a cmake script that completely resets the build directory & dynamically added CMakePresets to its cached warm-up state, +the selective clean script can be edited here: `cmake/CleanBuild.cmake` or directly run from the repo root `cmake -P cmake/CleanBuild.cmake` + +You can NUKE the build directory with `make clean-build` which is `rm -rf build`. + +If you do manually delete build folders and get CMake errors (if you have compiled anything previously, you will), +the ConanPresets.json file has entries in the `include` property, delete them all and try again. + +This happens because CMakePresets.json includes ConanPresets.json, that has the list of toolchains to use that gets populated during the CMake config step, +when you manually delete a folder, the toolchain is now a broken path, and CMake throws a fatal error. \ No newline at end of file diff --git a/docs b/docs index 5f842e05..e40a78d5 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 5f842e053886802d3ef5322e19442c84f3b4aa63 +Subproject commit e40a78d5020661f05d9bae64f2edd4519d9d98b3