A cross-platform base for native Nickvision applications.
libnick provides Nickvision apps with a common set of cross-platform APIs for managing system and desktop app functionality such as network management, taskbar icons, translations, app updates, and more.
Documentation for this library and its modules can be found here.
The following are a list of dependencies used by libnick.
The recommendation is to (and below commands will) use vcpkg to pull these dependencies. However, vcpkg is not a requirement as long as the system provides these dependencies correctly.
- boost-json
 - cpr
 - gtest
 - libintl
 - maddy
 - sqlcipher (Must be provided by the system on Linux and macOS as sqlcipher is not available via vcpkg for these systems)
 
The above dependencies must be installed, plus the following for Linux and macOS systems:
- glib
 - libsecret
- For macOS: Only required if 
-DUSE_LIBSECRET="ON" 
 - For macOS: Only required if 
 
libnick is available through vcpkg.
Simply install and configure vcpkg for your system, and run:
vcpkg install libnick
You can then use libnick from cmake with the following:
find_package(libnick CONFIG REQUIRED)
target_link_libraries(main PRIVATE libnick::libnick)
libnick uses cmake as its build system and vcpkg to optionally manage its dependencies.
Ensure cmake and vcpkg are installed on your system before building and installing libnick.
A C++20 compiler is also required to build libnick.
- Set the 
VCPKG_ROOTenvironment variable to the path of your vcpkg installation's root directory. 
- Set the 
VCPKG_DEFAULT_TRIPLETenvironment variable tox64-windows - Run 
vcpkg install boost-json cpr gettext-libintl gtest maddy sqlcipher 
- Set the 
VCPKG_DEFAULT_TRIPLETenvironment variable tox64-linux - Run 
vcpkg install boost-json cpr gettext-libintl glib gtest libsecret maddy 
- Set the 
VCPKG_DEFAULT_TRIPLETenvironment variable toarm64-osx - Run 
vcpkg install boost-json cpr gettext-libintl glib gtest libsecret maddy 
- First, clone/download the repo.
 - Open a terminal and navigate to the repo's root directory.
 - Create a new 
builddirectory andcdinto it. 
- From the 
buildfolder, runcmake .. -G "Visual Studio 17 2022".- To skip building libnick's test suite, add 
-DBUILD_TESTING="OFF"to the end of the command. - If you plan to install libnick, add 
-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIRto the end of the command, replacingPATH_TO_INSTALL_DIRwith the path of where you'd like libnick to install to. 
 - To skip building libnick's test suite, add 
 - From the 
buildfolder, runcmake --build . --config Release. - After these commands complete, libnick will be successfully built and its binaries can be found in the 
Releasefolder of thebuildfolder. 
- From the 
buildfolder, runcmake .. -DCMAKE_BUILD_TYPE=Release.- To skip building libnick's test suite, add 
-DBUILD_TESTING="OFF"to the end of the command. - If you plan to install libnick, add 
-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIRto the end of the command, replacingPATH_TO_INSTALL_DIRwith the path of where you'd like libnick to install to. 
 - To skip building libnick's test suite, add 
 - From the 
buildfolder, runcmake --build .. - After these commands complete, libnick will be successfully built and its binaries can be found in the 
buildfolder. 
- From the 
buildfolder, runcmake .. -DCMAKE_BUILD_TYPE=Release.- To skip building libnick's test suite, add 
-DBUILD_TESTING="OFF"to the end of the command. - To use 
libsecretinstead of macOS's built in security library, add-DUSE_LIBSECRET="ON"to the end of the command. - If you plan to install libnick, add 
-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIRto the end of the command, replacingPATH_TO_INSTALL_DIRwith the path of where you'd like libnick to install to. 
 - To skip building libnick's test suite, add 
 - From the 
buildfolder, runcmake --build .. - After these commands complete, libnick will be successfully built and its binaries can be found in the 
buildfolder. 
- To install libnick to the system, from the 
buildfolder, runcmake --install ..- This command will export and install libnick cmake targets allowing you to simply use libnick in other cmake projects with the following:
find_package(libnick CONFIG REQUIRED) target_link_libraries(main PRIVATE libnick::libnick) 
 - This command will export and install libnick cmake targets allowing you to simply use libnick in other cmake projects with the following: