We are using Subversion for SCC. We have a great deal of our build environment in our repository so that we can check a given version out and rebuild it fairly close to what was in use at that time. We have the following in there now:
The only thing missing is the binaries for Delphi itself - I am wondering if there is a minimum set of files that can be copied to the repository and run.
Thanks
Ok - I think I have this working. I was able to compile our application under a VMware guest that didn't have any of our developer tools (RAD Studio, EurekaLog, etc.) installed. Basically I have a Compiler folder with these files:
Turns out you only need a few files. Basically these files:
02/05/2008 05:13 PM 89,088 BorDebug.dll 11/02/2009 06:02 PM 57,344 Borland.Build.Tasks.Common.dll 11/02/2009 06:02 PM 147,456 Borland.Build.Tasks.Delphi.dll 11/02/2009 06:02 PM 49,152 Borland.Build.Tasks.Shared.dll 11/02/2009 06:02 PM 20,480 Borland.Globalization.dll 08/19/2009 05:00 PM 22,370 CodeGear.Common.Targets 08/19/2009 05:00 PM 32,928 CodeGear.Delphi.Targets 11/02/2009 06:02 PM 1,328,128 DCC32.EXE 02/25/2010 08:17 AM 979,456 ecc32.exe 11/02/2009 06:02 PM 314,368 lnkdfm140.dll 02/25/2010 08:11 AM 40,960 Process.exe 08/19/2009 05:00 PM 75,264 rlink32.dll 06/15/2010 08:41 AM 185 rsvars.bat
Maybe I could snip a few more of these files out as well. We also have a components folder that has all of the built-in VCL files (basically the lib and Indy10 folders) and our third-party components. In Delphi I made the Library path setting blank — this step is key. I then put that Library path setting in the specific project options. We used environment variables to specify where the built-in and third-party files were. These environment variables are set in RAD Studio, and then can be set via command line when performing the release compilation. So we have a BAT file like this:
SET BDS=C:\_Releases\Compiler SET COREFILES=C:\_Components\D2010 SET COMPONENTS=C:\_Components SET LANGDIR=EN
Our library path looks something like this:
$(COREFILES)\lib;$(COREFILES)\Indy10;$(COMPONENTS)\EurekaLog;$(COMPONENTS)\Jcl\source\common;$(COMPONENTS)\Jcl\source\windows
Now in our virgin VMware session that just has MSBuild and the raw files described above I can call these commands:
msbuild project.dproj -t:rebuild /p:config=Release ecc32 --el_alter_exe"project.dproj"
Which builds our application. Granted we are just using the Delphi32 personality which simplifies things, but for us I think this will work fantastic.
If you want to create a build environment that can be replicated easily, you'd be better off setting up a virtual machine and hosting the image on a network share instead of trying to deal with thousands of individual files through an SVN server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With