Qt根据平台排除subdir项目

问题描述

我的app.pro中存在这种情况:

TEMPLATE = subdirs

SUBDirs += A\
           B\
           C

B.depends = A
C.depends = A

我希望根据平台从构建中排除项目C。 我尝试执行以下操作,但是不起作用(始终包含项目C):

TEMPLATE = subdirs

SUBDirs += A\
           B

android {
SUBDirs += C
C.depends = A
}

B.depends = A

是否可以做类似的事情?谢谢

解决方法

您为非Android平台排除子目录项目C的方法看起来是正确的。

如果您看一下qmake并进行日志输出,您会发现没有构建C。我想您感到困惑,因为Qt Creator仍然在项目树中显示了C,甚至排除了您。

当qmake处理pro文件的android范围时,您可以添加message("inside android scope")来打印日志消息。

android {
    message("inside android scope")
    SUBDIRS += C
    C.depends = A
}