如何将位于源目录之外的Qt头文件添加到moc列表中?

时间:2017-11-20 11:08:17

标签: scons

我在app源目录之外的头文件有一些问题。我的项目目录结构:

/prj
    /include
        slon.h
        ...
    /src
        /app
            slon.cpp
            ...
        /lib1
        /lib2
        ...
    SConstruct

源文件位于' prj / src / app'和公共标题位于' prj / include'。一些标题应该被moced,因为包含Q_OBJECT宏。在qmake中,这些标题明确添加为源。在SCons中,据我所知,不应显式添加此类标头 - SCons会扫描源并自动派生相应的标头。但这仅适用于与源文件位于同一目录中的标头。如果头文件位于' prj / include'目录,然后SCons没有moc标头。在上面的示例文件' slon.h'包含带有Q_OBJECT宏的类,并包含在' slon.cpp'但没有被忽视,只是被忽略了。

如何强制SCons到位于单独目录中的moc标头?

1 个答案:

答案 0 :(得分:0)

据我所知,来自 SCons 的核心来源的默认Qt工具(专为Qt3项目设计)并没有为此提供解决方案。你可以编写自己的Builder,当然......

单独开发的Qt4和Qt5工具(参见the SCons ToolIndex,并按照相应的链接)提供

ExplicitMoc4(target, source)

ExplicitMoc5(target, source)
分别是

Builder。这些应该可以帮助你在所有那些" Automoc"功能失败。