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.