|
|
| (7 intermediate revisions by 4 users not shown) |
| Line 1: |
Line 1: |
| [[Category:Developing_with_Qt]]<br />[toc align_right="yes&quot; depth="3&quot;] | | [[Category:Developing_with_Qt]] |
|
| |
|
| = Qt for Google Native Client =
| | Qt for Native Client allows you to deploy and run Qt applications in the Chrome web browser |
|
| |
|
| Qt for Native Client allows you to deploy and run Qt applications in supported web browsers. Native Client is currently implemented in the Chrome browser.
| | For a general introduction to Native Client see the [https://developer.chrome.com/native-client project page] or the [http://www.youtube.com/watch?v=WgbK0ztUkDM 2011 Google IO talk] |
| | |
| For a general introduction to Native Client see the "project page&quot;:http://code.google.com/p/nativeclient/ or the "2011 Google IO talk&quot;:http://www.youtube.com/watch?v=WgbK0ztUkDM | |
|
| |
|
| == Getting Started == | | == Getting Started == |
|
| |
|
| To develop C+''-based Qt applications targeting native client you need the following:
| | You'll need the following: |
| <br /># A Mac OS X or Gnu/Linux system. Windows is not supported.<br /># The nacl "SDK&quot;:http://code.google.com/chrome/nativeclient/. Qt is currently developed against SDK version 18 using glibc toolchain.<br /># Chrome from Google. Qt is currently developed against Chromium 18''.<br /># "qtbase-nacl&quot; (Qt 5) https://github.com/msorvig/qt5-qtbase-nacl<br /># "qttools-nacl&quot; (Qt 5) https://github.com/msorvig/qt5-qttools-nacl
| |
| | |
| === Configuring and building Qt ===
| |
| | |
| Qt 5 is now the preferred version, and includes improvements such as shared builds, glibc toolchain support and a better nacldeployqt that can create multi-arch app distributions.
| |
| | |
| ==== 32-bit: ====
| |
| | |
| ./configure -xplatform unsupported/nacl-g++ -device-option CROSS_COMPILE=/path/to/nacl_sdk/pepper_19/toolchain/mac_x86_glibc/bin/ -nomake examples -nomake tests -developer-build -opensource -confirm-license -reduce-relocations
| |
| | |
| ==== 64-bit: ====
| |
| | |
| ./configure -xplatform unsupported/nacl64-g++ -device-option CROSS_COMPILE=/path/to/nacl_sdk/pepper_19/toolchain/mac_x86_glibc/bin/ -nomake tests -developer-build -opensource -confirm-license -release -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2
| |
| | |
| make sub-src (should complete)
| |
| | |
| === Qt Deployment ===
| |
| | |
| QtTools now includes the ''nacldeployqt'' tool which supports packaging a Qt app with all its dependencies. Building your app should give you a .nexe file, which nacldeployqt can extract dependencies from.
| |
| | |
| # Build qttools/src/nacldeployqt using HOST Qt: (/path/to/host/qt/bin/qmake -nocache nacldeployqt.pro)
| |
| # Developer deployment: "nacldeployqt MyApp.nexe -server&quot; . Open Chrome at localhost:5103
| |
| # Distribution deployment with multiple archs: "nacldeployqt x86-32/MyApp.nexe x86-64/MyApp.nexe targetDirectory&quot;
| |
| | |
| nacldeployqt creates loader html&amp;javascript, the .nmf manifest file, copies dependencies and also generates files that can serve as starting point for Chrome Web Store deployment.
| |
| | |
| == Porting Guide ==
| |
| | |
| * Widgets generally work
| |
| * OpenGL, [QtDeclarative|Quick|1|2], [QtMultimedia|Kit], or anything else outside of QtBase is not currently supported.
| |
| * Q_OS_NACL is your friend
| |
| * Re-entering the event loop is not supported. (QFileDialog::getOpenFileName() will not work; QFileDialog::show() can be made to work at some point)
| |
| * Window management is tricky and only partially implemented. For best results use one top-level window only.
| |
| | |
| === Roadmap ===
| |
| | |
| * OpenGL support
| |
| | |
| == Qt Creator [NOT TESTED WITH QT 5] ==
| |
|
| |
|
| "Qt Creator&quot;:https://gitorious.org/qtnativeclient/creator supports targeting the NaCl toolchain, and launching apps using the chrome(ium) browser. The toolchain and browser are found by looking in the PATH, make sure “which i686-nacl-gcc” and “which chrome” returns the correct binaries. Also make sure that Qt Creator actually sees the correct PATH, launching it directly from the terminal usually does the trick.
| | # A Mac OS X or Gnu/Linux system. Windows is not supported. |
| | # Chrome |
| | # The [https://developer.chrome.com/native-client NaCl SDK]. |
| | # [https://github.com/msorvig/qt5-qtbase-nacl qt5-qtbase-nacl] |
| | # [https://github.com/msorvig/qt5-qtdeclarative-nacl qt5-qtdeclarative-nacl] (Optional, for Qt Quick) |
|
| |
|
| If everything works correctly then there should be a “NaCl GCC” toolchain as well as a “NaCl” target available.
| | See [https://github.com/msorvig/qt5-qtbase-nacl/blob/nacl-5.4/nacl-readme nacl-readme] in qt5-qtbase-nacl for further instructions. |
Qt for Native Client allows you to deploy and run Qt applications in the Chrome web browser
For a general introduction to Native Client see the project page or the 2011 Google IO talk
Getting Started
You'll need the following:
- A Mac OS X or Gnu/Linux system. Windows is not supported.
- Chrome
- The NaCl SDK.
- qt5-qtbase-nacl
- qt5-qtdeclarative-nacl (Optional, for Qt Quick)
See nacl-readme in qt5-qtbase-nacl for further instructions.