我們有一個相當大的代碼庫。絕大多數代碼是使用qmake編譯生成makefile的。但是,有一些通過運行批處理文件或運行其他程序生成的子項目。從QMake運行程序/腳本
我希望能夠使用qmake編譯所有的東西,但我無法弄清楚如何讓qmake簡單地運行腳本。
有一兩件事,我試過在我的親文件使用QMAKE_EXTRA_TARGETS,就像這樣:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
然後我必須有這個批處理文件產生placeholder.cpp像這樣:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
這似乎工作正常。麻煩在於它有點狡猾。如果我沒有指定batch_runner.target(即,我將其留空),或者不將placeholder.cpp放入SOURCES中,那麼批處理文件永遠不會運行。這是因爲qmake沒有在Makefile中爲batch_runner.commands做任何其他依賴的操作。
有沒有更好的方法讓QMake構建一個Makefile文件,以便在Makefile執行時運行腳本?
有趣。這是有效的,但是當運行'qmake'而不是'nmake'運行時,命令會運行。它也恰好運行三次,而不是一次運行。 – 2010-09-01 12:38:18
您可能需要添加一些範圍以確保它只運行一次。 – 2010-09-01 12:41:39
我只是將範圍添加到示例中,以便在運行qmake時該命令僅運行一次。 – pixelgrease 2017-03-31 23:53:50