Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Docs Folder #8

Merged
merged 31 commits into from
Dec 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
382ecfb
Docs - Start Module Documentation
nlogozzo Dec 29, 2023
4ffcc6b
Update README.md
nlogozzo Dec 29, 2023
70cf273
Docs - Nickvision::Aura::Helpers
nlogozzo Dec 29, 2023
8508628
Update helpers.md
nlogozzo Dec 29, 2023
78bc156
Docs - Improvements + Nickvision::Aura::AppInfo
nlogozzo Dec 29, 2023
d546ce4
Docs - Add Nickvision::Aura::Aura
nlogozzo Dec 29, 2023
02e779a
Docs - Add ConfigurationBase, DependencyLocator, EnumFlags
nlogozzo Dec 29, 2023
e7af174
Docs - Add Nickvision::Aura::InterProcessCommunicator
nlogozzo Dec 29, 2023
2e1b5dd
Docs - Finish Nickvision::Aura Module
nlogozzo Dec 29, 2023
4355c44
Docs - Finish Nickvision::Aura::Events Module
nlogozzo Dec 29, 2023
f24205b
Docs - Start Nickvision::Aura::Filesystem
nlogozzo Dec 29, 2023
15ae0a5
EnumFlags - StaticAssert Is Enum
nlogozzo Dec 29, 2023
c2b10e6
Keyring - Throw In Store Constructor If Error
nlogozzo Dec 29, 2023
341cded
FileSystemWatcher - Watch Subdirectories on Linux
nlogozzo Dec 29, 2023
66a0a92
Docs - Finish Nickvision::Aura::Filesystem Module
nlogozzo Dec 29, 2023
6531870
FileSystemWatcher- Better Extension Filters
nlogozzo Dec 29, 2023
fd807fb
All - Add `noexcept` Where Possible
nlogozzo Dec 30, 2023
5a96687
Version - Fix `noexcept`
nlogozzo Dec 30, 2023
29c01eb
Docs - Finish Nickvision::Aura::Keyring Module + Tweaks
nlogozzo Dec 30, 2023
b6049f8
Docs - Finish Nickvision::Aura::Localization Module
nlogozzo Dec 30, 2023
98db443
Docs - Add Nickvision::Aura::Network Module
nlogozzo Dec 30, 2023
300a8db
Network - Better NetworkMonitor
nlogozzo Dec 30, 2023
aeb0cf1
Update network.md
nlogozzo Dec 30, 2023
edd5b57
Network - Better NetworkMonitor
nlogozzo Dec 30, 2023
6ec86d8
NetworkMonitor - Watch For Changes on Windows
nlogozzo Dec 30, 2023
855f510
Taskbar - Make Thread-Safe
nlogozzo Dec 30, 2023
c6faf7a
Docs - Add Nickvision::Aura::Notification Module
nlogozzo Dec 31, 2023
275e911
Docs - Add Nickvision::Aura::Update Module
nlogozzo Dec 31, 2023
b384f9d
Docs - Add Nickvision::Aura::Taskbar Module
nlogozzo Dec 31, 2023
ef42003
Check Spell
nlogozzo Dec 31, 2023
9911c22
README - Add Building Instructions
nlogozzo Dec 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 46 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# libaura

UNDER CONSTRUCTION
A cross-platform base for native Nickvision applications.

A cross-platform base for native Nickvision applications
libaura provides Nickvision apps with a common set of cross-platform (Windows and Linux) APIs for managing system and desktop app functionality such as network management, taskbar icons, translations, app updates, and more.

## Documentation

Documentation for this library and its modules can be found [here](/docs).

## Installation

TODO when published on Conan.

## Manual Building and Installation
libaura uses Conan package manager for resolving dependencies and CMake as it's build system.

Ensure both `conan` and `cmake` are installed on your system before building libaura.

A C++20 compiler is also required to build libaura.

### Windows
Visual Studio 2022 with C++ Desktop workload is required to be installed.

