如何在选择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 变量及其值的更多信息。

如何达到想要的效果?

我建议您采用以下解决方案:

  1. 通过转至

    Wizard.Inspect命令分配键盘快捷键

    工具 -> 选项 -> 环境 -> 键盘 -> 快捷方式

  2. 启动自定义向导并导航至摘要页面

  3. 按选定的快捷方式

    这将打开一个 window,其中列出了触发操作时向导中所有已定义的字段和变量。在那里你可以找到:

    Key            | Type    | Value | Eval
    VersionControl | QString | G.Git | G.Git
    
  4. 有了这些信息,像这样更改 文件生成器 代码:

    {
        "source": ".gitattributes",
        "target": "%{TargetPath}/.gitattributes",
        "condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
    },
    {
        "source": ".gitignore",
        "target": "%{TargetPath}/.gitignore",
        "condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
    }