かなり大きなコードベースがあります。コードの大部分は、qmake を使用してコンパイルされ、makefile が生成されます。ただし、バッチ ファイルの実行または他のプログラムの実行によって生成されるサブプロジェクトがいくつかあります。
qmake を使用してすべてをコンパイルできるようにしたいのですが、qmake で単純にスクリプトを実行する方法がわかりません。
私が試したことの 1 つは、pro ファイルで次のように 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 を指定しない (つまり、空白のままにする) か、SOURCES に placeholder.cpp を配置しない場合、バッチ ファイルは実行されません。これは、qmake が batch_runner.commands を Makefile 内の他の依存関係のアクションにしないためです。
Makefile の実行時にスクリプトが実行されるように、QMake に Makefile を作成させるより良い方法はありますか?