third_party.pigweed.src/modules.gni
Wyatt Hepler b82b44083c pw_build: Check in the modules lists .gni
Supporting a generated modules list becomes very complicated if builds
import the modules list in a .gn or BUILDCONFIG.gn file, since these are
executed before root_build_dir is defined.

- Instead of generating the modules list .gni during gn gen, use a
  checked-in copy of it.
- Add the check_modules Ninja target that checks the modules list and
  warns or aborts the build if something needs to be fixed.
- Add the update_modules Ninja target updates the checked-in modules
  list if there are no warnings or errors.

Change-Id: Iee939b4fadb22b832635db4f6bcd2170be14a8df
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/85680
Reviewed-by: Rob Oliver <rgoliver@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
2022-02-28 20:36:20 +00:00

27 lines
1.1 KiB
Plaintext

# Copyright 2022 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
# Generate a .gni file with a GN arg for each module and lists of modules and
# tests. Then, import the generated .gni file.
#
# To avoid generating it multiple times, the modules list is only generated by
# the default toolchain. The default toolchain runs before any other toolchains,
# so the module list will be created before it is used by other toolchains.
import("pw_build/generated_pigweed_modules_lists.gni")
declare_args() {
dir_pw_third_party = get_path_info("third_party", "abspath")
}