-
Notifications
You must be signed in to change notification settings - Fork 193
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
Command Generator Enhancements #251
base: main
Are you sure you want to change the base?
Conversation
I took a first pass at converting Quartus to use the command generator. First, it has a case that uses multiple commands to generate a target, so I've added this to the command generator. The Quartus Makefiles also uses variables. I thought about adding a |
The previous syntax for checking a column of identical values fails with Pandas 1.3. The new check works with 1.3 and older versions.
The failing tests are unrelated to this work. See #254 for a reporting test that works with the new Pandas 1.3. I rebased this branch on top of that one and all seems well. |
This passes the tests, though the Jinja filtering previously used was complex enough that problems may appear in use. This attempts to duplicate the previous Makefiles, though that may not be good style with the command generator. This required modifying the header to include Makefile variables since there's not yet support for variables in the class
451407c
to
9bf03ee
Compare
Thanks for this. I agree that it looks a bit clumsy to have Regarding variables, as far as I can tell they made a deliberate choice in ninja to downplay the use of variables so that they are just simple aliases. This makes me suspect that a) we need to be careful if we want to make this portable between command executioners and b) perhaps we can get around the need for variables in most (all?) situations. The ones I'm most worried about are the cases that rely on environment variables. Come to think of it, does that even work on Windows as it is implemented today? No idea |
Taking another look at this, long overdue. Wouldn't it be possible to solve this by simple creating an extra target, like we do here https://github.com/olofk/edalize/blob/master/edalize/tools/icetime.py#L60 That doesn't create a phony target per se, but we could either regard all targets without a real command as phony, or if that doesn't work, add a phony plag to the add function. Would that solve your issue? Also, do we want to pull in the first panda commit as is? |
This is an initial attempt to support phony targets as discussed in #250. It seems likely that something like the
Target
class will be needed rather than just a string as is currently used, but it seems awkward to haveself.EdaCommands.Target
all over. I'm open to alternatives!