Aleksander Lech

Aleksander Lech Architekt rozwiązań

Temat: QMAKE_PRE_BUILD

W Qt strasznie brakuje tytulowego QMAKE_PRE_BUILD. Przydatne bywa co prawda QMAKE_POST_LINK, ale nie zawsze. Czasem potrzebny jest skrypcik ktory wykona sie przed budowanie projektu i mozliwosc podpiecia go pod proces budowania tak jak to mam miejsce w QMAKE_POST_LINK.

Zaglebial sie ktos w ten temat? Jak sobie poradziliscie z tym problemem? (Wiem ze sa metody za pomoca qmake, ale wolalbym operowan na plikach pro wylacznie).
Tomasz Ziobrowski

Tomasz Ziobrowski Oprogramowanie dla
przemysłu i nie
tylko

Temat: QMAKE_PRE_BUILD

Nie wiem czy o to chodziło ale może zwykłe wywołanie system:

system("echo Hello") # lub ściezka do skryptu

jest to jedna z funkcji qmake'a.

Wywołane zostanie zawsze przy uruchomieniu qmake a jeśli skrpyt będzie dodatkowo "dotykał" (touch prjekt.pro) bieżący plik pro to będzie to wykonwyane zawsze przy każdym wywołaniu make.

Pamiętaj o tym by modyfikując datę ostatniej modyfikacji była ona inna od bieżącej. Może być konieczne dodanie prostego timerka na 1 s - jeżeli plik pro jest przetwarzany błyskawicznie. Bo pliki mają sygnaturę czasową z dokłądnością do 1s. - przynajmniej na moim systemie plików.

Być może nie potrzebujesz skryptów i same funkcje starczą?
Aleksander Lech

Aleksander Lech Architekt rozwiązań

Temat: QMAKE_PRE_BUILD

Dzieki za odpowiedz, ale jak wspomniałem nie chciałbym dotykac qmake poniewaz jest on generowany na podstawie pliku .pro i przez co nawet go nie trzymamy na SVNie.

Wiezylem ze byc moze ktos znalazl sposob aby takie dyrektywy umiescic w pliku .pro tak jak to ma miejsce w przypadku QMAKE_POST_LINK...
Tomasz Ziobrowski

Tomasz Ziobrowski Oprogramowanie dla
przemysłu i nie
tylko

Temat: QMAKE_PRE_BUILD

Mam wrażenie, że się nie zrozumieliśmy :)
qmake pracuje na plikach .pro właśnie i generule pliki Makefile - których jak rozumiem nie przechowujecie w CVS'ie.

To co zaproponowałem to wywołanie zewnętrzenego skryptu (bash,bat, whatever) z pliku .pro w momencie gdy jest przetwarzany. Czyli modyfikacja pliku pro. Dodanie do niego polecenia system("sciezka do skryptu zewnętrznego"). Taki skrypt może być różny dla różnych platform oczywiście.

Należy jednak zwrócić uwagę, że taki skrypt będzie wywołany tylko raz podczas pracy qmake - w momencie tworzenia nowego pliku Makefile. Jeżeli chcesz by skrypt został wywołany podczas każdego "budowania" to po prostu uktualnij datę modyfikacji pliku pro, który zawiera odnośnik do skryptu. Nie wiem jak w windowsie ale w unixie służy do tego polecenie systemowe touch.

Mi to działało - w ten sposób zrobiłem sobie "licznik", który modyfikował plik źródłowy przed kompilacją by zawierał bieżący "numer/znacznik" rewizji z CVS'a właśnie.



Wyślij zaproszenie do