| # ------------------------------------------------------------------- |
| # This feature enables the use of AllInOne.cpp files by adding them |
| # to SOURCES and removing the sources the corresponding files include |
| # from SOURCES, to avoid duplicated compilation units. |
| # |
| # See 'Tools/qmake/README' for an overview of the build system |
| # ------------------------------------------------------------------- |
| |
| # Globbing all does not work yet, not all AllInOne files build reliably yet. |
| # So instead we select them manually. |
| #collection = $$files($$_PRO_FILE_PWD_/*AllInOne.cpp, true) |
| collection = $$ALL_IN_ONE_SOURCES |
| |
| for(collectionFile, collection) { |
| lines = $$cat($$_PRO_FILE_PWD_/$$collectionFile, lines) |
| for(line, lines) { |
| line = $$find(line, "^.+include \"(.*)\"") |
| isEmpty(line): next() |
| line ~= s/^.+include \"(.*)\"/\\1/ |
| source = $$dirname(collectionFile)/$$line |
| contains(SOURCES, $$source) { |
| SOURCES -= $$source |
| tookFromSources = true |
| } |
| } |
| !isEmpty(tookFromSources): SOURCES *= $$collectionFile |
| } |
| |