# nymea-app QtQuick nymea client application # building Required packages: It is recommended to install a complete Qt installation. Minimum required Qt version is Qt 6. No extra modules are required for a basic desktop build. After cloning the repository, run $ git submodule init $ git submodule update To build a binary with CMake run $ cmake -S . -B build $ cmake --build build The build can be customised with the following cache variables: - `-DNYMEA_ENABLE_ZEROCONF=ON` enables ZeroConf support when the QtZeroConf and Avahi dependencies are available. - `-DNYMEA_USE_MATERIAL_ICONS=ON` switches the icon theme to the Material icon set. Legacy qmake builds are still available by opening `nymea-app.pro` in QtCreator and building the project there. Optional configuration flags to be passed to qmake: - `CONFIG+=withtests` > Enables building the testrunner target ## Android When targeting Android, the build will download the KDAB [`android_openssl`](https://github.com/KDAB/android_openssl) package at configure time and automatically bundle the provided `libssl` and `libcrypto` shared libraries inside the APK. An active internet connection is therefore required the first time you configure an Android build directory. Other platforms will build without explicitly linking to OpenSSL if the development package is not installed. ## Windows There is an additional make target named "wininstaller" available. You need to have windeployqt and binarycreator (from Qt Install Framework 3.0) in your system's Path. # Running the tests Required Packages: - `qtdeclarative5-test-plugin` - `nymead` # Custom styles and branding: ## Overriding styles available in the app nymea-app can be built with custom styles by passing STYLES_PATH to qmake. Example: $ qmake STYLES_PATH=/home/user/my-styles/ The path must point to a directory containing the following file structure: - styles.qrc - styles//logo.svg styles.qrc should be a Qt qrc file listing all the files inside styles/ providing an logo.svg is the minimum required for a style. In addition to that, any QtQuick.Controls 2 component can be override. See the styles/ directory in this repository fo examples. ## Branding In addition to overriding the available app styles, the app can be branded. That means, the style selection will be hidden and the app is locked down to the style given by the BRANDING argument passed to qmake. Example locking down the app to the "dark" style: $ qmake BRANDING=dark Brandings will also affect the installer packages. If you use branding in combination with style overrides, you also need to provide a installer package in packages/_ in your styles directory. See the packaging directory in this repository for examples for isntaller packages. Example: $ qmake STYLES_PATH="C:\path\to\my\styles" BRANDING=mycoolstyle This would the following minimum files in C:\path\to\my\styles\ : - styles.qrc - styles\mycoolstyle\logo.svg - packaging\windows_mycoolstyle\ ## License nymea-app is licensed under the terms of the GNU General Public License, version 3 or (at your option) any later version (SPDX identifier: GPL-3.0-or-later). Every `.cpp/.h/.qml` file in `nymea-app/` and `experiences/` now carries the SPDX + GPL header that attributes both nymea GmbH and chargebyte austria GmbH . The complete GPL text is available in `LICENSE.GPL3`, with third-party notices kept in `LICENSES/`. libnymea-app is licensed under the GNU Lesser General Public License version 3 (SPDX identifier: LGPL-3.0-or-later). The full LGPL v3 text can be found in `LICENSE.LGPL3`, and the headers inside `libnymea-app/` have been updated accordingly.