                        GCompris HACKING

Official repository
-------------------
The official repository requires a KDE developer account, we will ask regular
contributors to get an account and work on the KDE repository.

    https://invent.kde.org/education/gcompris

For new developers and those interested only in smaller contributions use the
https://phabricator.kde.org/ or GitHub repository.


Source code from GitHub
-----------------------
Checkout the source code by cloning it from GitHub

    git clone git://github.com/gcompris/GCompris-qt.git

If you want to have a personal fork, in order to commit occasional patches,
fork it on GitHub then clone your fork

    git clone git@github.com:<username>/GCompris-qt.git

When asking for a pull request, create a new topic branch and commit your
changes there then open a pull request to gcompris-qt repository on GitHub.

See GitHub's documentation for more information.

    https://help.github.com/categories/collaborating/


Dependencies
------------
In order to be able to compile GCompris the following Qt5 dependencies need to
be installed (version 5.12 minimum)

    Qt 5 Development Defaults
    Qt 5 qmake
    Qt Creator
    Qt Linguist Tools

    Qt Core
    Qt Graphical Effects QML Module
    Qt Gui
    Qt Multimedia
    Qt Multimedia QML Module
    Qt Network
    Qt Qml
    Qt Quick
    Qt Svg
    Qt Charts (qml plugin)

CMake must be installed to compile GCompris:

    sudo apt install cmake

By default, translations are also built so gettext package must be installed to compile GCompris (to ignore translation files, run cmake with `-DSKIP_TRANSLATIONS=ON`:

    sudo apt install gettext
    
Installing dependencies on a Debian based systems can be done like this:

    sudo apt install libqt5svg5-dev \
                          qml-module-qtmultimedia \
                          qml-module-qtgraphicaleffects qt5-qmake qtcreator \
                          qtdeclarative5-dev qtdeclarative5-dev \
                          qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev \
                          qttools5-dev-tools libqt5multimedia5-plugins \
                          qml-module-qtsensors libqt5quickparticles5 \
                          qml-module-qtquick2 qml-module-qtquick-particles2 \
                          libqt5sensors5-dev libqt5sensors5 qml-module-qtcharts

To build for Android, Qt 5 AndroidExtras also needs to be installed.

If building from a .tar.gz or .zip source distribution the externals may
need to be added.

    cd GCompris-qt-*
    git clone https://github.com/qml-box2d/qml-box2d.git external/qml-box2d/


Build
-----
Start QtCreator and select Open Project and open CMakeLists.txt in the
gcompris-qt root directory. Follow the wizard instructions.

Use the buttons on the lower left side to build, run, and debug GCompris.

An alternative building process is to use cmake in command-line directly.

    cd GCompris-qt-*
    mkdir build
    cd build
    cmake ..
    make
    ./bin/gcompris-qt

More Details
------------
Go To this Link:
          https://gcompris.net/wiki/Qt_Quick_development_process
