summaryrefslogtreecommitdiff
path: root/examples/qwebchannel/exampleassets.pri
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qwebchannel/exampleassets.pri')
-rw-r--r--examples/qwebchannel/exampleassets.pri31
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/qwebchannel/exampleassets.pri b/examples/qwebchannel/exampleassets.pri
new file mode 100644
index 0000000..035ca12
--- /dev/null
+++ b/examples/qwebchannel/exampleassets.pri
@@ -0,0 +1,31 @@
+# This adds the qwebchannel js library to an example, creating a self-contained bundle
+QTDIR_build {
+ # Build from within Qt. Copy and install the reference lib.
+ jslib = $$dirname(_QMAKE_CONF_)/src/webchannel/qwebchannel.js
+ copyfiles = $$jslib
+} else {
+ # This is what an actual 3rd party project would do.
+ jslib = qwebchannel.js
+}
+
+# This installs all assets including qwebchannel.js, regardless of the source.
+exampleassets.files += $$jslib
+INSTALLS += exampleassets
+
+# This code ensures that all assets are present in the build directory.
+
+!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
+ # Shadow build, copy all example assets.
+ copyfiles = $$exampleassets.files
+}
+
+defineReplace(stripSrcDir) {
+ return($$basename(1))
+}
+
+assetcopy.input = copyfiles
+assetcopy.output = $$OUT_PWD/${QMAKE_FUNC_FILE_IN_stripSrcDir}
+assetcopy.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+assetcopy.name = COPY ${QMAKE_FILE_IN}
+assetcopy.CONFIG = no_link target_predeps
+QMAKE_EXTRA_COMPILERS += assetcopy