aboutsummaryrefslogtreecommitdiff
path: root/cmake
AgeCommit message (Collapse)Author
2024-09-12build: Minimize I/O operations in GenerateHeaderFromJson.cmakeLőrinc
Tested the performance with: > time cmake -DJSON_SOURCE_PATH=src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json -DHEADER_PATH=build/after/ecdsa_secp256k1_sha256_bitcoin_test.json -P cmake/script/GenerateHeaderFromJson.cmake Before: > 3.57s user 6.01s system 94% cpu 10.136 total After: > 0.17s user 0.01s system 98% cpu 0.187 total
2024-09-12build: Minimize I/O operations in GenerateHeaderFromRaw.cmakeLőrinc
Replaced multiple file writes with a single string template write. The raw content is first grouped into 8 byte chunks, followed by another regex replace which wraps them in `std::byte`. Tested the output with `diff -w` and they're the same - only whitespace differences because slightly different source formatting. Tested the performance with: > time cmake -DRAW_SOURCE_PATH=src/bench/data/block413567.raw -DHEADER_PATH=build/after/block413567.raw.h -DRAW_NAMESPACE=benchmark::data -P cmake/script/GenerateHeaderFromRaw.cmake Before: > 15.41s user 23.06s system 97% cpu 39.593 total After: > 0.77s user 0.06s system 97% cpu 0.849 total
2024-09-12Revert "build: Minimize I/O operations in `GenerateHeaderFrom{Json,Raw}.cmake`"Hennadii Stepanov
This reverts commit b07fe666f27e2b2515d2cb5a0339512045e64761.
2024-09-12Merge bitcoin/bitcoin#30803: build: Minor build system fixes and amendmentsmerge-script
1cc93fe7b40f10a7d1d1189058af98a2bce31381 build: Delete dead code that implements `IF_CHECK_FAILED` option (Hennadii Stepanov) 341ad238091d4df520c70f1757b017e6f6620f24 build: Delete MSVC special case for `BUILD_FOR_FUZZING` option (Hennadii Stepanov) fdad128b528bc8622bc6d8343026c28b18260f64 build: Stop enabling CMake's CMP0141 policy (Hennadii Stepanov) b2a6f545b4f6e3442ae51f66a6f3c1de92d00a1b doc: Drop `ctest` command from Windows cross-compiling instructions (Hennadii Stepanov) 73b618582dcf06dd01be062fe0f81060cfcb48d8 build: Print `CMAKE_CXX_COMPILER_ARG1` in summary (Hennadii Stepanov) f03c9420958de31fdfecec5fa3e23134aac61803 build, test: Add missed log options (Hennadii Stepanov) 6f2cb0eafdef81fb9464a4679c3a5905d19e5103 doc: Amend comment about ZeroMQ config files (Hennadii Stepanov) Pull request description: This PR addresses the following comments: - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742342524 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1728692369 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1736110362 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742931121 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1747723657 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742328675 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1723106474 ACKs for top commit: sipsorcery: tACK 1cc93fe7b40f10a7d1d1189058af98a2bce31381 (win11 msvc). maflcko: re-ACK 1cc93fe7b40f10a7d1d1189058af98a2bce31381 Tree-SHA512: a390797bb4d3b7eb9163653b6c9c324e7a01090f6cdda74df7349a24a5c4a2084e5912878747f56561315afc70cae9adb1c363f47ceb0af96004ea591d25171b
2024-09-12Merge bitcoin/bitcoin#30838: build: Use CMake's default permissions in macOS ↵merge-script
`deploy` target 5ba03e7d35e1b47ba864c9ae3c94af97cd3ae10b build: Use CMake's default permissions in macOS `deploy` target (Hennadii Stepanov) Pull request description: This PR ensures that the file permissions in macOS `zip` archives are independent of the user's `umask` value. Fixes https://github.com/bitcoin/bitcoin/issues/30815. ACKs for top commit: fanquake: ACK 5ba03e7d35e1b47ba864c9ae3c94af97cd3ae10b - I'm going to merge this now so we return to usable (comparable) guix builds. Tree-SHA512: 78f724cd3ffd5c1fd5fc1b4832f1e8154c62723f3de5ac9599f44715cbd08a3dfbb806801411c55069773d2e34c9f8cab25585dbad2f032c36b68dd83cb51847
2024-09-12Merge bitcoin/bitcoin#30842: build: Minimize I/O operations in ↵merge-script
`GenerateHeaderFrom{Json,Raw}.cmake` b07fe666f27e2b2515d2cb5a0339512045e64761 build: Minimize I/O operations in `GenerateHeaderFrom{Json,Raw}.cmake` (Hennadii Stepanov) Pull request description: This PR aims to reduce build time by replacing multiple `file(WRITE|APPEND ...)` commands with a single `file(WRITE ...)` command. Due to differences in implementation (e.g., filesystem design, system calls, caching), a noticeable improvement in build time is observed only on Windows. Additionally, the code has been refactored to remove the `remainder` local variables. ACKs for top commit: sipsorcery: tACK b07fe666f27e2b2515d2cb5a0339512045e64761 maflcko: review ACK b07fe666f27e2b2515d2cb5a0339512045e64761 TheCharlatan: ACK b07fe666f27e2b2515d2cb5a0339512045e64761 Tree-SHA512: 6ed3ae8fe7d8859af38d83918eddf7cb318607787863b95589f4a7a45a36f8c4bd1c01e366078d0515115c121bc857dc63471e52ff26fc49edbc8bb69875e947
2024-09-10build: Use CMake's default permissions in macOS `deploy` targetHennadii Stepanov
This change fixes reproducibility issue with macOS Guix builds.
2024-09-08build: Delete dead code that implements `IF_CHECK_FAILED` optionHennadii Stepanov
2024-09-07build: Minimize I/O operations in `GenerateHeaderFrom{Json,Raw}.cmake`Hennadii Stepanov
2024-09-06build: Print `CMAKE_CXX_COMPILER_ARG1` in summaryHennadii Stepanov
When `-DCMAKE_CXX_COMPILER='clang++;-stdlib=libc++;-m32'` is provided, `-stdlib=libc++ -m32` flags are printed in the summary now.
2024-09-06cmake: add USE_SOURCE_PERMISSIONS to all configure_file usagefanquake
`USE_SOURCE_PERMISSIONS` is the default, so this should not change behaviour. However, being explicit makes it clear what we are doing. Related to #30815. See https://cmake.org/cmake/help/latest/command/configure_file.html#options.
2024-09-05cmake: scope Boost Test check to vcpkgfanquake
This check was added for vcpkg, given how it packages Boost. However, we don't need to run the check for other platforms, and it's quite slow. So, scope it to VCPKG. On my machine, this reduces the time to run `cmake -B build` from ~12 seconds, to ~6 seconds. Fixes: #30787
2024-09-05Merge bitcoin/bitcoin#30796: test: Use std::span and std::string_view for ↵merge-script
raw data faecca9a85c1c1917d024f55cca34d19cc94f3b9 test: Use span for raw data (MarcoFalke) fac973647d69dd14089cee9972e8dfa0074c8a97 test: Use string_view for json_tests (MarcoFalke) Pull request description: The build system converts raw data into a C++ header file for tests. This change modernizes the code to use the convenience wrappers `std::span` and `std::string_view`, so that redundant copies can be avoided. ACKs for top commit: fjahr: re-ACK https://github.com/bitcoin/bitcoin/commit/faecca9a85c1c1917d024f55cca34d19cc94f3b9 TheCharlatan: ACK faecca9a85c1c1917d024f55cca34d19cc94f3b9 stickies-v: ACK faecca9a85c1c1917d024f55cca34d19cc94f3b9 hebasto: ACK faecca9a85c1c1917d024f55cca34d19cc94f3b9, I have reviewed the code and the generated headers. Tree-SHA512: 1f4951c54aff11ba27c41fb70f2821bdb79e06ca0abae734b970bd0d64dda9d8cced824a891fd51b3e9d4e5715ee9eb49ed5d369010a45eca7c3bec9f8641235
2024-09-05test: Use span for raw dataMarcoFalke
This change allows to drop brittle sizeof calls in favor of the std::span::size method. Other improvements include: * Use of a namespace to mark test and bench data * Use of the modern std::byte * Drop of a no longer used std::vector copy and the bench/data module
2024-09-04build: Add `JOBS` variable support to `CoverageFuzz.cmake` scriptHennadii Stepanov
2024-09-04build: Add missed `-g` for "Coverage" build configurationHennadii Stepanov
2024-09-04build: Add `COMMAND_ERROR_IS_FATAL` to every process in coverage scripsHennadii Stepanov
2024-09-03scripted-diff: fuzz: Rename fuzz_seed_corpus to fuzz_corporaMarcoFalke
-BEGIN VERIFY SCRIPT- ren() { sed -i "s:\<$1\>:$2:g" $( git grep -l "$1" ) ; } ren fuzz_seed_corpus fuzz_corpora ren FUZZ_SEED_CORPUS_DIR FUZZ_CORPORA_DIR -END VERIFY SCRIPT-
2024-09-03test: Use string_view for json_testsMarcoFalke
This avoids a static constructor of the global std::string, and rules out possibly expensive and implicit copies of the string completely.
2024-08-29doc: Drop mentions of `share/genbuild.sh`Hennadii Stepanov
2024-08-16cmake: Add `Coverage` and `CoverageFuzz` scriptsHennadii Stepanov
2024-08-16cmake: Add `Maintenance` moduleHennadii Stepanov
2024-08-16cmake: Add `APPEND_{CPP,C,CXX,LD}FLAGS` cache variablesHennadii Stepanov
The content of those variables is appended to the each target after the flags added by the build system.
2024-08-16cmake: Add `AddWindowsResources` moduleHennadii Stepanov
2024-08-16cmake: Add `WITH_DBUS` optionHennadii Stepanov
2024-08-16cmake: Add `libqrencode` optional package supportHennadii Stepanov
2024-08-16cmake: Build `bitcoin-qt` executableHennadii Stepanov
2024-08-16cmake: Add Python-based testsHennadii Stepanov
2024-08-16cmake: Add external signer supportHennadii Stepanov
2024-08-16cmake: Add `systemtap-sdt` optional package supportHennadii Stepanov
2024-08-16cmake: Add `libminiupnpc` optional package supportHennadii Stepanov
2024-08-16cmake: Add `libnatpmp` optional package supportHennadii Stepanov
2024-08-16cmake: Add wallet functionalityHennadii Stepanov
2024-08-16cmake: Build `test_bitcoin` executableHennadii Stepanov
2024-08-16cmake: Build `bitcoind` executableHennadii Stepanov
2024-08-16cmake: Add `FindLibevent` moduleHennadii Stepanov
2024-08-16cmake: Build `bitcoin_crypto` libraryHennadii Stepanov
2024-08-16cmake: Generate `obj/build.h` headerHennadii Stepanov
2024-08-16cmake: Build `minisketch` static libraryHennadii Stepanov
2024-08-16cmake: Build `leveldb` static libraryHennadii Stepanov
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
2024-08-16cmake: Build `crc32c` static libraryHennadii Stepanov
2024-08-16cmake: Add `ccache` supportHennadii Stepanov
2024-08-16cmake: Redefine/adjust per-configuration flagsHennadii Stepanov
2024-08-16cmake: Add `TryAppendLinkerFlag` moduleHennadii Stepanov
2024-08-16cmake: Add `TryAppendCXXFlags` moduleHennadii Stepanov
2024-08-16cmake: Add introspection moduleHennadii Stepanov
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com> Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
2024-08-16cmake: Add `config/bitcoin-config.h` supportHennadii Stepanov
2024-08-16cmake: Print compiler and linker flags in summaryHennadii Stepanov
2024-08-16cmake: Introduce interface libraries to encapsulate common flagsHennadii Stepanov
Also add a sanity check for non-encapsulated (directory-wide) build properties.