- Qt API exposed in js
- Node.js integrated and runs in a single event loop
- git
- subversion (for V8 make dependencies)
- C++11 supporting compiler, tested with gcc 4.7.2, 4.7.3, clang 3.4
- cmake (for building cpgf library)
- make (some automation in qmake build files invokes it)
- Qt5.3.1
- OpenGL development files
- libffi development files
- Boost (required for tests) - tested with 1.52
# download source
git clone https://github.com/svalaskevicius/qtjs-generator.git
cd qtjs-generator/
git submodule update --init --recursive
# build it!
mkdir -p build
cd build
<path to Qt>/bin/qmake ../ -recursive
make -j4
# (this will take a while)
- doxygen
- JDK (for building the metadata generator)
- bash & perl (for preprocessing etc)
- Qt package with header for Linux
As Qt has different headers directory structure for different target platforms, you'll need to use the packages that are available to download for the Linux platform. The structure in those packages is the simplest and thus enabled to create the header scanner easily - if this causes many problems, we can change this to support the source packages instead.
# build metagen tool
pushd lib/cpgf/tools/metagen
# **download rhino from https://developer.mozilla.org/en-US/docs/Rhino/Download_Rhino and put js.jar here**
wget https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip
unzip -j rhino1_7R4.zip '*/js.jar'
cd tool
bash compile.sh
popd
# generate binding code
pushd metagen
bash generate_bindings.sh <path to Qt includes>
popd
While there is no install script yet, the built qtjs runner can be launched using the wrapper scripts in the tools directory.
cd tools
./qtjs
You'll see the nodejs prompt. Try typing "qt" - the screen should be filled with the Qt classes available for usage.
Try the following:
var a = new qt.QMessageBox()
a.setText(new qt.QString("Hello World!"))
a.show()
Or check the prepared examples:
cd examples/
../tools/qtjs widgets.js
qtjs
can by symlinked to a directory in $PATH and it will be available throughout the system.
Also, it can act as the node
or nodejs
launcher with the compatible npm
symlinked in the same
tools directory - all node packages can be used together with the Qt bindings.
Eclipse Public License (EPL) http://www.eclipse.org/org/documents/epl-v10.php