cmake: Set `WITH_ZMQ` to `ON` in Windows presets
What changed, and why it matters
This commit changes Bitcoin Core's Windows build configuration so that the optional ZeroMQ notification feature is enabled by default in the Windows CMake presets. It also updates CI and documentation to match. There is no security-relevant code change here; it is purely a build-system consistency fix to align Windows builds with the existing default in the dependency manifest.
No security action required. Treat as a normal build-system maintenance change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch sets WITH_ZMQ=ON in two Windows CMake presets (vs2022 and vs2022-static), removes the explicit -DWITH_ZMQ=ON from the standard Windows CI job because it is now inherited from the preset, and adds -DWITH_ZMQ=OFF to the fuzz CI job and to a documentation example that disables default vcpkg features. ZeroMQ was already a default feature in vcpkg.json, so this commit only makes the CMake configuration consistent with that default. No source code, protocol logic, cryptography, or network handling is modified.
Changed components
CMakePresets.json.github/workflows/ci.ymldoc/build-windows-msvc.mdInspect captured patch +7 / −5
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f495197f..db67b29d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -218,10 +218,10 @@ jobs:
job-type: [standard, fuzz]
include:
- job-type: standard
- generate-options: '-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DWERROR=ON'
+ generate-options: '-DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DWERROR=ON'
job-name: 'Windows native, VS 2022'
- job-type: fuzz
- generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
+ generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DWITH_ZMQ=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
job-name: 'Windows native, fuzz, VS 2022'
steps:
diff --git a/CMakePresets.json b/CMakePresets.json
index d478af3e..ae9d06da 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -14,7 +14,8 @@
"toolchainFile": "$env{VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows",
- "BUILD_GUI": "ON"
+ "BUILD_GUI": "ON",
+ "WITH_ZMQ": "ON"
}
},
{
@@ -30,7 +31,8 @@
"toolchainFile": "$env{VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows-static",
- "BUILD_GUI": "ON"
+ "BUILD_GUI": "ON",
+ "WITH_ZMQ": "ON"
}
},
{
diff --git a/doc/build-windows-msvc.md b/doc/build-windows-msvc.md
index cf84cddb..5b75a62f 100644
--- a/doc/build-windows-msvc.md
+++ b/doc/build-windows-msvc.md
@@ -97,7 +97,7 @@ cmake -B build --preset vs2022-static -DVCPKG_INSTALLED_DIR="C:\path_without_spa
One can skip vcpkg manifest default features to speedup the configuration step.
For example, the following invocation will skip all features except for "wallet" and "tests" and their dependencies:
```
-cmake -B build --preset vs2022 -DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet;tests" -DBUILD_GUI=OFF
+cmake -B build --preset vs2022 -DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet;tests" -DBUILD_GUI=OFF -DWITH_ZMQ=OFF
```
Available features are listed in the [`vcpkg.json`](/vcpkg.json) file.
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.