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

时间:2017-03-17 15:13:04

标签: qt customization

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

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

1 个答案:

答案 0 :(得分:2)

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

# 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.pri来检查LOCAL_OVERRIDES是否确实存在并包含在内:

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)
}

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