如何在选择Git时有条件地生成文件?
How to generate files conditionally when Git is selected?
为了加快我使用 Qt Creator 的工作流程,我创建了一个 JSON 格式的自定义项目向导,作为其中的一部分,我添加了一个 Summary page:
{
"trDisplayName": "Project Management",
"trShortTitle": "Summary",
"typeId": "Summary"
}
在 File generator 中,我将两个文件,即 .gitattributes
和 .gitignore
复制到项目目录:
{
"source": ".gitattributes",
"target": "%{TargetPath}/.gitattributes"
},
{
"source": ".gitignore",
"target": "%{TargetPath}/.gitignore"
}
这样写,文件总是被复制,即使没有选择Git作为版本控制系统。我希望仅在需要时才复制文件。
摘要页面的文档说:
It sets VersionControl to the ID of the version control system in use
但没有添加有关 VersionControl
变量及其值的更多信息。
如何达到想要的效果?
我建议您采用以下解决方案:
通过转至
为Wizard.Inspect
命令分配键盘快捷键
工具 -> 选项 -> 环境 -> 键盘 -> 快捷方式
启动自定义向导并导航至摘要页面
按选定的快捷方式
这将打开一个 window,其中列出了触发操作时向导中所有已定义的字段和变量。在那里你可以找到:
Key | Type | Value | Eval
VersionControl | QString | G.Git | G.Git
有了这些信息,像这样更改 文件生成器 代码:
{
"source": ".gitattributes",
"target": "%{TargetPath}/.gitattributes",
"condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
},
{
"source": ".gitignore",
"target": "%{TargetPath}/.gitignore",
"condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
}
为了加快我使用 Qt Creator 的工作流程,我创建了一个 JSON 格式的自定义项目向导,作为其中的一部分,我添加了一个 Summary page:
{
"trDisplayName": "Project Management",
"trShortTitle": "Summary",
"typeId": "Summary"
}
在 File generator 中,我将两个文件,即 .gitattributes
和 .gitignore
复制到项目目录:
{
"source": ".gitattributes",
"target": "%{TargetPath}/.gitattributes"
},
{
"source": ".gitignore",
"target": "%{TargetPath}/.gitignore"
}
这样写,文件总是被复制,即使没有选择Git作为版本控制系统。我希望仅在需要时才复制文件。
摘要页面的文档说:
It sets VersionControl to the ID of the version control system in use
但没有添加有关 VersionControl
变量及其值的更多信息。
如何达到想要的效果?
我建议您采用以下解决方案:
通过转至
为Wizard.Inspect
命令分配键盘快捷键工具 -> 选项 -> 环境 -> 键盘 -> 快捷方式
启动自定义向导并导航至摘要页面
按选定的快捷方式
这将打开一个 window,其中列出了触发操作时向导中所有已定义的字段和变量。在那里你可以找到:
Key | Type | Value | Eval VersionControl | QString | G.Git | G.Git
有了这些信息,像这样更改 文件生成器 代码:
{ "source": ".gitattributes", "target": "%{TargetPath}/.gitattributes", "condition": "%{JS: '%{VersionControl}' === 'G.Git'}" }, { "source": ".gitignore", "target": "%{TargetPath}/.gitignore", "condition": "%{JS: '%{VersionControl}' === 'G.Git'}" }