diff options
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/qt_build_config.prf | 1 | ||||
-rw-r--r-- | mkspecs/features/qt_example_installs.prf | 71 |
2 files changed, 72 insertions, 0 deletions
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index df07630ffa..63d6b43c7c 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -28,6 +28,7 @@ mac { CONFIG += \ create_prl link_prl \ prepare_docs qt_docs_targets \ + qt_example_installs \ no_private_qt_headers_warning QTDIR_build \ # Qt modules get compiled without exceptions enabled by default. # However, testcases should be still built with exceptions. diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf new file mode 100644 index 0000000000..72f0b141a7 --- /dev/null +++ b/mkspecs/features/qt_example_installs.prf @@ -0,0 +1,71 @@ +probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples) +!contains(probase, ^\\..*) { + for(ex, EXAMPLE_FILES): \ + sourcefiles += $$files($$absolute_path($$ex, $$_PRO_FILE_PWD_)) + for(res, RESOURCES) { + rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines) + for(rline, rfile) { + resrc = $$replace(rline, ^[ \\t]*<file[^>]*>([^<]+)</file>[ \\t]*$, \\1) + !equals(resrc, $$rline): \ + sourcefiles += $$resrc + } + } + for(res, RC_FILE) { + rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines) + for(rline, rfile) { + resrc = $$replace(rline, "^\\d+\\s+ICON\\s+[^\"]*\"([^\"]+)\"\$", \\1) + !equals(resrc, $$rline): \ + sourcefiles += $$resrc + } + } + extras = \ + $$_PRO_FILE_PWD_/README \ + $$files($$_PRO_FILE_PWD_/*.pri) \ + $$replace(_PRO_FILE_, \\.pro$, .json) \ + $$replace(_PRO_FILE_, \\.pro$, .inf) + for(extra, extras): \ + exists($$extra): \ + sourcefiles += $$extra + + # Just for Qt Creator + OTHER_FILES += $$sourcefiles + + sourcefiles += \ + $$_PRO_FILE_ $$RC_FILE $$DEF_FILE \ + $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \ + $$DBUS_ADAPTORS $$DBUS_INTERFACES + for(sf, sourcefiles) { + sf = $$relative_path($$sf, $$_PRO_FILE_PWD_) + contains(sf, \\..*) { + check_examples: message("Notice: $$_PRO_FILE_ refers to $$sf") + } else { + sfp = $$replace(sf, /.*, ) + !equals(sfp, $$sf): \ + sources.files *= $$sfp + else: \ + sources.files += $$sf + } + } + sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase + INSTALLS += sources + + check_examples { + thefiles = $$files($$_PRO_FILE_PWD_/*) + for(i, thefiles): \ + allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_) + for(i, sources.files): \ + allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_) + for(i, SUBDIRS) { + sd = $$eval($${i}.file) + !isEmpty(sd) { + sd ~= s,/.*,, + } else { + sd = $$eval($${i}.subdir) + isEmpty(sd): sd = $$i + } + allfiles -= $$sd + } + allfiles -= doc + !isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles") + } +} |