summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/qt_build_config.prf1
-rw-r--r--mkspecs/features/qt_example_installs.prf71
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")
+ }
+}