首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除QT项目文件中的重复代码?

如何删除QT项目文件中的重复代码?
EN

Stack Overflow用户
提问于 2020-03-31 08:42:54
回答 1查看 102关注 0票数 1

我有一个旧的QT项目文件,它包含几乎相同配置部分的多次。这个配置部分基本上下载了open生成器的某个版本,使用open生成器生成QT代码存根,并将代码生成添加到QT的目标前依赖项中,从而使其称为“自动”。

本节的简化示例:

代码语言:javascript
复制
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-spec-1.yml,api-spec-2.yml,api-spec-3.yml,.
  • codegentemp1,codegentemp2,codegentemp3,

有几个变量保持不变,例如:

  • OPENAPI_CLI_VERSION

问题:

是否可以将本节移到类似QT项目文件中的函数中,并调用此函数,例如:

  • generate_api(4.2.3,codegentemp1,api_spec-1.yml)

提前感谢!

更新1

基本上,我希望为".commands“字段分配一些冗余的Shell脚本代码,其中包含varible参数,例如open版本(每个赋值可能会发生变化),例如:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-03-31 09:05:48

是的,qmake语言手册告诉我们如何创建自己的函数,就在关于替换职能的一节下面

代码语言:javascript
复制
defineReplace(functionName){
    #function code
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60946535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档