-
Notifications
You must be signed in to change notification settings - Fork 31
Add support for generating a Make compatible depfile #41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
aradi
left a comment
There was a problem hiding this 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.
|
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.
|
I've rebased this across the recent code reorganization |
|
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 At the first glance, it seems more logical to me, to write the depfile during the |
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.