Skip to content

Conversation

@dcbaker
Copy link

@dcbaker dcbaker commented Mar 29, 2024

This allows fypp to communicate to build systems like Make and Ninja (including through build system generators like CMake and Meson) files that need to be implicitly included in the build graph. This is important for getting correct incremental rebuilds when such a file is changed.

Copy link
Owner

@aradi aradi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a very nice addition, thanks! The only thing I am somewhat unsure about is the escaping, see my comments below.

@dcbaker
Copy link
Author

dcbaker commented Apr 8, 2024

Updated with the requested changes. I've also updated the test case, and added a couple of more cases, including one to explicitly test the escaping behavior.

This allows executing the unittests directly with `python test_fypp.py`,
which allowing easily passing options into the test harness. It also
avoids having to know if user has set PYTHONPATH, since it will be
evaluated after PYTHONPATH.
This allows build systems that can consume them (Make and Ninja, in
particular) to figure out at build time which files are implicitly
included in the dependency graph of a fypp output.

This means for example if you have a target that includes two other
files, an incremental rebuild can be triggered automatically if one of
the included files are modified.
@dcbaker
Copy link
Author

dcbaker commented Sep 11, 2025

I've rebased this across the recent code reorganization

@aradi
Copy link
Owner

aradi commented Oct 29, 2025

OK, perfect (and sorry for the long delay times). I think everything is fine so far, and the PR should be merged.

I have one only API design question: What is the advantage of not writing the depfile already during the process_file() call, but requiring a separate write_dependencies() call. At latter, you have to pass the name of the depfile again, which had been already passed via the comman line option --depfile.

At the first glance, it seems more logical to me, to write the depfile during the process_file() call and not having the extra write_dependencies() method. Any views on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants