101 lines
4.3 KiB
Markdown
101 lines
4.3 KiB
Markdown
# Main SHS Toolkit repo
|
|
|
|
## Introduction
|
|
|
|
SHS Toolkit is metaproject, that contains references to CMake, PIP, QAD, CD and QGLEngine.
|
|
* CMake - many CMake helpers and wrappers
|
|
* PIP - Platform-Independent Primitives, C++ libraries to solve many common tasks
|
|
* QAD - Qt for Advanced Developers, many Qt-based widgets and helpers. Also provide Qt-Designer
|
|
plugins.
|
|
* CD - Control/Debug toolkit, PIP-based client-server library to simplify using coefficients
|
|
and track some variables tasks. Also provide QAD-based pult.
|
|
* QGLEngine - modern Qt/OpenGL-based 3D engine with PBR materials. Also provide GUI widgets
|
|
to edit scene and "libassimp"-based files importer.
|
|
|
|
Each project provide Find*.cmake file with correct dependecies. So, if you call `find_package(CD)`
|
|
then PIP and QAD will be found.
|
|
|
|
Each of there projects can be built separately, but this project help you to build all at once.
|
|
|
|
|
|
After successfully install, you can use next CMake imported targets:
|
|
|
|
* PIP:
|
|
* PIP - main library
|
|
* PIP::USB - PIUSB (libusb)
|
|
* PIP::Console - PIScreen
|
|
* PIP::Crypt - Cryptography (libsodium)
|
|
* PIP::Compress - Compression (zlib)
|
|
* PIP::FFTW - FFT with libfftw3
|
|
* PIP::OpenCL - PIP OpenCL bindings
|
|
* PIP::IOUtils
|
|
* PIP::Cloud - PIP cloud IODevices
|
|
* PIP::ClientServer - TCP Client-Server
|
|
* PIP::Lua - PIP Lua bindings
|
|
* QAD:
|
|
* QAD::Utils
|
|
* QAD::Widgets - collection of extendent widgets
|
|
* QAD::Application
|
|
* QAD::Blockview
|
|
* QAD::Graphic - widget for realtime visualization and publication quality 1D/2D plots
|
|
* QAD::SQL - wrapper around QtSqlQuery for code amount reduce
|
|
* QAD::SQLTable - widget for display and edit data based on SQL tables with relations
|
|
* QAD::TouchWidgets - collection of widgets for touch screen interface
|
|
* QAD::Doc - markdown helper for qt
|
|
* QAD::Map - OpenStreetMap map viewer and set of items
|
|
* QAD::PIQt - helpers to convert PIP <-> Qt types
|
|
* QAD::PIQtUtils - Gui libraries and executables to edit PIConnection configs and watch PIIntrospection
|
|
*
|
|
* QGLEngine:
|
|
* QGLEngine::Core - 3d engine
|
|
* QGLEngine::Widgets - qt widgets for manage 3d obects and materials
|
|
* CD:
|
|
* CD::Core - PIP-based client/server library for read, transmit and use custom structures of coefficients
|
|
* CD::Qt - Qt bindings to CDUtils and "CD Pult" executable - full-featured CD client
|
|
|
|
qglview - old Qt-base OpenGL engine, has no imported target, so you should link with "qglview4" or "qglview5"
|
|
|
|
## Compile
|
|
This repo can be compiled with GCC/MinGW/Clang, for Qt 4/5.
|
|
|
|
If there is no Qt found, builds only PIP and CD.
|
|
|
|
CMake options:
|
|
* **LOCAL** - if 0 then install to system directories: MinGW on Windows, /usr/local on Linux/MacOS, ANDROID_SYSTEM_LIBRARY_PATH on Android. If 1 then install to CMAKE_INSTALL_PREFIX. Disabled by default
|
|
* **UTILS** - build or not executable utilites, enabled by default
|
|
* **DESIGNER_PLUGINS** - build or not Qt Designer plugins, enabled by default
|
|
* **QGLVIEW** - build or not QGLView, disabled by default
|
|
* **QGLENGINE** - build or not QGLEngine, disabled by default
|
|
|
|
## Windows scripts
|
|
Build steps:
|
|
1. Unzip mingw.7z to C:\mingw
|
|
2. Unzip qt.7z to C:\qt
|
|
3. Download and install cmake from https://cmake.org/download/
|
|
4. Prepare environment for x86 or amd64 architecture:
|
|
- set prefix for mingw e.g.: for C:\mingw\8_1_x32\ or C:\mingw\8_1_x64\
|
|
set `SDK_MINGW_DIR=C:\mingw\8_1_x`
|
|
- set prefix for Qt5 e.g.: for C:\qt\qt5150_win32\ or C:\qt\qt5150_win64\
|
|
set `SDK_QT5_DIR=C:\qt\qt5150_win`
|
|
- set path to cmake directory
|
|
set `SDK_CMAKE_DIR=C:\cmake` or `C:\Program Files\CMake`
|
|
5. Run `make_shstk32.bat` or `make_shstk64.bat`
|
|
|
|
Build steps for both architectures: follow previous steps, but on '5' state run `make_shstk_all.bat`
|
|
|
|
## Non-Windows scripts
|
|
Script "make_shstk.sh" compile and install toolkit for current environment, e.g. `./make_shstk.sh -j4`
|
|
|
|
## Docker
|
|
This repo provide several Dockerfiles, so you can exec `docker build -t windows-shstk docker\windows-shstk`
|
|
and make docker image "windows-shstk" with installed SHS Toolkit for Windows. Similar for other platforms.
|
|
Dockerfile provides for next platforms:
|
|
* Debian 10 (debian-shstk)
|
|
* Debian 11 (debian11-shstk)
|
|
* Ubuntu 20.04 (ubuntu-shstk)
|
|
* Windows x32 (windows32-shstk)
|
|
* Windows x64 (windows-shstk)
|
|
* MacOS (osx-shstk)
|
|
* Raspberry Pi Raspbian (pi-shstk)
|
|
* Android ndk 21 armeabi-v71, arm64-v8a, x86, x86_64 (android-shstk)
|