Я хочу выполнить команду оболочки с помощью qmake. Команда:
idlpp -S -l cpp MyModel.idl
Это обрабатывает мой IDL и генерирует некоторые.cpp и.h файлы, которые я включаю в свой проект. Прямо сейчас я выполняю его вручную с терминала, но я хочу, чтобы это было автоматически сделано, когда я запускаю qmake.
Что я должен добавить в мой .pro- файл? Есть ли что-то эквивалентное execute_process(), используемое cmake?
Использовать функцию system() в файле.pro
Вы должны использовать QMAKE_EXTRA_COMPILERS (см http://doc.qt.io/qt-5/qmake-advanced-usage.html#adding-compilers)
Он не будет вызывать idlpp
при запуске qmake
, но при запуске make
. Однако это приведет к интеграции вызова idlpp
как части процесса make.
# Sample IDL .pro compiler
IDL_FILES = MyModel.idl
idl_compiler.output = idl_${QMAKE_FILE_BASE}.cpp
idl_compiler.commands = idlpp -S -l cpp ${QMAKE_FILE_NAME} # Ideally you would add something like --output=${QMAKE_FILE_OUT}
idl_compiler.input = IDL_FILES
QMAKE_EXTRA_COMPILERS += idl_compiler