2013-03-07 21 views
5

Używam pliku Qt .pro przy użyciu szablonu SUBDIRS (głównie po this answer).Projekt QMake SUBDIRS: Jak wywołać release-clean z pliku Makefile najwyższego poziomu?

Ponadto buduję moje rozwiązanie przy użyciu qmake -recursive MyProject.pro i nmake Release.

Teraz chcę dostarczyć osobny plik wsadowy do czyszczenia wyjściowych danych wyjściowych i plików meta (ale nie do debugowania).

Problemem jest to, że na górnym poziomie Makefile tylko clean i distclean generuje qmake podczas gdy podkatalogów, istnieje również release-clean i debug-clean (również zawierać dodatkowe katalogi Makefile.Debug i Makefile.Release).

Co chcę zrobić dzwoni

nmake Makefile release-clean 

ze skryptu wsadowego. Jednak plik Makefile najwyższego poziomu nie zawiera tej konfiguracji.

Mogę teraz wywołać linię równą dla każdego podprojektu ręcznie, ale jest to oczywiście moja najmniej korzystna opcja.

Czy istnieje sposób na uzyskanie polecenia qmake w celu wygenerowania celu release-clean dla pliku Makefile najwyższego poziomu lub czy istnieje inny sposób na proste czyszczenie plików Release?

PS: Używam nmake, więc tak jestem na Windows (XP) i przy użyciu MSVC (2008)

Odpowiedz

2

następujący skrypt partia spełnia swoje zadanie:

REM set up environment 
SET VISUALDIR=C:\PROGRA~1\MICROS~1.0 
PUSHD %VISUALDIR%\VC 
CALL vcvarsall.bat x86 
POPD 

REM clean solution 
msbuild yoursolution.sln /p:Configuration=Release /t:clean 

REM and you may want to add a build command : 
msbuild yoursolution.sln /p:Configuration=Release 
+0

to prawda czy masz rozwiązanie VS, jednak używam 'qmake' na pliku' .pro', a następnie 'nmake'. Mógłbym dodać 'qmake -tp vc -recursive xxxx.pro', by wygenerować sln, a następnie skompilować go tak, jak zasugerowałeś. –

+0

@TimMeyer o ok. w rzeczy samej zakładałem, że używasz rozwiązania wizualnego. – azf