Merge branch 'release' of https://git.shs.tools/SHS/shstk into release
All checks were successful
SHS Gitea/shstk/pipeline/head This commit looks good
All checks were successful
SHS Gitea/shstk/pipeline/head This commit looks good
This commit is contained in:
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -13,7 +13,7 @@
|
|||||||
[submodule "pip"]
|
[submodule "pip"]
|
||||||
path = pip
|
path = pip
|
||||||
url = https://git.shs.tools/SHS/pip.git
|
url = https://git.shs.tools/SHS/pip.git
|
||||||
branch = shstk
|
branch = master
|
||||||
[submodule "cd"]
|
[submodule "cd"]
|
||||||
path = cd
|
path = cd
|
||||||
url = https://git.shs.tools/SHS/cd.git
|
url = https://git.shs.tools/SHS/cd.git
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.15)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
cmake_policy(SET CMP0011 NEW) # don`t affect includer policies
|
cmake_policy(SET CMP0011 NEW) # don`t affect includer policies
|
||||||
cmake_policy(SET CMP0017 NEW) # need include() with .cmake
|
cmake_policy(SET CMP0017 NEW) # need include() with .cmake
|
||||||
cmake_policy(SET CMP0020 NEW) # Automatically link Qt executables to qtmain target on Windows
|
cmake_policy(SET CMP0020 NEW) # Automatically link Qt executables to qtmain target on Windows
|
||||||
|
|||||||
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@@ -28,7 +28,7 @@ node {
|
|||||||
_envmap["${_n}"] = "${_v}";
|
_envmap["${_n}"] = "${_v}";
|
||||||
}
|
}
|
||||||
def _msg = "Built images:"
|
def _msg = "Built images:"
|
||||||
def platforms = ['debian', 'osx', 'windows', 'android', 'pi']
|
def platforms = ['debian', 'osx', 'windows', 'android', 'pi', 'ubuntu']
|
||||||
for (int i = 0; i < platforms.size(); ++i) {
|
for (int i = 0; i < platforms.size(); ++i) {
|
||||||
if (_envmap["BUILD_${platforms[i]}"] == "1") {
|
if (_envmap["BUILD_${platforms[i]}"] == "1") {
|
||||||
stage("${platforms[i]}-shstk") {
|
stage("${platforms[i]}-shstk") {
|
||||||
|
|||||||
86
README.md
86
README.md
@@ -2,9 +2,25 @@
|
|||||||
|
|
||||||
## Introduction
|
## 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 - main library
|
||||||
* PIP::USB - PIUSB (libusb)
|
* PIP::USB - PIUSB (libusb)
|
||||||
* PIP::Console - PIScreen
|
* PIP::Console - PIScreen
|
||||||
@@ -13,34 +29,36 @@ This repo contains:
|
|||||||
* PIP::FFTW - FFT with libfftw3
|
* PIP::FFTW - FFT with libfftw3
|
||||||
* PIP::OpenCL - PIP OpenCL bindings
|
* PIP::OpenCL - PIP OpenCL bindings
|
||||||
* PIP::IOUtils
|
* PIP::IOUtils
|
||||||
* PIP::Cloud
|
* PIP::Cloud - PIP cloud IODevices
|
||||||
* PIP::Lua - PIP Lua bindings
|
* PIP::Lua - PIP Lua bindings
|
||||||
* QAD - Qt for Advanced Developers:
|
* QAD:
|
||||||
* QAD::Utils
|
* QAD::Utils
|
||||||
* QAD::Widgets
|
* QAD::Widgets - collection of extendent widgets
|
||||||
* QAD::Application
|
* QAD::Application
|
||||||
* QAD::Blockview
|
* QAD::Blockview
|
||||||
* QAD::Graphic
|
* QAD::Graphic - widget for realtime visualization and publication quality 1D/2D plots
|
||||||
* QAD::SQLTable
|
* QAD::SQLTable - widget for display and edit data based on SQL tables with relations
|
||||||
* QAD::TouchWidgets
|
* QAD::TouchWidgets - collection of widgets for touch screen interface
|
||||||
* QAD::Doc
|
* QAD::Doc - markdown helper for qt
|
||||||
* QAD::PIQt - helpers to convert PIP <-> Qt types
|
* QAD::PIQt - helpers to convert PIP <-> Qt types
|
||||||
* QAD::PIQtUtils - Gui libraries and executables to edit PIConnection configs and watch PIIntrospection
|
* 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::Core - 3d engine
|
||||||
* QGLEngine::Widgets - qt widgets for manage 3d obects and materials
|
* 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::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
|
* 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:
|
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
|
* **UTILS** - build or not executable utilites, enabled by default
|
||||||
* **DESIGNER_PLUGINS** - build or not Qt Designer plugins, enabled by default
|
* **DESIGNER_PLUGINS** - build or not Qt Designer plugins, enabled by default
|
||||||
* **QGLVIEW** - build or not QGLView, disabled by default
|
* **QGLVIEW** - build or not QGLView, disabled by default
|
||||||
@@ -48,29 +66,29 @@ CMake options:
|
|||||||
|
|
||||||
## Windows scripts
|
## Windows scripts
|
||||||
Build steps:
|
Build steps:
|
||||||
1. unzip mingw.7z to C:\mingw
|
1. Unzip mingw.7z to C:\mingw
|
||||||
2. unzip qt.7z to C:\qt
|
2. Unzip qt.7z to C:\qt
|
||||||
3. download and install cmake from https://cmake.org/download/
|
3. Download and install cmake from https://cmake.org/download/
|
||||||
4. Prepare environment for x86 or amd64 architecture:
|
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 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 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
|
- 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 previous steps, but on '5' state run `make_shstk_all.bat`
|
||||||
Build steps for both architectures:
|
|
||||||
-- follow previos steps, but on '4' state run make_libs_all.bat
|
|
||||||
|
|
||||||
## Non-Windows scripts
|
## Non-Windows scripts
|
||||||
Script "make_shstk.sh" compile and install SDK for current environment, e.g.
|
Script "make_shstk.sh" compile and install toolkit for current environment, e.g. `./make_shstk.sh -j4`
|
||||||
`./make_shstk.sh -j4`
|
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
This repo provide Dockerfile, so you can exec `docker build -t libs .` in this directory
|
This repo provide several Dockerfiles, so you can exec `docker build -t windows-shstk docker\windows-shstk`
|
||||||
and make docker image "libs" with installed SHS SDK for:
|
and make docker image "windows-shstk" with installed SHS Toolkit for Windows. Similar for other platforms.
|
||||||
* Debian 10
|
Dockerfile provides for next platforms:
|
||||||
* Windows x64
|
* Debian 10 (debian-shstk)
|
||||||
* MacOS
|
* Ubuntu 20.04 (ubuntu-shstk)
|
||||||
* Android ndk 21 armeabi-v71, arm64-v8a, x86, x86_64
|
* Windows x64 (windows-shstk)
|
||||||
|
* MacOS (osx-shstk)
|
||||||
|
* Raspberry Pi Raspbian (pi-shstk)
|
||||||
|
* Android ndk 21 armeabi-v71, arm64-v8a, x86, x86_64 (android-shstk)
|
||||||
|
|||||||
2
cd
2
cd
Submodule cd updated: b43350cb71...d6734e1954
2
cmake
2
cmake
Submodule cmake updated: 2f84d98a32...8966f58f60
17
docker/ubuntu-shstk/Dockerfile
Normal file
17
docker/ubuntu-shstk/Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
ARG DOCKER_PREFIX=wapmobil/
|
||||||
|
FROM ${DOCKER_PREFIX}ubuntu
|
||||||
|
|
||||||
|
ARG LIBS_BUILD_NUMBER=9999
|
||||||
|
ARG JOBS_COUNT=4
|
||||||
|
ENV PATH=/opt/cmake/bin:$PATH
|
||||||
|
|
||||||
|
WORKDIR /soft
|
||||||
|
RUN git clone -b master --single-branch --depth 1 --recursive https://git.shs.tools/SHS/shstk.git
|
||||||
|
|
||||||
|
WORKDIR /soft/shstk_build_ubuntu
|
||||||
|
RUN cmake -DICU=0 -DLOCAL=0 -DQGLENGINE=1 -DQGLVIEW=1 -DBUILD_NUMBER=${LIBS_BUILD_NUMBER} ../shstk \
|
||||||
|
&& make install -j${JOBS_COUNT} \
|
||||||
|
&& rm -rf * \
|
||||||
|
&& ldconfig
|
||||||
|
|
||||||
|
WORKDIR /soft/src
|
||||||
0
make_shstk.sh
Normal file → Executable file
0
make_shstk.sh
Normal file → Executable file
2
qad
2
qad
Submodule qad updated: 3d5a86e215...6b4a903764
Submodule qglengine updated: 17e38bc821...973ee2aa04
18
requirements.txt
Normal file
18
requirements.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
libicu-dev
|
||||||
|
libfftw3-dev
|
||||||
|
libsodium-dev
|
||||||
|
libassimp-dev
|
||||||
|
libmarkdown2-dev
|
||||||
|
ocl-icd-opencl-dev
|
||||||
|
zlib1g-dev
|
||||||
|
qtbase5-dev-tools
|
||||||
|
qttools5-dev
|
||||||
|
qtscript5-dev
|
||||||
|
qtdeclarative5-dev
|
||||||
|
qtpositioning5-dev
|
||||||
|
libqt5datavisualization5-dev
|
||||||
|
qt5-default
|
||||||
|
libglew-dev
|
||||||
|
liblua5.3-dev
|
||||||
|
|
||||||
|
apt install libicu-dev libfftw3-dev libsodium-dev libassimp-dev libmarkdown2-dev ocl-icd-opencl-dev zlib1g-dev qtbase5-dev-tools qttools5-dev qtscript5-dev qtdeclarative5-dev qtpositioning5-dev libqt5datavisualization5-dev qt5-default libglew-dev liblua5.3-dev
|
||||||
Reference in New Issue
Block a user