Skip to content

Conversation

hebasto
Copy link
Owner

@hebasto hebasto commented Jan 25, 2024

This PR is a continuation of the today's (2024-01-25) discussion on the meeting.

It is supposed to be a place for the further discussion and making a decision regarding the default option values.


The cmake-adjusted branch is to be always synced with the cmake-staging one.

hebasto and others added 30 commits January 26, 2024 20:45
Also add a sanity check for non-encapsulated (directory-wide) build
properties.
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
To configure CMake for cross-compiling, use
`--toolchain depends/${HOST}/share/toolchain.cmake` command-line option.
@hebasto hebasto changed the title cmake: Switch from tri-state options to ON/OFF [FUTURE] cmake: Switch from tri-state options to ON/OFF Jan 27, 2024
Make build options explicit.
The tri-state options were provided for the only purpose to check the
feature parity with the Autotools-based build system.

Also a new "dev-mode" configure preset suggested.
expected: 'pass'

# SQLite: Using CMake's FindSQLite3 module.
- system_packages: 'libboost-dev libevent-dev'
depends_options: 'NO_BDB=1 NO_SQLITE=1 NO_USDT=1'
build_options: '-DWITH_SQLITE=ON'
build_options: '-DENABLE_WALLET=ON -DWITH_SQLITE=ON'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't WITH_SQLITE=ON imply ENABLE_WALLET? What (extra) does ENABLE_WALLET do here? I'm not sure we'll actually want to keep it as an option.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reworked in #164.

@hebasto
Copy link
Owner Author

hebasto commented Apr 21, 2024

See #161 as a stage one of switching away from tri-state options.

hebasto added a commit that referenced this pull request Apr 22, 2024
df4e46b cmake [KILL 3-STATE]: Switch `MULTIPROCESS` to boolean w/ default OFF (Hennadii Stepanov)
732b4e9 cmake [KILL 3-STATE]: Switch `WITH_ZMQ` to boolean w/ default OFF (Hennadii Stepanov)
5bfecf4 cmake [KILL 3-STATE]: Switch `WITH_MINIUPNPC` to boolean w/ default OFF (Hennadii Stepanov)
a4d6a0c cmake [KILL 3-STATE]: Switch `WITH_NATPMP` to boolean w/ default OFF (Hennadii Stepanov)
dc20cdf fixup! build: Generate `share/toolchain.cmake` in depends (Hennadii Stepanov)
63bbe26 cmake: Add CI-specific presets (Hennadii Stepanov)

