Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Software » Boost: Batch-Skript starten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.12.2009, 18:08 Uhr
~ Boostverzweifelt
Gast


Hallo Leute,

kann mir jemand sagen, wie ich ein Batch-Skript aus einer Jamroot-Datei starte? Es soll ein Projekt mit bjam kompiliert werden. Dabei soll auch ein Batch-Skript ausgeführt werden, und zwar nur dann, wenn die Input-Datei des Skripts verändert wurde. Das ganze läuft unter Windows XP und mit dem GCC-Compiler von MinGW. Boost ist bereits installiert und läuft ohne Probleme. Falls jemand eine Idee hat, wie ich das anstelle, bitte helfen. Danke im Voraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.12.2009, 18:24 Uhr
0xdeadbeef
Gott
(Operator)


Zunächst mal hat das ganze nichts mit C++ oder C zu tun, also

-->

Ansonsten wirst du etwas brauchen, woran du erkennst, ob die Datei sich geändert hat. Wenn dein Skript eine Ausgabedatei generiert, ist es denkbar einfach und sieht etwa so aus:

Code:
make ausgabe.dat : eingabe.dat : @dein_skript ;
actions dein_skript
{
    batchdatei.bat
}


Ansonsten wirst du in der action noch eine Flag-Datei generieren müssen, deren Zeitstempel dann für die Prüfung herhält, etwa

Code:
make flagfile.empty : eingabe.dat : @dein_skript ;
actions dein_skript
{
    batchdatei.bat
    echo > $(>)
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.12.2009, 18:57 Uhr
~Boostverzweifelt
Gast


Danke für die super schnelle Antwort!



Zitat:
Zunächst mal hat das ganze nichts mit C++ oder C zu tun, also

-->


Ja, die Frage ist aber ziemlich spezifisch und da Boost doch etwas mit C/C++ zu tun hat, habe ich in dem Forum mein Glück versucht .


Zitat:
Ansonsten wirst du etwas brauchen, woran du erkennst, ob die Datei sich geändert hat. Wenn dein Skript eine Ausgabedatei generiert, ist es denkbar einfach und sieht etwa so aus:

Code:
make ausgabe.dat : eingabe.dat : @dein_skript ;
actions dein_skript
{
    batchdatei.bat
}


Ansonsten wirst du in der action noch eine Flag-Datei generieren müssen, deren Zeitstempel dann für die Prüfung herhält, etwa

Code:
make flagfile.empty : eingabe.dat : @dein_skript ;
actions dein_skript
{
    batchdatei.bat
    echo > $(>)
}




Das Skript startet den RPCGEN (es werden mehrere Dateien für RPC-Aufrufe generiert) und zwei weitere Pythonskripte, die ebenfalls Code generieren.

Ich werde dein Vorschlag leider erst am Montag testen können. Ich aber hoffe, dass es so funktioniert und danke noch mal für die schnelle Hilfe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.12.2009, 19:12 Uhr
0xdeadbeef
Gott
(Operator)


URL dazu: www.boost.org/boost-build2/doc/html/bbv2/builtins/raw.html

Bzw. das gesamte Manual: www.boost.org/boost-build2/doc/html/index.html
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.01.2010, 12:09 Uhr
~Boostverzweifelt
Gast


hi 0xdeadbeef,

ich hoffe, du bist noch da. Bin leider erst heute dazu gekommen, deine Vorschlag zu testen.

Ich dachte es sollte in etwa so funktionieren: es wird an Hand des Zeitstempels geguckt, welche Datei zuletzt verändert wurde. Wenn das die Input-Datei ist, wird action mit dem Skript ausgeführt, wenn nicht wird action übersprungen.

Ich habe beine Methoden ausprobiert, mit demselben Ergebnis. Das Skript wird jedes Mal ausgeführt, wenn bjam aufgerufen wird. Dadurch verzögert sich das Kompilieren jedes Mal entsprechend...

In der Doku habe ich keine Lösung für das Problem gefunden. Vielleicht hast du oder jemand anderer noch eine Idee, wie man das unnötige Ausführen des Skripts umgehen kann.

Nochmals danke für die Hilfe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.01.2010, 15:22 Uhr
0xdeadbeef
Gott
(Operator)


Das Skript sollte auf die Art nur ausgeführt werden, wenn die Eingabedatei einen neueren Zeitstempel als die Ausgabedatei hat.

Wenn ein anderes Verhalten gewünscht ist, wirst du die Bedingung selbst an irgendeiner Stelle prüfen müssen - allerdings wird mir aus deiner Beschreibung nicht ganz klar, was du eigentlich genau willst.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.01.2010, 12:40 Uhr
~Boostverzweifelt
Gast


ja, das habe ich mir auch so gedacht. Nur, wie gesagt, wird das Skript jedes Mal ausgeführt, wenn bjam aufgerufen wird. Auch wenn die Eingabedatei garnicht verändert wurde.

Die Eingabedatei (ist eine .x-Datei) wird dazu benutzt, mittels RPCGEN Dateien für RPC-Aufrufe zu generieren. Ab und zu muss diese .x-Datei an die neuen Projekt-Anforderungen angepasst werden. Bis jetzt musste danach jedes Mal das Skript manuell gestarten werden, damit auch die generierten Dateien wieder stimmen. Ich möchte aber, dass es eben automatisch passiert. Da aber von diesen generierten Dateien auch andere abhängen bzw. in Zukunft abhängen werden (u.a. auch anderere Skripte), wird in diesem Fall das ganze Projekt kompiliert. Wenn die Eingabedatei aber gar nicht verändert wurde, verzögert das Ganze nur das Kompilieren. Jetzt ist es nicht ganz so schlimm, aber wenn das Projekt größer wird, wird man u.U. jedes Mal einpaar Minuten unnötig warten müssen.

Beim Testen habe ich die Eingabedatei als Input und eine der generierten Dateien als Output genommen. Damit sollte es ja auch funktionieren, nur wird das Skript trotzdem jedes Mal ausgeführt .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Software ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: