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

This commit is contained in:
2021-03-05 17:30:46 +03:00
11 changed files with 94 additions and 41 deletions

2
.gitmodules vendored
View File

@@ -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

View File

@@ -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
View File

@@ -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") {

View File

@@ -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

Submodule cd updated: b43350cb71...d6734e1954

2
cmake

Submodule cmake updated: 2f84d98a32...8966f58f60

View 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
View File

2
qad

Submodule qad updated: 3d5a86e215...6b4a903764

18
requirements.txt Normal file
View 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