one other evaluation question has come up regarding FinalBuilder 5 (5.5.0.348).
Is there something like "make clean" or the "clean" target in D2007-MSBuild in FB? I know I can delete files and dirs with the Files&Directories Actions and I looked into File Sets as well, but what I mean is something that only cleans the output files of a Compile Action - the generated .dcu/.dcp, .exe and .dll/.bpl files, not a specific pattern like *.dcu or *.dll, because this will delete other - 3rd party files not generated by the compile - as well.
Hmmm, when thinking about it this might not be that easy, 'cause the "clean action" has to make a silent compile and analyze the generated output of this fake compilation... I think that is what the D2007 MSBuild clean task does!?
Anyway, do I miss something, has someone an idea or is it not possible because of the above thought.
Hi Christoph - I see what you mean, but don’t know of an easier way to do it.
fwiw, our build process removes absolutely every single file from a partition, then gets everything from version control, then builds. This way we can be sure that all files are indeed checked in, and that there are no extra files hanging around Yes, it means that builds are slightly longer, but worth the extra benefits.
thanks for the insight. Indeed, for a dedicated build process on a server in a company with several developers involved this is a perfectly legal approach I would (and do) recommend as well. But apart from consulting in such an environment, being a one man Delphi shop I wanted to use FB to formalize my build process on my notebook a bit more as well. So that would have been a nice option to keep cleaning up simple, although I do understand the difficulties implementing this feature. Anyway, I will work around this with different directories, as I did before; so no big worries. Kind regards,
If I understand the problem, it is: -There’s a directory X containing stuff you want to keep - You do a build in directory X, which produces stuff you don’t want to keep - You want to remove everything that wasn’t in X before the build.
If so, I can think of several ways of achieving that, like taking a file listing before the build, one after, comparing, and deleting files that don’t match.
thanks for your reply, but not quite like that; indeed I was looking for a “make clean” functionality. Why? Well, for example I switch from package version Lib-1_1 to Lib-1_2, or I split one unit into two new ones with different names in my project. What I want to do is clean the old dcu/dcp, exe and bpl/dll files of the lib/project, do the changes and compile again. By that I can be sure there is no wrong reference to the old package or unit, say the program still using the old package because I forgot to update the runtime package list, or the compiler still using the old unit dcu, because I forgot to update the uses reference somewhere (been there, done that As I said I want to formalize the build process on my everyday developer notebook, and I rethink my strategy according to Tate’s post. Another option might be using variables for the project file, output path etc. to keep the references simple and in one place, do some parsing of the project file and delete based on that. I guess actions are isolated, meaning that there is no way to get e.g. the Action.ProjectFile property of a compile action somewhere down in a delete action somewhere up?; but variables should work. I don’t want to put too much effort and overhead into it, but one of the above ways should work easy and reliable. Kind regards -