From 0c958233690199d0311393f8b3f577bd9710c628 Mon Sep 17 00:00:00 2001 From: Sarah Smith Date: Wed, 20 Apr 2011 09:40:54 +1000 Subject: First cut of windows packaging --- README | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'README') 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. -- cgit v1.2.3