1. First, clone/download the repo.
1. From the `conan` folder within the repo, copy `conanfile-windows.txt` and `conanprofile-windows.txt` to the root directory of the repo.
1. Open a terminal and navigate to the repo's root directory.
1. Run `conan install conanfile-windows.txt --profile:host=conanprofile-windows.txt --profile:build=conanprofile-windows.txt -s compiler.cppstd=20 --build=missing`.
1. Once that command finishes, cd into the `build` folder.
1. From the `build` folder, run `cmake .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake"` and `cmake --build . --config Release`.
1. After these commands, libaura will be successfully built and its binaries can be found in the `Release` folder of the `build` folder.
1. To install libaura to the system, run `cmake --install . --prefix "PATH_TO_INSTALL_DIR"`.
- Replace `PATH_TO_INSTALL_DIR` with the path to a folder to install libaura to. This is usually a dependencies folder set up by the programmer, added to the PATH variable, to allow linking to said dependencies.
1. If contributing to upstream, remove `conanfile-windows.txt` and `conanprofile-windows.txt` from the repo's root directory as to not accidentally add and commit them.

### Linux
1. First, clone/download the repo.
1. From the `conan` folder within the repo, copy `conansettings.yml`, `conanfile-linux.txt`, and `conanprofile-linux.txt` to the root directory of the repo.
1. Rename `conansettings.yml` to `settings_user.yml`.
1. Open a terminal and navigate to the repo's root directory.
1. Run `conan config install settings_user.yml`.
1. Run `conan install conanfile-linux.txt --profile:host=conanprofile-linux.txt --profile:build=conanprofile-linux.txt -s compiler.cppstd=20 --build=missing`.
1. Once that command finished, cd into the `build` folder.
1. From the `build` folder, run `cmake .. -DCMAKE_TOOLCHAIN_FILE="Release/generators/conan_toolchain.cmake" -DCMAKE_BUILD_TYPE=Release` and `cmake --build`.
1. After these commands, libaura will be successfully built and its binaries can be found in the `Release` folder of the `build` folder.
1. To install libaura to the system, run `cmake --install . --prefix "PATH_TO_INSTALL_DIR"`.
- Replace `PATH_TO_INSTALL_DIR` with the path to a folder to install libaura to. This is usually a dependencies folder set up by the programmer, added to the PATH variable, to allow linking to said dependencies.
- On linux, `PATH_TO_INSTALL_DIR` would usually be `/usr`.
1. If contributing to upstream, remove `conanfile-windows.txt` and `conanprofile-windows.txt` from the repo's root directory as to not accidentally add and commit them.
39 changes: 39 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# libaura Documentation

This folder contains all of the necessary documentation for using libaura and it's provided modules.

Each module (separated by namespace) contains its own documentation file that can be found within this folder or via one of the links below.

## Table of Contents
- [Documentation Syntax](#documentationsyntax)
- [Modules](#modules)

## Documentation Syntax

### Member Variables
Many class types contain member variables exposed by getter and/or setter methods depending on the class' exposure of the variable.

For example, assume a class exposes the member variable `std::string m_var`. We will document this as `std::string Var: get, set`.

This means that the class provides the following methods for `m_var`: `std::string getVar() const` and `void setVar(const std::string& var)`.

If a member variable is get or set only, we will document this as `std::string Var: get` and `std::string Var: set` respectively.

### Events
libaura provides a C#-inspired event system module under the Nickvision::Aura::Events namespace. This module contains a class `Event<T>` that handles registering and calling callbacks when said event is invoked.

For example, assume a class has an event defined as `Nickvision::Aura::Events::Event<Nickvision::Aura::Events::EventArgs> m_saved`. We will document exposure of this event as `Event<Nickvision::Aura::Events::EventArgs> Saved`.

This means that the class provides the following method, allowing consumers to register callbacks to the event using the `+=` operator: `Nickvision::Aura::Events::Event<Nickvision::Aura::Events::EventArgs>& saved()`.

## Modules
- [Nickvision::Aura](aura.md)
- [Nickvision::Aura::Events](events.md)
- [Nickvision::Aura::Filesystem](filesystem.md)
- [Nickvision::Aura::Helpers](helpers.md)
- [Nickvision::Aura::Keyring](keyring.md)
- [Nickvision::Aura::Localization](localization.md)
- [Nickvision::Aura::Network](network.md)
- [Nickvision::Aura::Notifications](notifications.md)
- [Nickvision::Aura::Taskbar](taskbar.md)
- [Nickvision::Aura::Update](update.md)
Loading