summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorSarah Smith <sarah.j.smith@nokia.com>2011-04-20 09:40:54 +1000
committerSarah Smith <sarah.j.smith@nokia.com>2011-04-20 09:40:54 +1000
commit0c958233690199d0311393f8b3f577bd9710c628 (patch)
tree3d607e1377e246269c19558563f3946a8ddbe211 /README
parentb03fb03df383d63f25deb828a333db0939a4d2df (diff)
First cut of windows packaging
Diffstat (limited to 'README')
-rw-r--r--README50
1 files changed, 50 insertions, 0 deletions
diff --git a/README b/README
index 3e8bb203c..3785f56c2 100644
--- a/README
+++ b/README
@@ -43,3 +43,53 @@ Documentation
The documentation can be generated with "make docs". It will be placed
into "doc/html" in the build directory.
+
+
+Packages
+========
+
+This section is only for those developing QtQuick3D. Read on to discover how
+the building of packages works. This section is also important if you want to
+change how the structure of the QtQuick3D pro files work.
+
+QtQuick3D is intended to be built in one of two ways:
+
+1) Normal developer way:
+ qmake && make
+2) Package creation way:
+ qmake CONFIG+=package && INSTALL_ROOT=tmp make install
+
+In 1) the .pro files will cause the toolchain to place the libraries, plugins
+header files and other components of QtQuick3D directly into place, as part of
+the compile process. What does "in place" mean? Run "qmake -query" to see
+the paths where the files are placed - QML plugins go in $$[QT_INSTALL_IMPORTS]
+for example. In this mode, there is no need to run "make install" because the
+files are already in their target destination. Here the "target destination"
+means the Qt which is being built against.
+
+First note that QtQuick3D has to be installed into the target Qt. This is because
+QtQuick3D has QML plugins and resources, as well as shared libraries, all of which
+must be resolved by the QMLViewer of the target Qt at runtime. Here where "qmake"
+is referred to it means the qmake inside the target Qt. Since QtDeclarative
+recommends using QMLViewer when developing and debugging QML Apps, in the developer
+case - which is what Qt3D is for - it has to install directly into the target Qt.
+
+In this mode 1) after the main library is compiled subsequent targets can simply
+resolve includes and link time dependencies by use of qt3d.prf and qtquick3d.prf.
+These two files are installed into the target Qt's makespecs/features directory
+during the processing of the quick3d.pro file.
+
+In 2) the libraries, plugins and so on are sitting inside the build tree after
+the compile step. As a result in order to resolve includes and dependencies
+the build system has to navigate the build tree with paths like "-L../../../threed"
+to locate the Qt3D libraries.
+
+Actually there is one build artifact that is not just left where it lands in the
+build tree - the header files. These are actually copied into an "include"
+directory inside the build root directory. This is because at present the header
+files all live inside their own seperate subdirectories under "threed" and would
+be too cumbersome to path in explicitly.
+
+After building the tree the install step is invoked using the INSTALL_ROOT environment
+export to cause the installation rules to place all the files into a sandboxed
+install tree, ready for packaging.