Forum: Compiler & IDEs Konfigurations - Include Datei für den Compiler ersetzen


von Blume (Gast)


Lesenswert?

Hallo

ich würde gerne eine Open Source SW einbinden.
Dazu clone ich in ein Verzeichnis über Git-Submodul die Quelltexte.

jetzt ist im Source Verzeichnis auch gleich die Konfiguration in einer 
Include Datei der SW abgelegt (ähnlich zu FreeRtosConfig.h)

wie kann ich nun erreichen, das genau diese Datei aus einem anderen 
Verzeichnis
in dem die Projekt spezifischen Einstellungen gemacht werden, vom 
Comiler benutzt wird.

die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis 
wo auch der C- Quelltext liegt.

ich möchte nicht die Konfigurations - Datei im Submodul Verzeichnis 
abändern

das einzige was mir da einfällt ist von den "erwünschten" Dateien eine 
Kopie in ein anderen Verzeichnis zu erstellen und diese von dort aus zu 
übersetzen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Blume schrieb:
> die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis
> wo auch der C- Quelltext liegt.

Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

von Vincent H. (vinci)


Lesenswert?

Jörg W. schrieb:
> Blume schrieb:
>> die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis
>> wo auch der C- Quelltext liegt.
>
> Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

Was man natürlich nicht beeinflussen kann wenn in den geklonten Source 
Datein der Header via "" inkludiert wird.

Ich würde wohl via Buildtool (z.B. CMake) die Dateien nach dem klonen 
kopieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vincent H. schrieb:
> Ich würde wohl via Buildtool (z.B. CMake) die Dateien nach dem klonen
> kopieren.

IMHO sind lokale Kopien Mist, weil sie dazu tendieren, dass man im Falle 
des Falles die falsche Datei modifiziert. Dann lieber die "" durch <> 
ersetzen und entweder einen lokalen Branch machen, oder vielleicht auch 
gleich vorschlagen, dass das im Projekt so geändert wird mit der 
Begründung, dass es auf diese Weise einfacher ist, einen Override für 
die Konfiguration im Buildsystem vorzunehmen.

von Blume (Gast)


Lesenswert?

Ta

Jörg W. schrieb:
> IMHO sind lokale Kopien Mist, weil sie dazu tendieren, ...

das stimmt bestimmt aber ich will ja gerade an den zugelieferten 
Quelltexten gar nix ändern. Deshalb kämen die dann in das build 
Verzeichnis

Jörg W. schrieb:
>
> Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

hab ich getestet, würde funktionieren. Vielen Dank

Wenn das in den orginal Quelltexten gemacht wurde, dann würden alle 
anderen Benutzer darunter leiden.

Es geht um die FatFS von

http://elm-chan.org/fsw/ff/00index_e.html

und dort um die datei ffconf.h diese wird in ff.h inkludiert aber mit "

Er selber pflegt wohl kein Repository wenn ich das richtig sehen?

von Rolf M. (rmagnus)


Lesenswert?

Wenn du es eh in einem git speicherst, wäre eine Möglichkeit, das über 
separate Branches zu erledigen - eine, in der der Originalcode steht und 
eine mit deinen Modifikationen. Wenn du das Original aktualisieren 
willst, checkst du das in die entsprechende Branch ein und mergst das in 
deine Entwicklungsbranch.
Die hier machen das wohl auch so: https://github.com/RIOT-OS/FatFS

von Blume (Gast)


Lesenswert?

Rolf M. schrieb:
> Wenn du es eh in einem git speicherst, wäre eine Möglichkeit, das über
> separate Branches zu erledigen - eine, in der der Originalcode steht und
> eine mit deinen Modifikationen

In dem Fall nicht über Git Submodule ??

mfg Blume

von Rolf M. (rmagnus)


Lesenswert?

Blume schrieb:
> In dem Fall nicht über Git Submodule ??

Das hat ja erst mal nichts miteinander zu tun. Git Submodule kannst du 
ja trotzdem nutzen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.