У меня есть старый файл проекта QT, который содержит несколько раз почти один и тот же раздел конфигурации. Этот раздел конфигурации в основном загружает определенную версию генератора open-api, генерирует заглушки кода QT с генератором open-api и добавляет генерацию кода к зависимостям QT до цели, так что он называется «автоматически».
Упрощенный пример раздела:
OPENAPI_CLI_VERSION = 4.2.3
codegentemp1.target = .codegentemp1
codegentemp1.commands = \
echo $$PWD/openapi-generator/src/main/resources/api-spec-1.yml \
$${OPENAPI_CLI_VERSION}.jar ... \
touch $$codegentemp1.target
QMAKE_EXTRA_TARGETS += codegentemp1
PRE_TARGETDEPS += .codegentemp1
Этот раздел копируется несколько раз и изменяется только несколько переменных, например:
- api- spe c -1.yml, api-spe c -2.yml, api-spe c -3.yml, ...
- codegentemp1, codegentemp2, codegentemp3, ...
и несколько переменных остаются неизменными, например:
Вопрос:
Можно ли переместить этот раздел в нечто подобное функции в файлах проекта QT и вызвать эту функцию, например, с помощью:
- generate_api (4.2.3, codegentemp1, api_spe c -1.yml)
Заранее спасибо!
Обновление 1
Я хочу в основном назначить т В поле «.commands» указан избыточный код сценария оболочки, который содержит переменные аргументы, такие как версия CLI open api (которая может меняться при каждом назначении), то есть что-то вроде:
func1(openapiversion, targetname) {
echo $$PWD/openapi-generator/src/main/resources/api-spec-1.yml
OPENAPI-$$openapiversion.jar ...
touch $$targetname
}
OPENAPI_CLI_VERSION = 4.2.3
codegentemp1.target = .codegentemp1
codegentemp1.commands = func1($$OPENAPI_CLI_VERSION, $$codegentemp1.target)
QMAKE_EXTRA_TARGETS += codegentemp1
PRE_TARGETDEPS += .codegentemp1