|
Boost-Build : |
From: Jurko GospodnetiÄ (jurko.gospodnetic_at_[hidden])
Date: 2008-08-26 08:02:01
Hi John.
> I've been trying to setup a system for running pc-lint on my source
> files, but I'm having a hard time figuring out the right way to setup a
> rule to do so.
>
> Basically, I want a rule that depends on the input *.lnt file along with
> all the source files, so that if any of those changes, it runs it
> again. My main 'exe' rule will also have the 'lint' rule as a
> dependency so that if pc-lint fails it won't even bother compiling the
> application. Can someone just point me in the right direction to get
> this working? I thought using the 'notfile' rule as a basis would make
> sense since it doesn't actually output any files, but is that not the
> right approach?
So you have source files (i.e. not built by the build system):
a.lnt
a1.cpp
a2.cpp
and you want to build from them:
a.exe <-- a1.cpp a2.cpp
and:
a-lint <-- a.lnt a1.cpp a2.cpp
where a-lint would simply run some sort of a test action that can
either fail or succeed and not generate any new files.
Well if that are all the requirements then I think notfile would suit
you just fine and your action can simply return 0 if it 'succeeds' or
any other value if it 'fails'.
If your test action generates some files that your would like Boost
Build to know about (e.g. to remove them when doing a clean) then you
would need to modify your approach by using either a custom target (or a
custom generator but I do not see your target as a typed one at the
moment) or either the make or the generate rule.
Another, perhaps too smart for its own good, idea would be to prepare
a new typed target for a-link which actually builds all of its sources
and runs the test rule but also returns all of its sources except the
.lnt file as its output virtual-targets. That would allow you to do
something like this:
a-lint <-- a.lnt a1.cpp a2.cpp
a.exe <-- a-lint
and the exe target would be built from the original sources that get
'linted' in the process. I would not go this way without getting the
notfile solution working first.
Hope this helps.
Best regards,
Jurko GospodnetiÄ
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk