如何在 QT 项目中指定用户自定义变量?

How can I specify user customized variables in a QT project?

例如,我可以在 pro 文件中定义 CORE_DIR = "<please change it with your relative path to the core component>"。然后,用户 John 可以在自己的自定义文件(环境)中将其更改为 CORE_DIR = "../../../../john's fancy core"。(这个自定义文件会足够小和清晰,不会被添加到版本控制系统中。那么,我怎样才能使项目适应用户的环境(具有上述行为)?

这样我就可以避免为每个人强制 CORE_DIR 值(以及本地路径)。

我已经以这样一种很好的方式实现了它:

# PUT YOUR LOCAL OVERRIDES IN THIS FILE AND DON'T INCLUDE IT IN GIT!
!include( local_overrides.pri ) {
    LOCAL_OVERRIDES=false
}else{
    LOCAL_OVERRIDES=true
}

稍后我可以通过检查 LOCAL_OVERRIDES 来检查 local_overrides.pri 是否确实存在并包括在内:

message("LOCAL_OVERRIDES ENABLED: " $${LOCAL_OVERRIDES})

很有魅力。如果文件丢失,您还可以更进一步,实际创建具有合理默认值的文件。我还没有冒险去那里。

编辑: 我决定举例说明如果文件不存在如何创建文件:

!exists( local_overrides.pri ) {
    # Please note the single > to truncate existing file if present (should not be necessary but you never know)
    system("echo 'MY_VAR1=sane_default' > local_overrides.pri")
    # Please note the double >> to append instead of truncate
    system("echo 'MY_VAR2=other_sane_default' >> local_overrides.pri")
}

!include( local_overrides.pri ) {
    error(ERROR: Could not load local_overrides.pri. Aborting build)
}

注意:这是一个未经测试的示例