There is only one module for now:
- To-Do Lists
- Calendar
- Terminal
- and more soon
For Linux and MacOs, you need to install some dependencies :
- On Ubuntu 22.04 or later
$ sudo apt-get install qt6-base-dev libpthread-stubs0-dev
- On MacOS (with Homebrew):
$ brew install qt6 libpthread-stubs
Galaxy is available for Windows (x64), Linux (x64) and MacOs (x64) for now.
You can compile Galaxy if it is not available for your operating system or your arch : Build and Run.
- Qt6 (Widgets)
- Pthread
On Ubuntu 22.04 or later
$ sudo apt-get install qt6-base-dev libpthread-stubs0-dev
On Windows (with vcpkg):
> vcpkg install qt6 pthreads
On MacOS (with Homebrew):
$ brew install qt6 libpthread-stubs
You will also need CMake in your system PATH (Minimum version: 3.1.0)
In 'Galaxy' (top) folder:
On Windows:
build_modules.bat
cd build\
cmake .. -DCMAKE_TOOLCHAIN_FILE=(path/to/)vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build . -j 8 --config Release
Otherwise:
./build_modules.sh
cd build/
cmake ..
cmake --build . -j 8
The executable is in the 'Galaxy/build' folder ;)
The modules (*.glx) and their config files (*.yml) are in the 'Galaxy/build/modules' folder.
Your module repository has to contain at the root :
- A 'build' folder (where the lib will be located) with a .gitkeep if it is empty
- A 'CMakeLists.txt' that compiles to a shared library by default or that can accept the 'OUTPUT_TYPE' argument and compiles to a shared library when set to 'dl'.
- The compiled library has to be named the same way as your module directory and has to end with '.glx', like this : '<module directory name>.glx'. For example : 'todolist.glx' for the module directory 'todolist'.
- The library has to contain an exported function named 'load' that returns the module widget and that has this definition :
QWidget *load(QWidget *);
.
For example, in the To-Do Lists module :
extern "C" Q_DECL_EXPORT QWidget *load(QWidget *parent) { return new ToDoList(parent); }
- A 'config.yml' file
- You can copy the CMakeLists and the config.yml of a module in this repository if you want.
That's it !
You can reach me by e-mail at this address: enyotoyrep@gmail.com or on Discord: 'yoen.'
If you want to contribute to this project, you must respect the coding conventions from Qt (https://wiki.qt.io/Coding_Conventions).
Copyright (c) 2023 EnyoYoen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.