Qt3D
Go to file
Paul Wicking 33c4cb15cd Add .gitreview file
`git-review` is a command line tool for interacting with Gerrit.
Some IDEs offer support for this tool, either natively or through
plugins. The tool relies on a configuration file, .gitreview. Adding
this configuration file to our repositories simplifies initial setup
for contributors that use the tool directly or through their IDE of
choice.

The configuration file adds a remote called 'gerrit'. This is the
default for the tool, and also the name set for
codereview.qt-project.org by Qt's `init-repository` script. Thus,
the configuration should work seamlessly alongside other repository
helpers.

As the file format doesn't seem to be designed with comments in mind,
add it to the other version control system exemptions in REUSE.toml.

Task-number: QTBUG-132604
Pick-to: 6.9 6.8
Change-Id: I659ee037927032f4e409afe7b7f79a47a5416006
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2025-02-25 15:39:41 +01:00
LICENSES Add REUSE.toml files and missing licenses 2024-11-11 08:02:29 +01:00
cmake Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-24 01:53:10 +02:00
coin Doc: Enable documentation testing in the CI 2024-11-04 13:22:53 +00:00
config.tests Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-24 01:53:10 +02:00
dist Add REUSE.toml files and missing licenses 2024-11-11 08:02:29 +01:00
examples Add REUSE.toml files and missing licenses 2024-11-11 08:02:29 +01:00
src Doc: Fix incorrect QML type inheritance 2025-02-22 11:07:38 +00:00
tests Add REUSE.toml files and missing licenses 2024-11-11 08:02:29 +01:00
tools/utils Change license for tools files 2024-04-19 12:30:46 +00:00
usecases Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-24 01:53:10 +02:00
.clang-format .clang-format: remove column limit 2022-12-19 08:50:12 +01:00
.cmake.conf Bump version to 6.10.0 2025-01-03 18:28:54 +00:00
.gitattributes Update the git-archive export options 2012-09-11 09:25:30 +02:00
.gitignore Update .gitignore for new Qt Creator behavior 2024-08-05 11:18:04 +01:00
.gitmodules Update assimp submodule 2021-06-02 15:19:37 +03:00
.gitreview Add .gitreview file 2025-02-25 15:39:41 +01:00
.qt-license-check.exclude Exclude developer qtcreator templates from license checks 2016-01-01 09:57:41 +00:00
.tag Update the git-archive export options 2012-09-11 09:25:30 +02:00
CMakeLists.txt Add the use of the qt_internal_project_setup function 2023-05-31 13:56:03 +02:00
README Add comment about assimp to readme 2015-05-24 10:20:53 +00:00
REUSE.toml Add .gitreview file 2025-02-25 15:39:41 +01:00
config_help.txt 3DCore: rip away the configure option and static choice of SIMD 2023-01-19 19:18:52 -08:00
configure.cmake Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-24 01:53:10 +02:00
dependencies.yaml Update dependencies on 'dev' in qt/qt3d 2025-02-22 11:07:17 +00:00
licenseRule.json Add a licenseRule.json file for checking of SPDX license identifiers 2024-07-01 14:05:13 +00:00
qt_cmdline.cmake Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-24 01:53:10 +02:00

README

This directory contains the Qt3D project for Qt5:
   * Qt3D QML bindings and
   * Qt3D C++ APIs


Building Qt3D
==================

Qt5 is a rapidly changing bleeding edge environment.  This branch is our initial
support for it and thus is also rapidly changing and bleeding edge.

This branch is experimental, and unsupported.  This information is provided for
advanced use only.

No guarantees about API stability or even if this works at all are supplied, use
at your own risk.

First fetch the Qt5 source tree and Qt3D master branch:

    cd ~/depot
    git clone ssh://codereview.qt-project.org:29418/qt/qt5.git
    cd qt5
    ./init-repository --codereview-username <username> \
        --module-subset=qtbase,qtsvg,qtdeclarative,qttools,qtxmlpatterns,qtdoc,qlalr,qtrepotools,qtqa,qtlocation,qt3d
    git submodule foreach "git fetch gerrit && git reset --hard gerrit/master"
    cd qt3d
    scp -p -P 29418 codereview.qt-project.org:hooks/commit-msg .git/hooks/
    git fetch gerrit
    git checkout --track -b master gerrit/master

If you are reading this file then somehow you probably already got this far anyway.

Now build Qt5, which will also build Qt3D as a module:

    cd ~/build
    mkdir qt5
    cd qt5
    ~/depot/qt5/configure -developer-build -opensource -confirm-license -no-webkit -no-phonon -nomake tests \
        -nomake examples -declarative -opengl -svg && make -j 4


What's in Qt3D
==================

Directory structure:

src/threed/
    This is the main library of the Qt3D project, containing abstractions
    for cross-platform GL, shaders, lighting models, and so on.
src/plugins/
    Scene format loading plugins.
src/imports/
    QML import plugins.
util/
    Various utilities that are useful when working with Qt3D.
examples/
    Some examples of using Qt3D QML bindings and Qt3D C++ API.
demos/
    Some more complex demos of using Qt3D QML bindings and Qt3D C++ API.
tests/auto/qml3d/
    Unit tests for the QML bindings.
tests/auto/threed/
    Unit tests for the C++ API
doc/
    Documentation.
devices/symbian/
    Symbian deployment file


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 Qt3D.  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 Qt3D pro files work.

To build Qt3D, run:

    qmake && make

The .pro files will cause the toolchain to place the libraries, QML files and
meshes of Qt3D directly into place, as part of the compile process.  The files
go into the bin/ directory, and the executables can be run directly from there.
If you are doing a developer build, plugins will be installed in such a way
that Qt will find them.

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:

    INSTALL_ROOT=tmp make install


Examples
========

Some examples require assimp library to parse the content. Go to http://assimp.sourceforge.net/
and build and install the assimp library. Then configure Qt3D to include assimp and
run qmake && make.