Skip to content

Commit fa09451

Browse files
author
MarcoFalke
committed
Add lint check for bitcoin-config.h include IWYU pragma
Also, remove the no longer needed, remaining definitions and checks of HAVE_CONFIG_H.
1 parent dddd40b commit fa09451

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

build-aux/m4/bitcoin_qt.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
227227
BITCOIN_QT_PATH_PROGS([LUPDATE], [lupdate-qt5 lupdate5 lupdate],$qt_bin_path, yes)
228228
BITCOIN_QT_PATH_PROGS([LCONVERT], [lconvert-qt5 lconvert5 lconvert], $qt_bin_path, yes)
229229
230-
MOC_DEFS='-DHAVE_CONFIG_H -I$(srcdir)'
230+
MOC_DEFS='-I$(srcdir)'
231231
case $host in
232232
*darwin*)
233233
BITCOIN_QT_CHECK([

build_msvc/bitcoin-qt/bitcoin-qt.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
</Link>
6363
<ResourceCompile>
6464
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
65-
<PreprocessorDefinitions>HAVE_CONFIG_H;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
65+
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
6666
</ResourceCompile>
6767
</ItemDefinitionGroup>
6868

@@ -75,7 +75,7 @@
7575
</Link>
7676
<ResourceCompile>
7777
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
78-
<PreprocessorDefinitions>HAVE_CONFIG_H;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
78+
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
7979
</ResourceCompile>
8080
</ItemDefinitionGroup>
8181

build_msvc/common.init.vcxproj.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<AdditionalOptions>/utf-8 /Zc:preprocessor /Zc:__cplusplus /std:c++20 %(AdditionalOptions)</AdditionalOptions>
9191
<DisableSpecificWarnings>4018;4244;4267;4715;4805</DisableSpecificWarnings>
9292
<TreatWarningAsError>true</TreatWarningAsError>
93-
<PreprocessorDefinitions>_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;SECP256K1_STATIC;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;PROVIDE_FUZZ_MAIN_FUNCTION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
93+
<PreprocessorDefinitions>_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;SECP256K1_STATIC;ZMQ_STATIC;NOMINMAX;WIN32;_CRT_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;PROVIDE_FUZZ_MAIN_FUNCTION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9494
<AdditionalIncludeDirectories>..\..\src;..\..\src\minisketch\include;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9595
</ClCompile>
9696
<Link>

test/lint/test_runner/src/main.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ Please add any false positives, such as subtrees, or externally sourced files to
178178

179179
fn lint_includes_build_config() -> LintResult {
180180
let config_path = "./src/config/bitcoin-config.h.in";
181-
let include_directive = "#include <config/bitcoin-config.h>";
182181
if !Path::new(config_path).is_file() {
183182
assert!(Command::new("./autogen.sh")
184183
.status()
@@ -235,7 +234,11 @@ fn lint_includes_build_config() -> LintResult {
235234
} else {
236235
"--files-with-matches"
237236
},
238-
include_directive,
237+
if mode {
238+
"^#include <config/bitcoin-config.h> // IWYU pragma: keep$"
239+
} else {
240+
"#include <config/bitcoin-config.h>" // Catch redundant includes with and without the IWYU pragma
241+
},
239242
"--",
240243
])
241244
.args(defines_files.lines())
@@ -256,6 +259,11 @@ even though bitcoin-config.h indicates that a faster feature is available and sh
256259
257260
If you are unsure which symbol is used, you can find it with this command:
258261
git grep --perl-regexp '{}' -- file_name
262+
263+
Make sure to include it with the IWYU pragma. Otherwise, IWYU may falsely instruct to remove the
264+
include again.
265+
266+
#include <config/bitcoin-config.h> // IWYU pragma: keep
259267
"#,
260268
defines_regex
261269
));

0 commit comments

Comments
 (0)