21 Commits

Author SHA1 Message Date
Hennadii Stepanov
a3b5dc0572 cmake: Add GenerateWindowsInstaller script
The new script is parameterized by paths to executables. It can be used
to generate the installer from the install tree rather than the build
tree. This capability will be used by the Guix scripts in subsequent
commits.
2026-07-18 17:35:49 +01:00
Hennadii Stepanov
fe941938e8 cmake: Remove unnecessary BITCOIN_GENBUILD_NO_GIT environment variable
This functionality is now covered by the `CMAKE_DISABLE_FIND_PACKAGE_Git`
variable.

Note for reviewers: consider reviewing with `git diff -w`.
2026-05-14 13:29:04 +01:00
Hennadii Stepanov
9a2cced23a cmake, refactor: Move find_package(Git) to src/CMakeLists.txt
This change allows the use of the `CMAKE_DISABLE_FIND_PACKAGE_Git`
variable to explicitly disable git usage.
2026-05-14 13:27:13 +01:00
Fabian Jahr
6202b50fb9 build: Generate ip_asn.dat.h during build process
This can be disabled with -DWITH_EMBEDDED_ASMAP=OFF.
2026-02-03 18:03:37 +01:00
Hennadii Stepanov
e3c0152769 cmake: Copy cov_tool_wrapper.sh.in to the build tree
This change ensures that `cov_tool_wrapper.sh.in` is available when
invoking the `Coverage.cmake` script from any directory.
2025-01-23 10:00:58 +00:00
Lőrinc
63b6b638aa build: Use character literals for generated headers to avoid narrowing
Use character literals instead of integer hex values (i.e. `'\x5b','\x0a', ...` instead of `0x5b, 0x0a, ...`) for generated headers.
This avoids C++11 narrowing warnings in a more concise way than using explicit char casts.

Extra whitespace is also removed between elements for brevity.
2024-12-20 14:37:31 +01:00
Lőrinc
2a581144f2 build: Minimize I/O operations in GenerateHeaderFromJson.cmake
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-12 22:08:15 +02:00
Lőrinc
aa003d1568 build: Minimize I/O operations in GenerateHeaderFromRaw.cmake
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-12 22:08:15 +02:00
Hennadii Stepanov
fdeb717e78 Revert "build: Minimize I/O operations in GenerateHeaderFrom{Json,Raw}.cmake"
This reverts commit b07fe666f2.
2024-09-12 16:34:57 +01:00
Hennadii Stepanov
b07fe666f2 build: Minimize I/O operations in GenerateHeaderFrom{Json,Raw}.cmake 2024-09-07 15:37:53 +01:00
merge-script
6852d1d487 Merge bitcoin/bitcoin#30796: test: Use std::span and std::string_view for raw data
faecca9a85 test: Use span for raw data (MarcoFalke)
fac973647d 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 faecca9a85
  TheCharlatan:
    ACK faecca9a85
  stickies-v:
    ACK faecca9a85
  hebasto:
    ACK faecca9a85, I have reviewed the code and the generated headers.

Tree-SHA512: 1f4951c54aff11ba27c41fb70f2821bdb79e06ca0abae734b970bd0d64dda9d8cced824a891fd51b3e9d4e5715ee9eb49ed5d369010a45eca7c3bec9f8641235
2024-09-05 13:46:22 +01:00
MarcoFalke
faecca9a85 test: Use span for raw data
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-05 10:57:19 +02:00
Hennadii Stepanov
d9fcbfc372 build: Add JOBS variable support to CoverageFuzz.cmake script 2024-09-04 16:03:06 +01:00
Hennadii Stepanov
fe2003ab12 build: Add COMMAND_ERROR_IS_FATAL to every process in coverage scrips 2024-09-04 16:02:14 +01:00
MarcoFalke
8888beea8d scripted-diff: fuzz: Rename fuzz_seed_corpus to fuzz_corpora
-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-03 20:40:35 +02:00
MarcoFalke
fac973647d test: Use string_view for json_tests
This avoids a static constructor of the global std::string, and rules
out possibly expensive and implicit copies of the string completely.
2024-09-03 16:06:20 +02:00
Hennadii Stepanov
d209e4f156 doc: Drop mentions of share/genbuild.sh 2024-08-29 12:38:37 +01:00
Hennadii Stepanov
8b6f1c4353 cmake: Add Coverage and CoverageFuzz scripts 2024-08-16 21:19:12 +01:00
Hennadii Stepanov
747adb6ffe cmake: Add Maintenance module 2024-08-16 21:19:11 +01:00
Hennadii Stepanov
959370bd76 cmake: Build test_bitcoin executable 2024-08-16 19:27:39 +01:00
Hennadii Stepanov
752747fda8 cmake: Generate obj/build.h header 2024-08-16 19:27:38 +01:00