pw_presubmit: gn check system and generated files
- In presubmit, do gn check in a separate step and specify
--check-generated and --check-system.
- Fix gn check issues in pw_fuzzer by adding a missing dependency.
- Disable include checking for generated pw_rpc headers since they
include internal pw_rpc headers.
Change-Id: I8b9f03957ac60166eeb141bcba9dc493bfc6350c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/44562
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/pw_fuzzer/BUILD.gn b/pw_fuzzer/BUILD.gn
index e97d084..1359db4 100644
--- a/pw_fuzzer/BUILD.gn
+++ b/pw_fuzzer/BUILD.gn
@@ -19,8 +19,9 @@
import("$dir_pw_fuzzer/fuzzer.gni")
import("$dir_pw_fuzzer/oss_fuzz.gni")
-config("default_config") {
+config("public_include_path") {
include_dirs = [ "public" ]
+ visibility = [ ":*" ]
}
# This is added automatically by the `pw_fuzzer` template.
@@ -45,7 +46,7 @@
}
pw_source_set("pw_fuzzer") {
- public_configs = [ ":default_config" ]
+ public_configs = [ ":public_include_path" ]
public = [
"public/pw_fuzzer/asan_interface.h",
"public/pw_fuzzer/fuzzed_data_provider.h",
@@ -54,7 +55,7 @@
}
pw_source_set("run_as_unit_test") {
- configs = [ ":default_config" ]
+ configs = [ ":public_include_path" ]
sources = [ "pw_fuzzer_disabled.cc" ]
deps = [
dir_pw_log,
diff --git a/pw_fuzzer/fuzzer.gni b/pw_fuzzer/fuzzer.gni
index 776fa5d..de7d6c6 100644
--- a/pw_fuzzer/fuzzer.gni
+++ b/pw_fuzzer/fuzzer.gni
@@ -46,10 +46,14 @@
pw_executable(target_name) {
forward_variables_from(invoker, "*", [ "visibility" ])
forward_variables_from(invoker, [ "visibility" ])
+
+ if (!defined(deps)) {
+ deps += [ dir_pw_fuzzer ]
+ }
+
if (!defined(configs)) {
configs = []
}
- configs += [ "$dir_pw_fuzzer:default_config" ]
if (pw_toolchain_OSS_FUZZ_ENABLED) {
configs += [ "$dir_pw_fuzzer:oss_fuzz" ]
} else {
diff --git a/pw_presubmit/py/pw_presubmit/build.py b/pw_presubmit/py/pw_presubmit/build.py
index 835a95e..491809a 100644
--- a/pw_presubmit/py/pw_presubmit/build.py
+++ b/pw_presubmit/py/pw_presubmit/build.py
@@ -83,12 +83,19 @@
'gen',
gn_output_dir,
'--color=always',
- *(['--check'] if gn_check else []),
*(['--fail-on-unused-args'] if gn_fail_on_unused else []),
*args,
*args_option,
cwd=gn_source_dir)
+ if gn_check:
+ call('gn',
+ 'check',
+ gn_output_dir,
+ '--check-generated',
+ '--check-system',
+ cwd=gn_source_dir)
+
def ninja(directory: Path, *args, **kwargs) -> None:
"""Runs ninja in the specified directory."""
diff --git a/pw_protobuf/encoder_fuzzer.cc b/pw_protobuf/encoder_fuzzer.cc
index 1ede047..f22eaed 100644
--- a/pw_protobuf/encoder_fuzzer.cc
+++ b/pw_protobuf/encoder_fuzzer.cc
@@ -12,15 +12,14 @@
// License for the specific language governing permissions and limitations under
// the License.
-#include <pw_fuzzer/asan_interface.h>
-#include <pw_fuzzer/fuzzed_data_provider.h>
-
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <span>
#include <vector>
+#include "pw_fuzzer/asan_interface.h"
+#include "pw_fuzzer/fuzzed_data_provider.h"
#include "pw_protobuf/encoder.h"
namespace {
diff --git a/pw_protobuf_compiler/proto.gni b/pw_protobuf_compiler/proto.gni
index 51d443f..33fe5d7 100644
--- a/pw_protobuf_compiler/proto.gni
+++ b/pw_protobuf_compiler/proto.gni
@@ -212,6 +212,7 @@
public_deps = [ "$dir_pw_third_party/nanopb" ] + invoker.deps
sources = invoker.outputs
public = filter_include(sources, [ "*.pb.h" ])
+ check_includes = false
}
}
}
@@ -244,6 +245,7 @@
"$dir_pw_rpc/raw:method_union",
] + invoker.deps
public = invoker.outputs
+ check_includes = false
}
}