Borland Projekt Dateien BPR bzw. BPK AUFBAU



  • Hallo Zusammen,

    ich benötige ausführliche Informationen zu der Struktur der Borland C++ Builder Projekt Datei *.BPK bzw. *.BPR. Die Borland Hilfe ist leider etwas sparsam ausgefallen wenn es um die Struktur / Inhalte der XML Inhalte dieser Dateien geht.

    Ich benötige speziell Informationen zu den Tags LIBRARIES, SPARELIBS, PACKAGES.

    Hier ein kleiner Ausschnitt aus einer BPR Datei.
    <LIBRARIES value="vclx.lib vcl.lib rtl.lib"/>
    <SPARELIBS value="rtl.lib vcl.lib vclx.lib"/>
    <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi dbrtl.bpi vcldb.bpi dortl.bpi ibsmp.bpi bdertl.bpi vcldbx.bpi qrpt.bpi teeui.bpi teedb.bpi tee.bpi
    dss.bpi teeqr.bpi ibxpress.bpi dsnap.bpi vclie.bpi"/>

    Soweit ich das verstanden habe steht in den Tag LIBRARIES die Libs die statisch zum Projekt gelinkt werden.
    Das Tag SPARELIBS sollte dann für dynamisches Linken verantwortlich sein....
    Packages kann ich mir leider nicht erklären.
    Ich vermute das in diesen Tags unötige Eintrage (LIBs bzw. BPIs) aufgefürt werden....

    Ich hoffe das ihr mir weiterhelfen könnt.

    Bin dankbar für jede Antwort!!!

    Guss Sebastian



  • kubuspuchatek schrieb:

    ich benötige ausführliche Informationen zu der Struktur der Borland C++ Builder Projekt Datei *.BPK bzw. *.BPR.

    Zu welchem Zweck?

    Möglicherweise hilft dir das hier weiter.

    kubuspuchatek schrieb:

    Die Borland Hilfe ist leider etwas sparsam ausgefallen wenn es um die Struktur / Inhalte der XML Inhalte dieser Dateien geht.

    Das Projekt-Dateiformat dürfte undokumentiert sein; alles andere würde mich auch wundern.



  • audacia schrieb:

    kubuspuchatek schrieb:

    ich benötige ausführliche Informationen zu der Struktur der Borland C++ Builder Projekt Datei *.BPK bzw. *.BPR.

    Zu welchem Zweck?

    Möglicherweise hilft dir das hier weiter.

    kubuspuchatek schrieb:

    Die Borland Hilfe ist leider etwas sparsam ausgefallen wenn es um die Struktur / Inhalte der XML Inhalte dieser Dateien geht.

    Das Projekt-Dateiformat dürfte undokumentiert sein; alles andere würde mich auch wundern.

    Zu welchem Zweck?
    Ich habe vor eine Kompilierfarm zu erstellen. Dazu muss ich aus den Projekt- Datein genauere Informationen extrahieren um die Kompilierreihenfolge von ca. 150 BPK (Packages) zu ermitteln. Leider kann ich die Reihenfolge momentan nicht zu 100% bestimmen da z.B. Package A in der BPK im Tag Packages die B.bpi verwendet und das Package B wiederum im Package Tag seiner BPK die A.bpi verwendet....diese Package - Einträge sind bei einer BPK falsch da dieser Fall einen quasi "Ringinclude" darstellt.
    Meine Frage ist halt was die SPARELIB, LIBRARIES, PACKAGE TAGs genau bedeuten !!! ich muss ja die richtige Reihenfolge bei der Kompilierung beachten....
    Momentan richte ich mich bei der Kompilierung anhand der Package Einträge .... Wenn es ein "Ringinclude" der BPIs gibt dann wird das via Hand näher untersucht und aufgelöst....

    Ich meine das ich die SPARELIBS Einträge vernachlässigen kann aber die LIBRARIES nicht !!!!



  • kubuspuchatek schrieb:

    Ich habe vor eine Kompilierfarm zu erstellen. Dazu muss ich aus den Projekt- Datein genauere Informationen extrahieren um die Kompilierreihenfolge von ca. 150 BPK (Packages) zu ermitteln. Leider kann ich die Reihenfolge momentan nicht zu 100% bestimmen da z.B. Package A in der BPK im Tag Packages die B.bpi verwendet und das Package B wiederum im Package Tag seiner BPK die A.bpi verwendet....diese Package - Einträge sind bei einer BPK falsch da dieser Fall einen quasi "Ringinclude" darstellt.

    Die IDE schreibt in das PACKAGES-Element der BPR-Datei standardmäßig sämtliche installierte Packages; für deine Zwecke ist das nutzlos. Interessanter ist das PACKAGES-Element der BPK-Datei: das ist die "Requires"-Liste des Packages, und hier sollten eigentlich keine Abhängigkeiten auftreten.

    Was SPARELIBS bedeutet, kann ich dir nicht sagen, aber du kannst zumindest herausfinden, wie es verwendet wird, indem du es in ein Makefile konvertierst.



  • Ich habe zwar keine Informationen zu deiner Frage, aber möglicherweise eine Alternative. Ist es nicht möglich, in den jeweiligen Projektoptionen das Flag "Makefile erzeugen" zu aktivieren und als automatisches Build Tool make zu benutzen? Damit musst du das Rad nicht neu erfinden.


Anmelden zum Antworten