{"id":19738240,"url":"https://github.com/nickvisionapps/libnick","last_synced_at":"2025-09-01T08:33:17.478Z","repository":{"id":212225637,"uuid":"725803790","full_name":"NickvisionApps/libnick","owner":"NickvisionApps","description":"A cross-platform base for native Nickvision applications","archived":false,"fork":false,"pushed_at":"2024-04-12T21:51:33.000Z","size":2894,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-13T05:42:39.551Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NickvisionApps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"nlogozzo","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-11-30T22:53:10.000Z","updated_at":"2024-07-04T04:00:19.617Z","dependencies_parsed_at":"2024-02-05T00:28:32.711Z","dependency_job_id":"ce4fcac6-e241-4fcf-829f-b656e92b7332","html_url":"https://github.com/NickvisionApps/libnick","commit_stats":null,"previous_names":["nickvisionapps/libaura","nickvisionapps/libnick"],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickvisionApps%2Flibnick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickvisionApps%2Flibnick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickvisionApps%2Flibnick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickvisionApps%2Flibnick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NickvisionApps","download_url":"https://codeload.github.com/NickvisionApps/libnick/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241067827,"owners_count":19903899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T01:13:41.364Z","updated_at":"2025-09-01T08:33:17.465Z","avatar_url":"https://github.com/NickvisionApps.png","language":"C++","funding_links":["https://github.com/sponsors/nlogozzo"],"categories":[],"sub_categories":[],"readme":"# libnick\n\n\u003cimg width='96' height='96' alt='Logo' src='resources/libnick-r.svg'/\u003e\n\n**A cross-platform base for native Nickvision applications.**\n\nlibnick 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.\n\n## Documentation\n\nDocumentation for this library and its modules can be found [here](https://nickvision.org/docs/libnick/index.html).\n\n## Dependencies\nThe following are a list of dependencies used by libnick. \n\nThe 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.\n\n### All Platforms\n- boost-json\n- cpr\n- gtest\n- libintl\n- maddy\n- sqlcipher (Must be provided by the system on Linux and macOS as sqlcipher is not available via vcpkg for these systems)\n\n### Linux and macOS\nThe above dependencies must be installed, *plus* the following for Linux and macOS systems:\n- glib\n- libsecret\n  - For macOS: Only required if `-DUSE_LIBSECRET=\"ON\"`\n\n## Consuming libnick via vcpkg\nlibnick is available through `vcpkg`. \n\nSimply install and configure vcpkg for your system, and run:\n```\nvcpkg install libnick\n```\nYou can then use libnick from cmake with the following:\n```\nfind_package(libnick CONFIG REQUIRED)\ntarget_link_libraries(main PRIVATE libnick::libnick)\n```\n\n## Building and Installing Manually\nlibnick uses `cmake` as its build system and `vcpkg` to *optionally* manage its dependencies.\n\nEnsure `cmake` and `vcpkg` are installed on your system before building and installing libnick.\n\nA C++20 compiler is also required to build libnick.\n\n### Configuring vcpkg\n1. Set the `VCPKG_ROOT` environment variable to the path of your vcpkg installation's root directory.\n#### Windows\n1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `x64-windows`\n1. Run `vcpkg install boost-json cpr gettext-libintl gtest maddy sqlcipher`\n#### Linux\n1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `x64-linux`\n1. Run `vcpkg install boost-json cpr gettext-libintl glib gtest libsecret maddy`\n#### macOS (Apple Silicon)\n1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `arm64-osx`\n1. Run `vcpkg install boost-json cpr gettext-libintl glib gtest libsecret maddy`\n\n### Building\n1. First, clone/download the repo.\n1. Open a terminal and navigate to the repo's root directory.\n1. Create a new `build` directory and `cd` into it. \n#### Windows\n1. From the `build` folder, run `cmake .. -G \"Visual Studio 17 2022\"`.\n    - To skip building libnick's test suite, add `-DBUILD_TESTING=\"OFF\"` to the end of the command.\n    - If you plan to install libnick, add `-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIR` to the end of the command, replacing `PATH_TO_INSTALL_DIR` with the path of where you'd like libnick to install to.\n1. From the `build` folder, run `cmake --build . --config Release`.\n1. After these commands complete, libnick will be successfully built and its binaries can be found in the `Release` folder of the `build` folder.\n#### Linux\n1. From the `build` folder, run `cmake .. -DCMAKE_BUILD_TYPE=Release`.\n    - To skip building libnick's test suite, add `-DBUILD_TESTING=\"OFF\"` to the end of the command.\n    - If you plan to install libnick, add `-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIR` to the end of the command, replacing `PATH_TO_INSTALL_DIR` with the path of where you'd like libnick to install to.\n1. From the `build` folder, run `cmake --build .`.\n1. After these commands complete, libnick will be successfully built and its binaries can be found in the `build` folder.\n#### macOS\n1. From the `build` folder, run `cmake .. -DCMAKE_BUILD_TYPE=Release`.\n    - To skip building libnick's test suite, add `-DBUILD_TESTING=\"OFF\"` to the end of the command.\n    - To use `libsecret` instead of macOS's built in security library, add `-DUSE_LIBSECRET=\"ON\"` to the end of the command.\n    - If you plan to install libnick, add `-DCMAKE_INSTALL_PREFIX=PATH_TO_INSTALL_DIR` to the end of the command, replacing `PATH_TO_INSTALL_DIR` with the path of where you'd like libnick to install to.\n1. From the `build` folder, run `cmake --build .`.\n1. After these commands complete, libnick will be successfully built and its binaries can be found in the `build` folder.\n\n### Installing\n1. To install libnick to the system, from the `build` folder, run `cmake --install .`.\n    - This command will export and install libnick cmake targets allowing you to simply use libnick in other cmake projects with the following:\n        ```\n        find_package(libnick CONFIG REQUIRED)\n        target_link_libraries(main PRIVATE libnick::libnick)\n        ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickvisionapps%2Flibnick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickvisionapps%2Flibnick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickvisionapps%2Flibnick/lists"}