Pull request description:

  This PR partially pulled from #83 with options, which default values seem non-controversial.

  As a bonus, the help string duplication in `depends/toolchain.cmake.in` has been eliminated for the touched lines.

  The  [**Autotools vs CMake Feature Parity Table**](https://gist.github.com/hebasto/2ef97d3a726bfce08ded9df07f7dab5e) has been updated as well.

ACKs for top commit:
  vasild:
    ACK df4e46b

Tree-SHA512: c1079b929944b0f7ca60436c12ee655c4235ada03ebace25d091ef0b938e3beb2f48beea529b7205cd8ecec9d7377e6b6d9e0368c8902dd6e06303cacbc4747f
@hebasto
Copy link
Owner Author

hebasto commented Apr 27, 2024

@hebasto hebasto closed this Apr 27, 2024
hebasto added a commit that referenced this pull request May 4, 2024
2b4ad50 cmake [KILL 3-STATE]: Switch `WITH_{SQLITE,BDB}` to boolean (Hennadii Stepanov)

Pull request description:

  This PR is a continuation of #161 and #162 and tackles with the `WITH_SQLITE` and `WITH_BDB` options.

  For the latter the default value `OFF` is suggested.

  The #83 (comment):
  > Shouldn't `WITH_SQLITE=ON` imply `ENABLE_WALLET`? What (extra) does `ENABLE_WALLET` do here? I'm not sure we'll actually want to keep it as an option.

  has been addressed.

ACKs for top commit:
  TheCharlatan:
    ACK 2b4ad50

Tree-SHA512: 13d5bd16709ab557ee736696fe1d5d3fe64bae8cb77c000401c26b8be2deab0473474f7fa9bb958884ba3ab9c4d0b66e44766ca5c1c86d0fab3957642ec996b9
hebasto pushed a commit that referenced this pull request Jul 26, 2025
c40dbbb test: Move `script_assets_tests` into its own suite (Hennadii Stepanov)

Pull request description:

  This PR ensures that the `script_assets_tests` test case is explicitly reported as "Skipped" when it is not run, making it clearer when running the test suite with `ctest`:

  - on the master branch @ 9355578:
  ```
  $ env -u DIR_UNIT_TEST_DATA ctest --test-dir build -j 16 -R "^script_"
  Internal ctest changing into directory: /home/hebasto/git/bitcoin/build
  Test project /home/hebasto/git/bitcoin/build
      Start 87: script_tests
      Start 83: script_p2sh_tests
      Start 85: script_segwit_tests
      Start 86: script_standard_tests
      Start 84: script_parse_tests
  1/5 Test #84: script_parse_tests ...............   Passed    0.11 sec
  2/5 Test #86: script_standard_tests ............   Passed    0.11 sec
  3/5 Test #85: script_segwit_tests ..............   Passed    0.12 sec
  4/5 Test #83: script_p2sh_tests ................   Passed    0.12 sec
  5/5 Test #87: script_tests .....................   Passed    0.36 sec

  100% tests passed, 0 tests failed out of 5

  Total Test time (real) =   0.37 sec
  ```
  - with this PR:
  ```
  $ env -u DIR_UNIT_TEST_DATA ctest --test-dir build -j 16 -R "^script_"
  Internal ctest changing into directory: /home/hebasto/git/bitcoin/build
  Test project /home/hebasto/git/bitcoin/build
      Start 83: script_assets_tests
      Start 88: script_tests
      Start 84: script_p2sh_tests
      Start 86: script_segwit_tests
      Start 87: script_standard_tests
      Start 85: script_parse_tests
  1/6 Test #85: script_parse_tests ...............   Passed    0.11 sec
  2/6 Test #83: script_assets_tests ..............***Skipped   0.12 sec
  3/6 Test #86: script_segwit_tests ..............   Passed    0.11 sec
  4/6 Test #87: script_standard_tests ............   Passed    0.11 sec
  5/6 Test #84: script_p2sh_tests ................   Passed    0.12 sec
  6/6 Test #88: script_tests .....................   Passed    0.36 sec

  100% tests passed, 0 tests failed out of 6

  Total Test time (real) =   0.37 sec

  The following tests did not run:
   83 - script_assets_tests (Skipped)
  $ env DIR_UNIT_TEST_DATA=/home/hebasto/git/bitcoin/qa-assets/unit_test_data ctest --test-dir build -j 16 -R "^script_"
  Internal ctest changing into directory: /home/hebasto/git/bitcoin/build
  Test project /home/hebasto/git/bitcoin/build
      Start 83: script_assets_tests
      Start 88: script_tests
      Start 84: script_p2sh_tests
      Start 86: script_segwit_tests
      Start 87: script_standard_tests
      Start 85: script_parse_tests
  1/6 Test #85: script_parse_tests ...............   Passed    0.11 sec
  2/6 Test #87: script_standard_tests ............   Passed    0.11 sec
  3/6 Test #86: script_segwit_tests ..............   Passed    0.11 sec
  4/6 Test #84: script_p2sh_tests ................   Passed    0.12 sec
  5/6 Test #88: script_tests .....................   Passed    0.35 sec
  6/6 Test #83: script_assets_tests ..............   Passed    1.58 sec

  100% tests passed, 0 tests failed out of 6

  Total Test time (real) =   1.58 sec
  ```

ACKs for top commit:
  maflcko:
    re-ACK c40dbbb 👈
  ajtowns:
    ACK c40dbbb
  achow101:
    ACK c40dbbb

Tree-SHA512: 25713e1c3b507b6f2a5fecc7b1ea285a6642b906c248769238a58fc0df48489ac5f7606778f9e3653b407b7f1d06563e1554d04321303b350c80eb888500cc5d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants