diff --git a/README.md b/README.md index b2aac0e..13983e8 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,25 @@ ## Introduction -This repo contains: +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. -* PIP +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 @@ -15,7 +31,7 @@ This repo contains: * PIP::IOUtils * PIP::Cloud - PIP cloud IODevices * PIP::Lua - PIP Lua bindings -* QAD - Qt for Advanced Developers: +* QAD: * QAD::Utils * QAD::Widgets - collection of extendent widgets * QAD::Application @@ -26,21 +42,23 @@ This repo contains: * QAD::Doc - markdown helper for qt * QAD::PIQt - helpers to convert PIP <-> Qt types * QAD::PIQtUtils - Gui libraries and executables to edit PIConnection configs and watch PIIntrospection - * qglview - old Qt-base OpenGL engine -* qglengine - new Qt-base OpenGL engine + * +* QGLEngine: * QGLEngine::Core - 3d engine * QGLEngine::Widgets - qt widgets for manage 3d obects and materials -* CD +* 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 - -## Compile -This repo can be compile with GCC/MinGW/Clang, for Qt 4/5. -If there is no Qt found, builds only PIP and cd_utils. +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: -* **LIB** - if 1 then install to system directories: MinGW on Windows, /usr/local on Linux/MacOS, ${ANDROID_SYSTEM_LIBRARY_PATH} on Android. If 0 then install to ${CMAKE_INSTALL_PREFIX}. Enabled by default +* **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 @@ -48,31 +66,29 @@ CMake options: ## 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/ +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\7_1_x + 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 SDK_QT5_DIR=C:\qt\qt5150_win - set SDK_CMAKE_DIR=C:\cmake or C:\Program Files\CMake -5. run make_shstk32.bat or make_shstk64.bat +5. Run `make_shstk32.bat` or `make_shstk64.bat` - -Build steps for both architectures: - -- follow previos steps, but on '5' state run make_libs_all.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 SDK for current environment, e.g. -`./make_shstk.sh -j4` +Script "make_shstk.sh" compile and install toolkit for current environment, e.g. `./make_shstk.sh -j4` ## Docker -This repo provide Dockerfile, e.q. so you can exec `docker build -t windows-shstk docker\windows-shstk` -and make docker image "windows-shstk" with installed SHS SDK for Windows. Similar for other platforms. -Dockerfile provide for platforms: +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) +* Ubuntu 20.04 (ubuntu-shstk) * Windows x64 (windows-shstk) * MacOS (osx-shstk) -* Raspberry Pi raspbean (pi-shstk) +* Raspberry Pi Raspbian (pi-shstk) * Android ndk 21 armeabi-v71, arm64-v8a, x86, x86_64 (android-shstk) diff --git a/cd b/cd index d50223f..949edb1 160000 --- a/cd +++ b/cd @@ -1 +1 @@ -Subproject commit d50223f1cf03197c127243a34d5b3cd4dea8fa5c +Subproject commit 949edb1f68b6b0ab36e7354f9240c7ca285cfb4f diff --git a/pip b/pip index ff3dfab..51775a5 160000 --- a/pip +++ b/pip @@ -1 +1 @@ -Subproject commit ff3dfab2707b20ff74d6bcdfe269a8466a884e36 +Subproject commit 51775a5ee6e06e9aa8c25c7477ea7d938250cc62 diff --git a/qad b/qad index 3245d71..59711af 160000 --- a/qad +++ b/qad @@ -1 +1 @@ -Subproject commit 3245d71bc8506c039bf39aec6333a04f2b69b964 +Subproject commit 59711afa14ea5856dc2312d5dd58481f28680ab5