EstervUpdater 0.0.6
In-app updater
Loading...
Searching...
No Matches

This repo implements a C++ class and QML Module that takes care of downloading and installing application updates. The latter can be used to do in-app updates. The methods rely on the Qt Installer Framework(QtIFW) and that the application also installs the 'maintenancetool' provided by the QtIFW.

Dependencies

The repo depends on Qt libraries.

Configure, build, test, package ...

The project uses CMake presets as a way to share CMake configurations. Refer to cmake, ctest and cpack documentation for more information on the use of presets.

Adding the libraries to your CMake project

include(FetchContent)
FetchContent_Declare(
EstervUpdater
GIT_REPOSITORY https://github.com/EddyTheCo/Esterv.Utils.Updater.git
GIT_TAG vMAJOR.MINOR.PATCH
FIND_PACKAGE_ARGS MAJOR.MINOR CONFIG
)
FetchContent_MakeAvailable(EstervUpdater)
target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> Esterv::Updater)

If you want to use the QML module also add

$<$<STREQUAL:$<TARGET_PROPERTY:Esterv::Updater,TYPE>,STATIC_LIBRARY>:Esterv::Updaterplugin>

API reference

You can read the API reference here, or generate it yourself like

cmake --workflow --preset default-documentation

Using the QML modules

One needs to make available to the QML engine the different modules by setting the QML import path.

  1. In your main function engine.addImportPath("qrc:/esterVtech.com/imports"); to use the resource file.
  2. Set the environment variable like export QML_IMPORT_PATH=installDir/CMAKE_INSTALL_LIBDIR where CMAKE_INSTALL_LIBDIR is where Esterv folder was created.

Examples

The [examples](examples) folder shows the use of the different classes and QML types.

Contributing

We appreciate any contribution!

You can open an issue or request a feature. You can open a PR to the develop branch and the CI/CD will take care of the rest. Make sure to acknowledge your work, and ideas when contributing.