meson/mesonbuild/scripts
Dylan Baker ea344be9b0 backend/ninja: use a two step process for dependency scanning
This splits the scanner into two discrete steps, one that scans the
source files, and one that that reads in the dependency information and
produces a dyndep.

The scanner uses the JSON format from
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html,
which is the same format the MSVC and Clang use for C++ modules
scanning. This will allow us to more easily move to using MSVC and
clang-scan-deps when possible.

As an added bonus, this correctly tracks dependencies across TU and
Target boundaries, unlike the previous implementation, which assumed
that if it couldn't find a provider that everything was good, but could
run into issues. Because of that limitation Fortran code had to fully
depend on all of it's dependencies, transitive or not. Now, when using
the dep scanner, we can remove that restriction, allowing more
parallelism.
2025-04-03 12:27:07 -07:00
..
__init__.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
clangformat.py scripts: convert run_tool to asyncio 2024-12-19 09:25:20 -08:00
clangtidy.py scripts: convert run_tool to asyncio 2024-12-19 09:25:20 -08:00
cleantrees.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
clippy.py clippy: skip "linker" blocks in target_sources 2025-01-19 20:47:01 +02:00
cmake_run_ctgt.py treewide: automatic rewriting of all comment-style type annotations 2023-08-11 13:41:03 -04:00
cmd_or_ps.ps1 Fix cmd_or_ps.ps1 script with pwsh7 2022-09-21 18:32:51 -04:00
copy.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
coverage.py coverage.py: Guard use of `--html-nested` behind version check. 2024-11-04 19:30:28 -05:00
delwithsuffix.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
depaccumulate.py backend/ninja: use a two step process for dependency scanning 2025-04-03 12:27:07 -07:00
depfixer.py depfixer: Add missing annotation that breaks mypy check 2024-07-23 14:12:35 -07:00
depscan.py backend/ninja: use a two step process for dependency scanning 2025-04-03 12:27:07 -07:00
dirchanger.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
env2mfile.py env2mfile: add flag to use _FOR_BUILD envvars. 2024-12-04 17:53:23 +02:00
externalproject.py mtest: move determine_worker_count to utils, generalize 2024-12-19 09:25:20 -08:00
gettext.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
gtkdochelper.py mesonlib: extract and optimize is_parent_path 2025-03-09 13:05:08 -04:00
hotdochelper.py hotdoc: Install devhelp files at the right location 2023-03-16 10:36:33 -04:00
itstool.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
meson_exe.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
msgfmthelper.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
pycompile.py python module: correct the embedded path for bytecompiled files 2024-01-28 01:03:45 -05:00
python_info.py Fix typos in comments 2025-03-08 08:09:58 -08:00
regen_checker.py coredata: replace get_option with optstore.get_value_for 2025-03-10 14:14:25 -04:00
reprotest.py Add a simple reproducibility test command. 2024-10-01 16:33:24 +03:00
run_tool.py scripts: add "clippy" internal tool 2024-12-19 09:25:20 -08:00
rustdoc.py rust: new target rustdoc 2025-04-02 15:43:15 +03:00
scanbuild.py Extract native file parser to machinefile source file. 2024-06-04 22:45:41 +03:00
symbolextractor.py symbolextractor: generate symbol files for cross-compiled Windows 2025-01-30 01:04:28 +02:00
tags.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
test_loaded_modules.py add missing imports for future annotations 2023-10-20 18:07:05 -04:00
uninstall.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
vcstagger.py Use SPDX-License-Identifier consistently 2023-12-13 15:19:21 -05:00
yasm.py add missing imports for future annotations 2023-10-20 18:07:05 -04:00