如何指示 Qmake 为所有 headers 和列出的源添加一个文件夹名称?

How to instruct Qmake to prepend a folder name to all it headers and sources listed?

我有一个 Qt 应用专业文件 让我们说 MyQtApp.pro。我在不同的文件夹中有各种平台特定的文件,我想在不同的平台上编译。

OSXFiles 是 OSX 所在的文件夹

macx {
    MY_FOLDER = OSXFiles

    SOURCES += $$MY_FOLDER/File_1.hpp $$MY_FOLDER/File_3.hpp $$MY_FOLDER/File_3.hpp
    SOURCES += $$MY_FOLDER/File_1.cpp $$MY_FOLDER/File_3.cpp $$MY_FOLDER/File_3.cpp
}

以上技术可行,但有没有办法摆脱在每个文件前添加 $$MY_FOLDER 的麻烦? 难道没有像这样的一些很酷的技巧,例如,它可以理解对于每个默认查看 $$MY_FOLDER?

SOURCES += $$MY_FOLDER/ += File_1.hpp File_3.hpp 

您可以使用 for 函数

MY_FOLDER = OSXFiles
for(a, SOURCES){
    OSXFILES += $$MY_FOLDER/$$a
}

join:

OSXFILES = $$join(SOURCES, " $$MY_FOLDER/", $$MY_FOLDER/)