Quartz is a plugin based generic cross-platform application. It intends to be a platform for writing wide varity of plugins which need not be related. One of the design goals is to provide as many as plugin hooks without any assumptions about the plugins that will use the platform.
Quartz uses a CMake based build system which uses cmake_lib (https://github.com/varunamachi/cmake_lib). Before running CMake a environment variable QUARTZ_ROOT should be set to the root of the Quartz directory.
The build system does not allow in-source builds, it is recommended that the build be done in ${QUARTZ_ROOT}/builds
The generated binaries and headers in case of libraries are installed to $QUARTZ_ROOT/output
directory. Any module can be built independently provided that the dependency modules are already built and their generated output is installed in $QUARTZ_ROOT/output
.
Dependency - Qt 5.12+
On Linux:
export QT_ROOT=<path_to_qt_installation>/<qt_version>/<compiler_id>
#for example:
#export QT_ROOT=/opt/Qt/Qt.5.12.0/5.7/gcc_64
cd scripts/linux
chmod u+x build.sh
./build.sh
On Windows:
set QT_ROOT=<path_to_qt_installation>/<qt_version>/<compiler_id>
rem -- for example:
rem -- set QT_ROOT=C:\Qt\Qt.5.12.0\5.7\mingw32_53
cd scripts\windows
build.bat
The binaries will be present at output/bin/Release
At this time Quartz has following modules:
source/core
: Core service providers, plugin management and other untility classessource/base
: Classes defining basing UI structure and exposing platform adapterssource/common
: Common UI classes in Qt5source/app
: The applicationplugin_base
: A static library to which plugins can link to, so that they dont have to implement common boilerplate
Apart from this the default plugins are located at plugins
directory. At the moment following plugins are implemented:
plugins/plugin_sample
: Plugin for testing and demonstrating the plugin systemplugins/plugin_creator
: Plugin that allows easy creation of other pluginsplugins/plugin_serial_console
: Provides a serial UART consoleplugins/plugin_icon_font_explorer
: Provides a view for exploring FontAwesome and MaterialIcon font icons, that can be used with any other part of Quartz or pluginsplugins/plugin_webtech
: Provides features that depend on QtWebengine. (On Windows works only with Visual Studio 2017 and above)