Ich verwende eigentlich immer nur Delphi selber zum kompilieren, mit dem händischen Aufruf des externen Compilers habe ich nur wenige Erfahrungen.
Natürlich während der Entwicklung läuft das in der
IDE, wenn es aber darum geht ein Update heraus zu bringen wird ein script angeworfen, welches z.b. eine Reihe von DLLs erzeugt.
Das kompilieren aus der
IDE birgt immer das Risiko, dass durch einer Konfigurationsänderung das Projekt entweder nicht oder falsch kompiliert wird. Durch das kompilieren durch einem direkten Aufruf vermeidet man auch das Problem dass ein vergessenes Compilersymbol im Projekt (z.b. DEBUG) ein unerwünschtes Ergebnis erzeugt. Auch kann ein Projekt mit einem festgelegten Setup von Komponenten gebaut werden, also z.b. einer früheren Version von WPTools also der aktuellen die in der
IDE installiert ist.
Hast Du ein Beispiel, wie ich ein Projekt mit welchen Parametern aufrufen müsste, damit es kompiliert (und dabei z.B. Suchpfade, etc. richtig berücksichtigt)? Und einmal als Release, bzw. einmal als Debug-Version?
Debug und Release unterscheidet sich bei mir nur durch ein compiler symbol, also z.b. kann
-DDEBUG dem Compiler übergeben werden.
Ansonsten funktioniert Deine Methode eigentlich, nur dass eben alle Verzeichnisse eingebunden werden müssen, die man zu einem bestimmten Zeitpunkt aus der
IDE ausgelesen hat.
Das auslesen geht ja bereits mittels des Knopf rechts oben, das Ergebnis müsste nur noch abgespeichert und verwendet werden.
Das ist vor allem der jeweilige Bibliothekspfad und der Suchpfad. Es ist für dein Programmes meiner Meinung nach unabdingbar, dass dieser Pfad mit verwaltet wird. Denn es geht doch darum, ein Projekt so genau wie möglich zu erfassen, also alle Abhängigkeiten zu kennen.
Zusätzlich sollte man compiler Symbole angeben können.
Code:
C:\Borland\DX12\Bin\dcc32.exe -DWPDFREGDLL -NSVcl;
Vcl.Imaging;
Vcl.Touch;
Vcl.Samples;
Vcl.Shell;
Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;
Soap.Win;
Xml.Win;
Bde;System;
Xml;Data;Datasnap;Web;
Soap; -DWPDF3 -DWPDF4 -$D- -B+ C:\S\wPDF\Source\
Compile_wPDF_DLL.dpr
Hier wird aus dem Verzeichnis mit allen Compilern (heißt bei mir "Borland" und beinhaltet 19 Delphi Editionen in friedlicher Koexistenz) Delphi 10.2 gestartet um die wPDF
DLL zu erzeugen. Dabei wird ein Quellverzeichnis hinzugefügt. Mehr ist eigentlich nicht dabei.
Die Ausgabe des Compilers könnte man (wie ich oben schrieb) dazu verwenden, alle Units zu listen welche
wirklich verwendet werden.