我有一个包含以下项目文件的qmake项目:
. parent1.pro
. parent2.pro
. child_common.pro
parent1和parent2都是子目录项目,并将child_common作为子目录。
有没有办法让我定义一个可由child_common使用的变量,根据使用该子对象的父对象的不同而具有不同的值?
例如:如果我在编译parent1,child_common应该有一个变量MY_VAR=A,如果我在编译parent2,它应该有MY_VAR=B
发布于 2019-01-10 18:44:23
实际上,事情并不是这样的(因为qmake
从不允许将其变量传递给SUBDIRS
子项目),所以最终您可能会拥有两个独立的child_common
实例。但是,如果您的所有项目都属于同一目录子树,则可以通过以下方式使用qmake的缓存文件。
首先,在您的公共根子目录中创建一个空的缓存文件:touch .qmake.cache
(或.qmake.stash
,或.qmake.super
)。然后将以下代码添加到所有“父”项目中:
MY_VAR = A # or B
cache(MY_VAR, set) # or "set stash", or "set super"
现在,只要缓存文件存在于父目录中,MY_VAR
就应该在任何子项目中都可见。但请注意,缓存内容的更改并不会自动暗示(子)项目重建。
https://stackoverflow.com/questions/54073133
复制相似问题