sincerely Singaporean

If you have not done so, read this full tutorial on how to use SGEXTN to build an application.

SGEXTN README

SGEXTN is 05524F's own C++ framework for application development with an emphasis on pure C++ code. Users of SGEXTN will only need to write C++ (and GLSL if you need custom shaders). There is also an emphasis on clean header files for fast clang-tidy passes and easy availability of the source code which is linked on every documentation page.

If you came here from somewhere other than GitHub, here is the GitHub repository.

This version of SGEXTN is designed to work with Qt 6.10.1 and prebuilt SGEXTN are built using Qt 6.10.1

Current version of SGEXTN: v6.4.0

published on: 16 January, SG61

list of features

setting up SGEXTN

demo app

credits and legal info

List of modules

SGEXTN contains 6 modules. Each module is described in detail in their own documentation pages linked below.

Containers - template based container data structures

Math - mathematical operations

Core - core SGEXTN functionality

FileSystem - access to file system

SGWidget - graphical user interface

SG - RI - custom rendering

See setting up SGEXTN for how to set up SGEXTN. In addition to SGEXTN, you also need Qt, CMake, Ninja and Qt Shader Tools to build SGEXTN apps. BuildLah ⁽㈳㈴㈳㈮㈱㈨㈠㈫ ㈧㈤㈱㈤⁾ is included inside SGEXTN.

When developing SGEXTN applications, you are strongly encouraged to use the Qt Creator IDE. Qt Creator has tooling that SGEXTN uses either builtin or easily available through the Qt Maintenance Tool. You are strongly recommended to use Git, GitHub, and clang-tidy when building your applications.

SGEXTN uses Qt Quick and QRhi for rendering, however users do not need to care at all about QML, JavaScript, and any other such nonsense. There is also no need to care about Qt's macros, the Qt meta object system, or signal-slot. Linking Qt will be handled automatically by the BuildLah ⁽㈳㈴㈳㈮㈱㈨㈠㈫ ㈧㈤㈱㈤⁾ CMake integration.

SGEXTN exposes private API, so as long as you know exactly what you are doing, you can extend SGEXTN by using its private API, or even linking to Qt libraries and using Qt features side by side with SGEXTN. For example building a custom SGWidget ⁽㈳㈴㈳㈮㈱㈨㈠㈫ ㈧㈤㈱㈤⁾ that uses your own QQuickItem is completely feasible. Note that doing this will require deep understanding of the source code, since private API is not documented.

Setting up SGEXTN

Before setting up SGEXTN, first ensure that you have Qt installed properly on your computer. The Qt Shader Tools module is required for using SGEXTN as otherwise SGEXTN apps will not build. You can get Qt from their official website and install the shader tools module using the Qt Maintenance Tool. Make sure that your Qt version matches the intended Qt version for this SGEXTN version, the version information can be found at the top of this README.

You will also need CMake, Ninja, and Qt Creator to build SGEXTN apps. These can be obtained through the Qt Maintenance Tool. Also ensure that Git is set up properly on your computer.

On Linux, the compiler is present by default on your computer. On MacOS it can be easily installed using XCode. When building for Windows, you can obtain a compiler through the Qt Maintenance Tool. You need to get the compiler and Android SDK + NDK separately when building for Android.

Once these are set up, you can download the prebuilt SGEXTN binaries from the latest SGEXTN release on GitHub and unzip the file to a folder. The folder you unzip it to will be refered to as the SGEXTN install folder, and it should contain the folders include/ and lib/

Then add these to your system PATH.

[SGEXTN install folder]/lib [SGEXTN install folder]/lib/cmake/SGEXTN

Now your computer is ready for building SGEXTN apps. To learn how to build one, see this tutorial.

Note that SGEXTN uses BuildLah ⁽㈳㈴㈳㈮㈱㈨㈠㈫ ㈧㈤㈱㈤⁾ instead of raw CMake to simplify the build process. For more information see the dedicated BuildLah ⁽㈳㈴㈳㈮㈱㈨㈠㈫ ㈧㈤㈱㈤⁾ tutorial.

When naming classes in your applications, ensure that the names start with "SG", followed by 3 capital letters indicating your application, followed by the actual class name. This ensures that different developers using SGEXTN would not have conflicting class names and that your application is compatible with SGEXTN tooling.

SGEXTN uses Qt under the Lesser General Public License version 3.

SGEXTN itself is licensed under the Lesser General Public License version 3.

For more information about licensing, see the LICENSE.txt file in the GitHub repository.

05524F is the only contributor to SGEXTN.

©2025 05524F.sg (Singapore)

contact 05524F / report a bug / make a suggestion

about 05524F SINGAPORE values

list of 05524F projects