如何在 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)
}
注意:这是一个未经测试的示例
例如,我可以在 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)
}
注意:这是一个未经测试的示例