2022-04-17 05:31:00 +08:00
|
|
|
version: 0.{build}-{branch}
|
2022-04-17 05:23:18 +08:00
|
|
|
|
|
|
|
# don't build tags
|
|
|
|
skip_tags: true
|
|
|
|
|
2022-04-18 20:01:17 +08:00
|
|
|
# exclude gh-pages branch
|
|
|
|
branches:
|
|
|
|
except:
|
|
|
|
- gh-pages
|
|
|
|
|
|
|
|
shallow_clone: true
|
2022-04-17 05:23:18 +08:00
|
|
|
|
2022-07-20 01:09:16 +08:00
|
|
|
# auto-build VSProject: OFF
|
|
|
|
build: false
|
2022-04-17 05:23:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
#configurations to build
|
|
|
|
configuration:
|
2022-04-17 05:51:05 +08:00
|
|
|
- Release
|
2022-04-17 05:23:18 +08:00
|
|
|
# - debug
|
2018-12-20 01:58:18 +08:00
|
|
|
|
|
|
|
|
2022-04-17 05:23:18 +08:00
|
|
|
# define build matrix
|
2018-12-20 01:58:18 +08:00
|
|
|
environment:
|
|
|
|
global:
|
|
|
|
JOMDIR: C:\Qt\Tools\QtCreator\bin
|
2019-06-21 21:46:53 +08:00
|
|
|
VSVER: 0
|
2022-04-17 19:49:29 +08:00
|
|
|
CMAKE_BUILDFLAGS:
|
2022-04-17 05:23:18 +08:00
|
|
|
USE_CMAKE: true
|
2022-07-23 18:40:05 +08:00
|
|
|
INSTALL_QMAKE5: false
|
2024-01-27 04:16:29 +08:00
|
|
|
BUILD_CONFIG: Debug
|
2024-10-16 03:53:49 +08:00
|
|
|
USE_CXX20: OFF
|
2022-04-17 05:23:18 +08:00
|
|
|
|
2018-12-20 01:58:18 +08:00
|
|
|
matrix:
|
2024-10-16 03:53:49 +08:00
|
|
|
- NAME: "Ubuntu2004: CMake, Qt6"
|
|
|
|
QTABI: gcc_64
|
|
|
|
COMPILER: GCC
|
|
|
|
QTVER: 6.7
|
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
INSTALL_QMAKE5: true
|
|
|
|
TEST_FETCHCONTENT: false
|
|
|
|
|
|
|
|
- NAME: "Ubuntu2004: CMake, Qt6, C++20"
|
|
|
|
QTABI: gcc_64
|
|
|
|
COMPILER: GCC
|
|
|
|
QTVER: 6.7
|
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
INSTALL_QMAKE5: true
|
|
|
|
TEST_FETCHCONTENT: false
|
|
|
|
USE_CXX20: ON
|
|
|
|
|
|
|
|
- NAME: "Ubuntu2004: CMake-FetchContent, Qt6"
|
|
|
|
QTABI: gcc_64
|
|
|
|
COMPILER: GCC
|
|
|
|
QTVER: 6.7
|
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
TEST_FETCHCONTENT: true
|
2022-07-20 13:29:04 +08:00
|
|
|
|
2024-10-16 03:53:49 +08:00
|
|
|
- NAME: "Ubuntu2004: CMake, Qt5"
|
|
|
|
QTABI: gcc_64
|
|
|
|
COMPILER: GCC
|
|
|
|
QTVER: 5.15
|
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
|
|
INSTALL_QMAKE5: true
|
|
|
|
TEST_FETCHCONTENT: false
|
2024-01-18 03:42:12 +08:00
|
|
|
|
2024-01-27 01:35:49 +08:00
|
|
|
- NAME: "Ubuntu2004: QMake, Qt6"
|
|
|
|
QTABI: gcc_64
|
2022-07-20 13:29:04 +08:00
|
|
|
COMPILER: GCC
|
2022-07-19 22:03:23 +08:00
|
|
|
QTVER: 5.15
|
2022-07-19 22:08:24 +08:00
|
|
|
USE_CMAKE: false
|
2022-07-20 13:29:04 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
2022-07-23 18:40:05 +08:00
|
|
|
INSTALL_QMAKE5: true
|
2024-01-18 03:42:12 +08:00
|
|
|
TEST_FETCHCONTENT: false
|
2024-10-16 03:53:49 +08:00
|
|
|
|
2024-01-27 01:35:49 +08:00
|
|
|
- NAME: "MSVC64: CMake, Qt5"
|
|
|
|
QTABI: msvc2019_64
|
2022-04-17 18:57:17 +08:00
|
|
|
COMPILER: MSVC
|
2022-04-17 05:23:18 +08:00
|
|
|
QTVER: 5.15
|
2022-07-20 01:09:16 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
2022-04-17 19:49:29 +08:00
|
|
|
CMAKE_GENERATOR: "Visual Studio 16 2019"
|
|
|
|
CMAKE_BUILDFLAGS: /verbosity:minimal /maxcpucount
|
2024-01-18 03:42:12 +08:00
|
|
|
TEST_FETCHCONTENT: false
|
2022-07-19 22:08:24 +08:00
|
|
|
|
2024-01-27 01:35:49 +08:00
|
|
|
- NAME: "MSVC64: CMake, Qt6"
|
|
|
|
QTABI: msvc2019_64
|
2022-04-22 21:24:54 +08:00
|
|
|
COMPILER: MSVC
|
2024-02-23 20:12:02 +08:00
|
|
|
QTVER: 6.5
|
2022-07-20 01:09:16 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
2022-04-22 21:24:54 +08:00
|
|
|
CMAKE_GENERATOR: "Visual Studio 16 2019"
|
|
|
|
CMAKE_BUILDFLAGS: /verbosity:minimal /maxcpucount
|
2024-01-18 03:42:12 +08:00
|
|
|
TEST_FETCHCONTENT: false
|
2022-04-22 21:24:54 +08:00
|
|
|
|
2024-01-27 01:35:49 +08:00
|
|
|
- NAME: "MacOS: CMake, Qt6"
|
|
|
|
QTABI: macos
|
2022-07-19 00:14:00 +08:00
|
|
|
COMPILER: CLANG
|
2024-02-23 20:12:02 +08:00
|
|
|
QTVER: 6.6
|
2022-07-20 01:09:16 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey
|
2022-07-19 00:14:00 +08:00
|
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
2024-01-18 03:42:12 +08:00
|
|
|
TEST_FETCHCONTENT: false
|
2024-10-16 03:53:49 +08:00
|
|
|
|
2018-12-20 01:58:18 +08:00
|
|
|
|
2022-04-17 05:23:18 +08:00
|
|
|
for:
|
|
|
|
# Windows (MinGW 8.1 & MSVC2019)
|
2022-04-17 05:51:05 +08:00
|
|
|
-
|
|
|
|
matrix:
|
2022-04-17 05:23:18 +08:00
|
|
|
only:
|
2022-07-20 01:09:16 +08:00
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
2022-04-17 05:23:18 +08:00
|
|
|
|
|
|
|
init:
|
|
|
|
- cmd: echo == INIT SYSTEM ENVIRONMENT ======================================================================
|
|
|
|
- cmd: echo NUMBER_OF_PROCESSORS=%NUMBER_OF_PROCESSORS%
|
|
|
|
- cmd: echo PROCESSOR_IDENTIFIER=%PROCESSOR_IDENTIFIER%
|
|
|
|
- cmd: echo APPVEYOR_BUILD_WORKER_IMAGE=%APPVEYOR_BUILD_WORKER_IMAGE%
|
|
|
|
- cmd: echo QTABI=%QTABI%
|
|
|
|
- cmd: echo CMAKE_GENERATOR=%CMAKE_GENERATOR%
|
|
|
|
- cmd: echo CMAKE_BUILDFLAGS=%CMAKE_BUILDFLAGS%
|
|
|
|
|
|
|
|
install:
|
|
|
|
# Init compiler environment
|
|
|
|
- cmd: echo == INIT COMPILER ENVIRONMENT ====================================================================
|
|
|
|
- cmd: set QTDIR=C:\Qt\%QTVER%\%QTABI%\bin
|
2022-07-06 04:03:37 +08:00
|
|
|
- cmd: set QT_DIR=C:\Qt\%QTVER%\%QTABI%\bin
|
2022-04-17 05:23:18 +08:00
|
|
|
- cmd: set PATH=%QTDIR%;%JOMDIR%;%PATH%
|
2022-04-17 05:51:05 +08:00
|
|
|
- cmd: if %COMPILER%==MinGW set "PATH=%MINGWDIR%\bin;%PATH%"
|
2022-04-17 05:23:18 +08:00
|
|
|
- cmd: if %QTABI%==msvc2019 call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
|
|
|
|
- cmd: if %QTABI%==msvc2019_64 call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
|
|
|
|
# Rename sh.exe as sh.exe in PATH interferes with MinGW
|
2022-04-17 05:51:05 +08:00
|
|
|
- cmd: if %COMPILER%==MinGW rename "C:\Program Files\Git\usr\bin\sh.exe" "sh2.exe"
|
2022-04-17 05:23:18 +08:00
|
|
|
- cmd: echo QTDIR=%QTDIR%
|
2022-07-06 04:03:37 +08:00
|
|
|
- cmd: echo QT_DIR=%QT_DIR%
|
2022-04-17 05:23:18 +08:00
|
|
|
- cmd: echo JOMDIR=%JOMDIR%
|
|
|
|
- cmd: echo PATH=%PATH%
|
|
|
|
# Install OpenCV
|
2022-04-17 19:49:29 +08:00
|
|
|
- cmd: echo == INSTALL OPENCV ===============================================================================
|
2022-04-17 05:23:18 +08:00
|
|
|
- cmd: choco install OpenCV
|
|
|
|
- cmd: set OPENCV_DIR=C:\tools\opencv\build
|
|
|
|
- cmd: echo OPENCV_DIR=%OPENCV_DIR%
|
2022-04-17 19:49:29 +08:00
|
|
|
# Install CImg
|
|
|
|
- cmd: echo == INSTALL CIMG =================================================================================
|
|
|
|
- cmd: mkdir C:\tools\cimg
|
|
|
|
- cmd: git clone --depth=1 https://github.com/dtschump/CImg.git C:\tools\cimg
|
|
|
|
- cmd: set CIMG_DIR=C:\tools\cimg
|
|
|
|
- cmd: echo CIMG_DIR=%CIMG_DIR%
|
|
|
|
- cmd: set CIMG_INCLUDE_DIR=C:\tools\cimg
|
|
|
|
- cmd: echo CIMG_INCLUDE_DIR=%CIMG_INCLUDE_DIR%
|
2022-04-17 05:23:18 +08:00
|
|
|
|
|
|
|
build_script:
|
|
|
|
- cmd: echo == BUILD JKQtPlotter ============================================================================
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- cmd: cd %APPVEYOR_BUILD_FOLDER%
|
2022-04-17 05:51:05 +08:00
|
|
|
- cmd: mkdir build
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- cmd: mkdir install
|
2022-04-17 05:51:05 +08:00
|
|
|
- cmd: cd build
|
2022-04-17 19:49:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake --version
|
2024-10-16 03:53:49 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake -G "%CMAKE_GENERATOR%" "-DCMAKE_PREFIX_PATH=%QTDIR%;%CIMG_INCLUDE_DIR%" "-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%\install" "-DJKQtPlotter_ENABLED_CXX20=$USE_CXX20" ..
|
2024-01-27 04:16:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake --build . --config "%BUILD_CONFIG%" -j%NUMBER_OF_PROCESSORS% -- %CMAKE_BUILDFLAGS%
|
2022-04-17 19:49:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==false qmake.exe -v
|
2024-01-27 04:16:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==false qmake.exe CONFIG+=%BUILD_CONFIG% ..\JKQtPlotterBuildAllExamples.pro
|
2022-04-17 19:49:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==false call %MAKETOOL%
|
2022-04-17 05:51:05 +08:00
|
|
|
- cmd: cd ..
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- cmd: echo == INSTALL JKQtPlotter ==========================================================================
|
|
|
|
- cmd: cd %APPVEYOR_BUILD_FOLDER%
|
|
|
|
- cmd: cd build
|
2024-01-27 04:16:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake --install . --config "%BUILD_CONFIG%"
|
2022-04-17 05:23:18 +08:00
|
|
|
|
2024-01-16 20:14:02 +08:00
|
|
|
after_build:
|
2024-01-16 20:11:37 +08:00
|
|
|
- cmd: echo == TEST USE JKQtPlotter CMAKE BUILD ============================================================
|
2024-01-16 23:58:23 +08:00
|
|
|
- cmd: cd %APPVEYOR_BUILD_FOLDER%
|
|
|
|
- cmd: if %USE_CMAKE%==true cd examples
|
|
|
|
- cmd: if %USE_CMAKE%==true cd cmake_link_example
|
|
|
|
- cmd: if %USE_CMAKE%==true mkdir build
|
|
|
|
- cmd: if %USE_CMAKE%==true cd build
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake -G "%CMAKE_GENERATOR%" "-DCMAKE_PREFIX_PATH=%QTDIR%;%CIMG_INCLUDE_DIR%;%APPVEYOR_BUILD_FOLDER%\install" ..
|
2024-01-27 04:16:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cmake --build . --config "%BUILD_CONFIG%" -j%NUMBER_OF_PROCESSORS% -- %CMAKE_BUILDFLAGS%
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- cmd: cd ..
|
2022-04-17 05:23:18 +08:00
|
|
|
|
2024-01-22 04:58:56 +08:00
|
|
|
test_script:
|
|
|
|
- cmd: if %USE_CMAKE%==true echo == RUNNING UNIT TESTS FOR JKQtPlotter CMAKE BUILD ===============================================
|
2024-01-23 08:00:55 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true cd %APPVEYOR_BUILD_FOLDER%
|
|
|
|
- cmd: if %USE_CMAKE%==true cd build
|
|
|
|
- cmd: if %USE_CMAKE%==true ctest --version
|
2024-01-27 04:16:29 +08:00
|
|
|
- cmd: if %USE_CMAKE%==true ctest --print-labels --build-config "%BUILD_CONFIG%"
|
|
|
|
- cmd: if %USE_CMAKE%==true ctest --build-config "%BUILD_CONFIG%" -VV --output-on-failure --output-junit %APPVEYOR_BUILD_FOLDER%\build\test-results.xml
|
2024-01-23 08:00:55 +08:00
|
|
|
|
2024-01-22 04:58:56 +08:00
|
|
|
|
|
|
|
after_test:
|
2024-01-27 02:51:04 +08:00
|
|
|
- ps: |
|
|
|
|
If (Test-Path %APPVEYOR_BUILD_FOLDER%\build\test-results.xml) {
|
|
|
|
(new-object net.webclient).UploadFile(
|
|
|
|
"https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)",
|
|
|
|
(Resolve-Path %APPVEYOR_BUILD_FOLDER%\build\test-results.xml)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
$LastExitCode = 0
|
2024-01-22 04:58:56 +08:00
|
|
|
|
2022-04-17 05:23:18 +08:00
|
|
|
|
2022-07-19 05:01:18 +08:00
|
|
|
# Linux (Ubuntu2004)
|
2022-04-17 05:51:05 +08:00
|
|
|
-
|
|
|
|
matrix:
|
2022-04-17 05:23:18 +08:00
|
|
|
only:
|
2022-07-20 01:09:16 +08:00
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
|
2022-07-19 05:01:18 +08:00
|
|
|
|
2022-04-17 05:23:18 +08:00
|
|
|
init:
|
|
|
|
- sh: echo == INIT SYSTEM ENVIRONMENT ======================================================================
|
|
|
|
- sh: echo _NPROCESSORS_ONLN=$(getconf _NPROCESSORS_ONLN)
|
2022-04-17 18:57:17 +08:00
|
|
|
- sh: echo APPVEYOR_BUILD_WORKER_IMAGE=$APPVEYOR_BUILD_WORKER_IMAGE
|
|
|
|
- sh: echo QTABI=$QTABI
|
|
|
|
- sh: echo CMAKE_GENERATOR=$CMAKE_GENERATOR
|
2024-01-15 22:06:17 +08:00
|
|
|
- sh: cmake --version
|
2022-04-17 05:23:18 +08:00
|
|
|
|
|
|
|
install:
|
|
|
|
# Init compiler environment
|
|
|
|
- sh: echo == INIT COMPILER ENVIRONMENT ====================================================================
|
2022-04-17 19:49:29 +08:00
|
|
|
- sh: export QTDIR=$HOME/Qt/$QTVER/$QTABI/
|
2022-07-06 04:03:37 +08:00
|
|
|
- sh: export QT_DIR=$HOME/Qt/$QTVER/$QTABI/
|
2022-04-17 19:49:29 +08:00
|
|
|
- sh: export Qt5_DIR=$QTDIR/lib/cmake
|
2023-05-28 20:25:50 +08:00
|
|
|
- sh: sudo ls /etc/apt/sources.list.d/
|
|
|
|
#- sh: sudo rm /etc/apt/sources.list.d/github_git-lfs.list
|
2023-06-28 03:26:49 +08:00
|
|
|
- sh: sudo apt update -yy --allow-releaseinfo-change
|
2024-01-15 22:06:17 +08:00
|
|
|
- sh: if [ "$INSTALL_QMAKE5" = true ]; then sudo apt install -y build-essential git mesa-common-dev libglu1-mesa-dev qt5-qmake ; fi
|
|
|
|
- sh: if [ "$INSTALL_QMAKE5" = false ]; then sudo apt install -y build-essential git mesa-common-dev libglu1-mesa-dev ; fi
|
2022-04-17 18:57:17 +08:00
|
|
|
- sh: echo QTDIR=$QTDIR
|
2022-07-06 04:03:37 +08:00
|
|
|
- sh: echo QT_DIR=$QT_DIR
|
2022-04-17 19:49:29 +08:00
|
|
|
- sh: echo Qt5_DIR=$Qt5_DIR
|
2022-04-17 18:57:17 +08:00
|
|
|
- sh: echo PATH=$PATH
|
2022-04-17 05:23:18 +08:00
|
|
|
# Install OpenCV
|
2022-07-23 18:40:05 +08:00
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ]; then
|
|
|
|
echo == INSTALL OPENCV ===============================================================================
|
|
|
|
sudo apt install -y libopencv-dev
|
|
|
|
fi
|
2022-04-17 19:49:29 +08:00
|
|
|
# Install CImg
|
2022-07-23 18:40:05 +08:00
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ]; then
|
|
|
|
echo == INSTALL CIMG =================================================================================
|
|
|
|
mkdir $HOME/cimg
|
2023-10-25 19:26:45 +08:00
|
|
|
git clone --depth=1 https://github.com/dtschump/CImg.git $HOME/cimg
|
2023-10-26 00:39:28 +08:00
|
|
|
ls $HOME/*
|
|
|
|
ls $HOME/cimg/*
|
|
|
|
export CIMG_DIR=$HOME/cimg
|
|
|
|
echo "CIMG_DIR=$CIMG_DIR"
|
|
|
|
export CIMG_INCLUDE_DIR=$HOME/cimg
|
|
|
|
echo "CIMG_INCLUDE_DIR=$CIMG_INCLUDE_DIR"
|
2022-07-23 18:40:05 +08:00
|
|
|
fi
|
2018-12-20 01:58:18 +08:00
|
|
|
|
2022-04-17 05:23:18 +08:00
|
|
|
build_script:
|
|
|
|
- sh: echo == BUILD JKQtPlotter ============================================================================
|
2024-01-16 20:21:56 +08:00
|
|
|
- sh: cd $APPVEYOR_BUILD_FOLDER
|
2022-04-17 05:23:18 +08:00
|
|
|
- sh: mkdir build
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- sh: mkdir install
|
2022-07-20 18:34:14 +08:00
|
|
|
- sh: |
|
2024-01-18 03:42:12 +08:00
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
cd build
|
2022-07-20 13:29:04 +08:00
|
|
|
echo --- Run CMake Configure -----------------------------------------------------------------------------
|
|
|
|
cmake --version
|
2024-10-16 03:53:49 +08:00
|
|
|
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_PREFIX_PATH=$QTDIR;$CIMG_INCLUDE_DIR" "-DCMAKE_INSTALL_PREFIX=$APPVEYOR_BUILD_FOLDER/install" "-DCMAKE_BUILD_TYPE=$BUILD_CONFIG" "-DJKQtPlotter_ENABLED_CXX20=$USE_CXX20" ..
|
2022-07-20 13:29:04 +08:00
|
|
|
echo --- Build using CMake -------------------------------------------------------------------------------
|
2024-01-27 04:16:29 +08:00
|
|
|
cmake --build . --config "$BUILD_CONFIG" -j$(getconf _NPROCESSORS_ONLN) -- $CMAKE_BUILDFLAGS
|
2024-01-25 05:47:07 +08:00
|
|
|
|
2022-07-20 13:29:04 +08:00
|
|
|
fi
|
2024-01-18 03:42:12 +08:00
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = true ]; then
|
|
|
|
cd examples/cmake_fetchcontent_example
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
echo --- Run CMake Configure with FetchCOntent -----------------------------------------------------------
|
|
|
|
cmake --version
|
2024-10-16 03:53:49 +08:00
|
|
|
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_PREFIX_PATH=$QTDIR;$CIMG_INCLUDE_DIR" "-DCMAKE_BUILD_TYPE=$BUILD_CONFIG" "-DCMAKE_INSTALL_PREFIX=$APPVEYOR_BUILD_FOLDER/install" "-DJKQtPlotter_ENABLED_CXX20=$USE_CXX20" ..
|
2024-01-18 03:42:12 +08:00
|
|
|
echo --- Build using CMake with FetchCOntent -------------------------------------------------------------
|
2024-01-27 04:16:29 +08:00
|
|
|
cmake --build . --config "$BUILD_CONFIG" -j$(getconf _NPROCESSORS_ONLN) -- $CMAKE_BUILDFLAGS
|
2024-01-18 03:42:12 +08:00
|
|
|
fi
|
2022-07-20 18:34:14 +08:00
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = false ]; then
|
2024-01-18 03:42:12 +08:00
|
|
|
cd build
|
2022-07-20 13:29:04 +08:00
|
|
|
echo --- Run QMake Configure -----------------------------------------------------------------------------
|
2022-07-21 01:37:09 +08:00
|
|
|
$QTDIR/bin/qmake -v
|
2024-01-27 04:16:29 +08:00
|
|
|
$QTDIR/bin/qmake -makefile -o Makefile "CONFIG+=$BUILD_CONFIG" ../JKQtPlotterAppveyorBuild.pro
|
2022-07-20 18:34:14 +08:00
|
|
|
echo --- Build for QMake ---------------------------------------------------------------------------------
|
2022-07-21 02:58:11 +08:00
|
|
|
make -j$(getconf _NPROCESSORS_ONLN)
|
2022-07-20 13:29:04 +08:00
|
|
|
fi
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- sh: |
|
2024-01-18 03:42:12 +08:00
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == INSTALL JKQtPlotter ==========================================================================
|
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd build
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
echo --- Install using CMake -------------------------------------------------------------------------------
|
2024-01-27 04:16:29 +08:00
|
|
|
cmake --install . --config "$BUILD_CONFIG"
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
fi
|
2022-07-19 05:01:18 +08:00
|
|
|
|
|
|
|
|
2024-01-16 20:14:02 +08:00
|
|
|
after_build:
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
- sh: |
|
2024-01-18 03:42:12 +08:00
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == TEST USE JKQtPlotter CMAKE BUILD ============================================================
|
2024-01-16 23:58:23 +08:00
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd examples/cmake_link_example
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2024-01-27 21:20:31 +08:00
|
|
|
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_BUILD_TYPE=$BUILD_CONFIG" "-DCMAKE_PREFIX_PATH=$QTDIR;$CIMG_INCLUDE_DIR;$APPVEYOR_BUILD_FOLDER/install" ..
|
2024-01-27 04:16:29 +08:00
|
|
|
cmake --build . --config "$BUILD_CONFIG" -j$(getconf _NPROCESSORS_ONLN) -- $CMAKE_BUILDFLAGS
|
2024-01-16 23:58:23 +08:00
|
|
|
cd ..
|
NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 20:05:52 +08:00
|
|
|
fi
|
|
|
|
|
2024-01-22 04:58:56 +08:00
|
|
|
test_script:
|
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == RUNNING UNIT TESTS FOR JKQtPlotter CMAKE BUILD ===============================================
|
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd build
|
2024-01-23 08:00:55 +08:00
|
|
|
ctest --version
|
2024-01-27 04:16:29 +08:00
|
|
|
ctest --print-labels --build-config "$BUILD_CONFIG"
|
|
|
|
ctest --build-config "$BUILD_CONFIG" -VV --output-on-failure --output-junit test-results.xml
|
2024-01-23 08:02:25 +08:00
|
|
|
fi
|
2024-01-22 04:58:56 +08:00
|
|
|
after_test:
|
|
|
|
- find "$APPVEYOR_BUILD_FOLDER" -type f -name 'test-results.xml' -print0 | xargs -0 -I '{}' curl -F 'file=@{}' "https://ci.appveyor.com/api/testresults/junit/$APPVEYOR_JOB_ID"
|
2022-07-19 05:01:18 +08:00
|
|
|
|
2024-01-22 04:58:56 +08:00
|
|
|
|
2022-07-19 05:01:18 +08:00
|
|
|
|
|
|
|
# MacOS (Monterey)
|
|
|
|
-
|
|
|
|
matrix:
|
|
|
|
only:
|
2022-07-20 01:09:16 +08:00
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey
|
2022-07-19 05:01:18 +08:00
|
|
|
|
|
|
|
init:
|
|
|
|
- sh: echo == INIT SYSTEM ENVIRONMENT ======================================================================
|
|
|
|
- sh: echo _NPROCESSORS_ONLN=$(getconf _NPROCESSORS_ONLN)
|
|
|
|
- sh: echo APPVEYOR_BUILD_WORKER_IMAGE=$APPVEYOR_BUILD_WORKER_IMAGE
|
|
|
|
- sh: echo QTABI=$QTABI
|
|
|
|
- sh: echo CMAKE_GENERATOR=$CMAKE_GENERATOR
|
|
|
|
|
|
|
|
install:
|
|
|
|
# Init compiler environment
|
|
|
|
- sh: echo == INIT COMPILER ENVIRONMENT ====================================================================
|
|
|
|
- sh: export QTDIR=$HOME/Qt/$QTVER/$QTABI/
|
|
|
|
- sh: export QT_DIR=$HOME/Qt/$QTVER/$QTABI/
|
|
|
|
- sh: export Qt5_DIR=$QTDIR/lib/cmake
|
|
|
|
- sh: echo QTDIR=$QTDIR
|
|
|
|
- sh: echo QT_DIR=$QT_DIR
|
|
|
|
- sh: echo Qt5_DIR=$Qt5_DIR
|
|
|
|
- sh: echo PATH=$PATH
|
|
|
|
# Install OpenCV
|
|
|
|
|
|
|
|
build_script:
|
|
|
|
- sh: echo == BUILD JKQtPlotter ============================================================================
|
|
|
|
- sh: mkdir build
|
|
|
|
- sh: cd build
|
|
|
|
- sh: echo --- Run CMake Configure -----------------------------------------------------------------------------
|
|
|
|
- sh: cmake --version
|
2024-10-16 03:53:49 +08:00
|
|
|
- sh: cmake -G "$CMAKE_GENERATOR" "-DCMAKE_PREFIX_PATH=$QTDIR" "-DCMAKE_BUILD_TYPE=$BUILD_CONFIG" "-DJKQtPlotter_ENABLED_CXX20=$USE_CXX20" "-DCMAKE_INSTALL_PREFIX=$APPVEYOR_BUILD_FOLDER/install" .. ..
|
2022-07-19 05:01:18 +08:00
|
|
|
- sh: echo --- Build using CMake -------------------------------------------------------------------------------
|
2024-01-27 04:16:29 +08:00
|
|
|
- sh: cmake --build . --config "$BUILD_CONFIG" -j$(getconf _NPROCESSORS_ONLN) -- $CMAKE_BUILDFLAGS
|
2024-01-27 07:33:42 +08:00
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == INSTALL JKQtPlotter ==========================================================================
|
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd build
|
|
|
|
echo --- Install using CMake -------------------------------------------------------------------------------
|
|
|
|
cmake --install . --config "$BUILD_CONFIG"
|
|
|
|
fi
|
2024-01-22 04:58:56 +08:00
|
|
|
|
2024-01-25 05:47:07 +08:00
|
|
|
after_build:
|
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == TEST USE JKQtPlotter CMAKE BUILD ============================================================
|
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd examples/cmake_link_example
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2024-01-27 21:20:31 +08:00
|
|
|
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_BUILD_TYPE=$BUILD_CONFIG" "-DCMAKE_PREFIX_PATH=$QTDIR;$CIMG_INCLUDE_DIR;$APPVEYOR_BUILD_FOLDER/install" ..
|
2024-01-27 04:16:29 +08:00
|
|
|
cmake --build . --config "$BUILD_CONFIG" -j$(getconf _NPROCESSORS_ONLN) -- $CMAKE_BUILDFLAGS
|
2024-01-25 05:47:07 +08:00
|
|
|
cd ..
|
|
|
|
fi
|
|
|
|
|
|
|
|
test_script:
|
|
|
|
- sh: |
|
|
|
|
if [ "$USE_CMAKE" = true ] && [ "$TEST_FETCHCONTENT" = false ]; then
|
|
|
|
echo == RUNNING UNIT TESTS FOR JKQtPlotter CMAKE BUILD ===============================================
|
|
|
|
cd $APPVEYOR_BUILD_FOLDER
|
|
|
|
cd build
|
|
|
|
ctest --version
|
2024-01-27 04:16:29 +08:00
|
|
|
ctest --print-labels --build-config "$BUILD_CONFIG"
|
|
|
|
ctest --build-config "$BUILD_CONFIG" -VV --output-on-failure --output-junit test-results.xml
|
2024-01-25 05:47:07 +08:00
|
|
|
fi
|
|
|
|
after_test:
|
|
|
|
- find "$APPVEYOR_BUILD_FOLDER" -type f -name 'test-results.xml' -print0 | xargs -0 -I '{}' curl -F 'file=@{}' "https://ci.appveyor.com/api/testresults/junit/$APPVEYOR_JOB_ID"
|
|
|
|
|
2024-01-22 04:58:56 +08:00
|
|
|
|
2024-01-27 01:35:49 +08:00
|
|
|
|
2024-01-28 19:02:04 +08:00
|
|
|
#artifacts:
|
|
|
|
# - path: 'install'
|
|
|
|
# name: install-results
|
|
|
|
# type: zip
|
|
|
|
# - path: 'build/**/test-results.xml'
|
2024-02-23 20:12:02 +08:00
|
|
|
# name: test_results
|