Wie können anhängige Packages dann das passende
Package finden? Gibt es da eine Trick für den
requires
Bereich?
Trick ist gut
Schau mal in die Requires-Clause eines beliebigen Packages. Dort findest du vielleicht sowas wie
RTL oder
VCL. Damit werden die DCP-Dateien referenziert. Innerhalb der DCP ist dann der tatsächliche Name der
BPL versteckt, der natürlich für jede Delphi-Version unterschiedlich lautet (z.B. RTL240.bpl oder VCL240.bpl für Berlin). Ich glaube, Delphi 5 war die letzte Version, die das noch nicht konnte.
Nehmen wir mal unsere eigenen Packages PkgA und PkgB, wobei PkgA in der Requires-Clause von PkgB steht. Bei beiden Packages setzen wir jetzt den LIBSUFFIX auf 240 (für Berlin). Compilieren wir nun beide Packages werden die Dateien PkgA.dcp, PkgA240.bpl und PkgB.dcp und PkgB240.bpl erzeugt.
Jetzt kommt irgendwann Delphi Tokyo heraus. Dann ändern wir bei beiden Packages lediglich den LIBSUFFIX auf 250 und compilieren neu. Da die Requires-Clause in PkgB immer noch nur PkgA enthält, ändert sich an der DPK-Datei nur der LIBSUFFIX (wird von der
IDE erledigt). Natürlich muss ich zum PkgB250.bpl das passende PkgA250.bpl ausliefern, aber deswegen muss ich das
Package-Projekt nicht extra umbenennen.
Es wäre natürlich schön, wenn man für dieses LIBSUFFIX sowas wie $(AUTO) eintragen könnte, was dann immer den passenden Wert zurückliefert. Leider funktionieren alle bisherigen Ansätze dafür nicht. Deswegen der QP-Eintrag.