forked from lthn/blockchain
Update README with build and packaging instructions
Improved documentation for build customization, added examples for using Makefile variables, clarified release packaging output directory, and included instructions for cleaning the build directory. Also updated formatting for better readability.
This commit is contained in:
parent
10f35173eb
commit
4eebc0ac87
1 changed files with 48 additions and 37 deletions
85
README.md
85
README.md
|
|
@ -1,13 +1,13 @@
|
|||
[](https://discord.gg/pfgT2Kz)
|
||||
|
||||
### Dependencies
|
||||
| component / version | minimum <br>(not recommended but may work) | recommended | most recent of what we have ever tested |
|
||||
|-----------------------------------------------------------------------------------------------------|--------------------------------------------|----------------|-----------------------------------------|
|
||||
| gcc (Linux) | 8.4.0 | 9.4.0 | 12.3.0 |
|
||||
| llvm/clang (Linux) | UNKNOWN | 7.0.1 | 8.0.0 |
|
||||
| [MSVC](https://visualstudio.microsoft.com/downloads/) (Windows) | 2017 (15.9.30) | 2022 (17.11.5) | 2022 (17.12.3) |
|
||||
| [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 |
|
||||
| component / version | minimum <br>(not recommended but may work) | recommended | most recent of what we have ever tested |
|
||||
|-----------------------------------------------------------------------------|--------------------------------------------|----------------|-----------------------------------------|
|
||||
| gcc (Linux) | 8.4.0 | 9.4.0 | 12.3.0 |
|
||||
| llvm/clang (Linux) | UNKNOWN | 7.0.1 | 8.0.0 |
|
||||
| [MSVC](https://visualstudio.microsoft.com/downloads/) (Windows) | 2017 (15.9.30) | 2022 (17.11.5) | 2022 (17.12.3) |
|
||||
| [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
|
||||
|
|
@ -38,6 +38,20 @@ 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.
|
||||
|
||||
```shell
|
||||
make release TESTNET=1
|
||||
```
|
||||
The final packages will be located in the `build/packages/` directory
|
||||
|
||||
## Advanced Build Customization (Makefile Variables)
|
||||
|
||||
For advanced use cases, you can override variables in the `Makefile` to customize the build process.
|
||||
|
||||
* **Build a `testnet` version:**
|
||||
```shell
|
||||
make build TESTNET=1
|
||||
|
|
@ -46,37 +60,34 @@ You can use the `make build` target with variables for more control over the fin
|
|||
```shell
|
||||
make build STATIC=1
|
||||
```
|
||||
* **Build a Debug build with 8 compile threads:**
|
||||
```shell
|
||||
make build BUILD_TYPE=Debug CPU_CORES=8
|
||||
```
|
||||
* **Use custom CMakePresets:**
|
||||
```shell
|
||||
make build PRESET_CONFIGURE=my-config-preset PRESET_BUILD=my-build-preset
|
||||
```
|
||||
|
||||
## Creating Release Packages
|
||||
| Variable | Description | Default Value |
|
||||
|--------------------|------------------------------------------------------------------------|-------------------------|
|
||||
| `BUILD_TYPE` | Sets the build configuration (e.g., `Release`, `Debug`). | `Release` |
|
||||
| `TESTNET` | Set to `1` to build for the test network. | `0` |
|
||||
| `STATIC` | Set to `1` to link libraries statically. | `0` |
|
||||
| `CPU_CORES` | Number of CPU cores to use for parallel compilation. | Auto-detected |
|
||||
| `BUILD_VERSION` | The version string to embed in the binaries. | `6.0.1` |
|
||||
| `BUILD_FOLDER` | The output directory for the build. | `build/release` |
|
||||
| `PRESET_CONFIGURE` | The CMake preset to use for the `configure` step. | `conan-release` |
|
||||
| `PRESET_BUILD` | The CMake preset to use for the `build` step. | `conan-release` |
|
||||
| `CONAN_CACHE` | The path for the local Conan cache, where the dependencies are stored. | `./build/sdk` |
|
||||
| `CONAN_EXECUTABLE` | The path to the usable Conan executable. | `./build/bin/conan` |
|
||||
| `CONAN_URL` | The URL for the Conan remote repository. | `artifacts.host.uk.com` |
|
||||
| `CONAN_USER` | The username for the Conan remote. | `public` |
|
||||
| `CONAN_PASSWORD` | The password for the Conan remote. | |
|
||||
|
||||
To create distributable packages (e.g., `.zip`, `.deb`), run the `release` target. This will build the project, build the documentation, and then package everything.
|
||||
## Cleaning the Build Directory
|
||||
|
||||
```shell
|
||||
make release
|
||||
```
|
||||
The final packages will be located in the `build/release/` directory
|
||||
You can nuke the build directory with `make clean-build`
|
||||
|
||||
## Advanced Build Customization (Makefile Variables)
|
||||
|
||||
For advanced use cases, you can override variables in the `Makefile` to customize the build process.
|
||||
|
||||
Example:
|
||||
```shell
|
||||
make build BUILD_TYPE=Debug CPU_CORES=8
|
||||
```
|
||||
|
||||
| Variable | Description | Default Value |
|
||||
|--------------------|------------------------------------------------------------------------|-------------------------------------------------------------------|
|
||||
| `BUILD_TYPE` | Sets the build configuration (e.g., `Release`, `Debug`). | `Release` |
|
||||
| `TESTNET` | Set to `1` to build for the test network. | `0` |
|
||||
| `STATIC` | Set to `1` to link libraries statically. | `0` |
|
||||
| `CPU_CORES` | Number of CPU cores to use for parallel compilation. | Auto-detected |
|
||||
| `BUILD_VERSION` | The version string to embed in the binaries. | `6.0.1` |
|
||||
| `BUILD_FOLDER` | The output directory for the build. | `build/release` |
|
||||
| `PRESET_CONFIGURE` | The CMake preset to use for the `configure` step. | `conan-release` |
|
||||
| `PRESET_BUILD` | The CMake preset to use for the `build` step. | `conan-release` |
|
||||
| `CONAN_CACHE` | The path for the local Conan cache, where the dependencies are stored. | `./build/sdk` |
|
||||
| `CONAN_EXECUTABLE` | The path to the usable Conan executable. | `./build/bin/conan` |
|
||||
| `CONAN_URL` | The URL for the Conan remote repository. | `https://artifacts.host.uk.com/artifactory/api/conan/conan-build` |
|
||||
| `CONAN_USER` | The username for the Conan remote. | `public` |
|
||||
| `CONAN_PASSWORD` | The password for the Conan remote. | |
|
||||
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`
|
||||
Loading…
Add table
Reference in a new issue