Libs Abhängig von der run-configuration

Verschiedenes zu Qt
Antworten
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Libs Abhängig von der run-configuration

Beitrag von Ozzy »

Hi,

ich programmiere gerade für ein eingebettetes System, für welches ich meine Quellen cross-compilieren muss. Testen möchte ich allerdings auf dem Host-System. Daher möchte ich gerne abhängig von der aktiven Build-configuration entweder "normale" oder cross-compiliere Libs einbinden. Momentan kommentiere ich die entsprechenden Zeilen immer ein/aus, aber auf Dauer ist das echt blöd...

Habt Ihr einen Tipp für mich, wie man das konfigurierbar machen kann?

MfG, Ozzy
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: Libs Abhängig von der run-configuration

Beitrag von RHBaum »

Wie, bzw mit was buildest du denn ....
normalerweisse ist das Thema des "Konfiguration Managments", also das was vorm kompilieren kommt.

In den IDE's kann man oft mehrere "Targets / Konfigurationen" anlegen. Das sollte eigentlich die linker Befehle mit einschliessen.

per script kannst es per Shell Variable eventuell steuern ... die drückt dann die zu verwendenden libs zum config tool (./configure - autotools & co) durch.
Komplexere Abhängigkeiten kann man besser mit Buildgeneratoren(cmake / qmake) realisieren.

Aber irgendwo wirst immer "umschalten" müssen.
Wir lösen dass z.b. das wir ein gleichbleibendes Source verzeichniss haben.
Da drueber liegen mehrere Batches, die via Buildgenerator (cmake) unterschiedliche (nicht per scvs verwaltete) Projectverzeichnisse erzeugen.
Um diese Projecte dann zu bauen muss man im Projectverzeichnis das entsprechende Build-tool anwerfen (alternativ geht auch via cmake mit beim aufruf in der batch).
Testen möchte ich allerdings auf dem Host-System.
Du kannst SW für embedded Systems so einfach aufm PC laufen lassen ??? Eher unüblich oder ?
Normal laufen nur die Unit-tests aufm Host, die sind nen eigenes Project bereich und werden auch nicht distributiert.

Weiss auch nicht wie gross und wie professionell dein Project ist.
Aber die Tendenz geht sowieso Richtigung CI (Continuous Integration).
Das nen etwas komplexeres Zusammenspiel aus Konfig Managment, Nightly Build system, SCVS und Unit-tests.
Grob: DU machst ne Änderung, checkst ein, was nur geht wenn die "tests" positiv verlaufen .... der Buildserver pollt die Änderung oder bekommt sie per event mit, und baut die abhaengigen Binaries mit ner neuen version ...

Ciao ....
Antworten