Thread: [A-a-p-user] Not rebuilding existing files
Brought to you by:
vimboss
From: Lars I. I. <lar...@ig...> - 2004-04-24 12:19:49
|
I've created a custom action that creates import libraries from dlls. It looks like this: :action implib lib dll :sys implib /noi /system $target $source and the route :route dll lib implib I call it by using :do implib {target = $lib} $dll Now, if I execute the recipe again, the import libraries are rebuilt unnecessarily. It seems like I'm unable to find out how to not rebuild if they already exists. Is there an easy way to add this to the code above? I don't think this stuff warrants an inclusion into A-A-P and thus I want to make as small a recipe for it as possible. Lars Ivar Igesund |
From: Bram M. <Br...@mo...> - 2004-04-24 12:54:05
|
Lars Ivar Igesund wrote: > I've created a custom action that creates import libraries > from dlls. > > It looks like this: > > :action implib lib dll > :sys implib /noi /system $target $source > > and the route > > :route dll lib > implib > > I call it by using > > :do implib {target = $lib} $dll > > Now, if I execute the recipe again, the import libraries are rebuilt > unnecessarily. It seems like I'm unable to find out how to not rebuild > if they already exists. Is there an easy way to add this to the code > above? I don't think this stuff warrants an inclusion into A-A-P and > thus I want to make as small a recipe for it as possible. An action is always executed when you invoke it with ":do". You probably want to use a rule or dependency for this: :rule %.lib : %.dll :do implib {target = $target} $source And then use ":update my.lib" where you were using ":do implib". You don't need the route for this. There is still a design decision to be taken whether routes should also be used like rules, to execute commands to update a target. Problem is that the relation between the target and source file name may not be so obvious and we only know the file types. -- hundred-and-one symptoms of being an internet addict: 13. You refer to going to the bathroom as downloading. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ Project leader for A-A-P -- http://www.A-A-P.org /// \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html /// |
From: Lars I. I. <lar...@ig...> - 2004-04-24 13:02:08
|
Bram Moolenaar wrote: > > An action is always executed when you invoke it with ":do". > > You probably want to use a rule or dependency for this: > > :rule %.lib : %.dll > :do implib {target = $target} $source > > And then use ":update my.lib" where you were using ":do implib". > > You don't need the route for this. There is still a design decision to > be taken whether routes should also be used like rules, to execute > commands to update a target. Problem is that the relation between the > target and source file name may not be so obvious and we only know the > file types. > It worked. Thanks. Lars Ivar |