Added an ability for the generated tools and test projects to be buil… #522
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Github Actions Build | |
on: [push] | |
env: | |
COMMS_TAG: develop | |
CC_TOOLS_QT_TAG: develop | |
jobs: | |
build_gcc_old_ubuntu_20_04: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [4.8, 5, 6, 7] | |
cpp: [11, 14] | |
exclude: | |
- cc_ver: 4.8 | |
cpp: 14 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add repositories | |
run: | | |
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic main'; \ | |
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic universe' | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: sudo apt install libqt5gui5 qtbase5-dev libxml2-dev gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} gcc-8 g++-8 | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_SKIP: 1 | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=gold -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install \ | |
-DCOMMSDSL_TESTS_C_COMPILER=gcc-${{matrix.cc_ver}} -DCOMMSDSL_TESTS_CXX_COMPILER=g++-${{matrix.cc_ver}} \ | |
-DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} -DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCOMMSDSL_TEST_USE_SANITIZERS=OFF \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=OFF | |
env: | |
CC: gcc-8 | |
CXX: g++-8 | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest | |
build_gcc_ubuntu_20_04: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [8] | |
cpp: [11, 14, 17] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: sudo apt install libqt5gui5 qtbase5-dev libxml2-dev gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCOMMSDSL_BUILD_UNIT_TESTS=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest | |
build_gcc_ubuntu_22_04: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [9, 10, 11, 12] | |
cpp: [11, 14, 17, 20] | |
qt_ver: [5, 6] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: | | |
sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libxml2-dev gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} \ | |
python3 libpython3-dev swig default-jdk default-jre emscripten nodejs | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} \ | |
-DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCMAKE_IGNORE_PATH=/usr/local/bin \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |
build_gcc_ubuntu_24_04: | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [13, 14] | |
cpp: [11, 14, 17, 20, 23] | |
qt_ver: [5, 6] | |
exclude: | |
- cc_ver: 13 | |
cpp: 23 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: | | |
sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libxml2-dev doxygen gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} \ | |
python3 libpython3-dev swig default-jdk default-jre emscripten nodejs | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} \ | |
-DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCOMMSDSL_TEST_BUILD_DOC=ON -DCMAKE_IGNORE_PATH=/usr/local/bin \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: gcc-${{matrix.cc_ver}} | |
CXX: g++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |
build_clang_old_ubuntu_20_04: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: ["4.0", "5.0", "6.0"] | |
cpp: [11, 14, 17] | |
exclude: | |
- cc_ver: "4.0" | |
cpp: 17 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add repositories | |
run: | | |
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic main'; \ | |
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic universe' | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: sudo apt install libqt5gui5 qtbase5-dev libxml2-dev clang-${{matrix.cc_ver}} clang-6.0 g++ | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=gold -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install \ | |
-DCOMMSDSL_TESTS_C_COMPILER=clang-${{matrix.cc_ver}} -DCOMMSDSL_TESTS_CXX_COMPILER=clang++-${{matrix.cc_ver}} \ | |
-DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} -DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCOMMSDSL_TEST_USE_SANITIZERS=OFF \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} | |
env: | |
CC: clang-6.0 | |
CXX: clang++-6.0 | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest | |
build_clang_ubuntu_20_04: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [7, 8, 9, 10, 11] | |
cpp: [11, 14, 17, 20] | |
exclude: | |
- cc_ver: 7 | |
cpp: 20 | |
- cc_ver: 8 | |
cpp: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: sudo apt install libqt5gui5 qtbase5-dev libxml2-dev clang-${{matrix.cc_ver}} | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} -DCOMMSDSL_BUILD_UNIT_TESTS=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest | |
build_clang_ubuntu_22_04: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [12, 13, 14, 15] | |
cpp: [11, 14, 17, 20] | |
qt_ver: [5, 6] | |
exclude: | |
- cc_ver: 12 | |
cpp: 20 | |
- cc_ver: 13 | |
cpp: 20 | |
- cc_ver: 14 | |
cpp: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: | | |
sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libxml2-dev clang-${{matrix.cc_ver}} \ | |
python3 libpython3-dev swig default-jdk default-jre emscripten nodejs | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} \ | |
-DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCMAKE_IGNORE_PATH=/usr/local/bin \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |
build_clang_ubuntu_24_04: | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
cc_ver: [16, 17, 18] | |
cpp: [11, 14, 17, 20, 23] | |
qt_ver: [5, 6] | |
exclude: | |
- cc_ver: 16 | |
cpp: 23 | |
- cc_ver: 17 | |
cpp: 23 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Install | |
run: sudo apt-get update --fix-missing | |
- name: Install Packages | |
run: | | |
sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libxml2-dev clang-${{matrix.cc_ver}} \ | |
python3 libpython3-dev swig default-jdk default-jre emscripten nodejs | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: bash | |
run: $GITHUB_WORKSPACE/script/prepare_externals.sh | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} | |
- name: Configure CMake | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ | |
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} \ | |
-DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCMAKE_IGNORE_PATH=/usr/local/bin \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2SWIG=ON -DCOMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN=ON \ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \ | |
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON | |
env: | |
CC: clang-${{matrix.cc_ver}} | |
CXX: clang++-${{matrix.cc_ver}} | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |
build_msvc_2019: | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
arch: [x64] | |
cpp: [11, 14, 17] | |
qt_ver: [5, 6] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Install Qt | |
if: ${{matrix.cpp >= 17}} | |
shell: cmd | |
run: | | |
choco install curl | |
curl -L https://github.com/martinrotter/qt-minimalistic-builds/releases/download/${{env.QT_VER}}/qt-${{env.QT_VER}}-dynamic-msvc2019-x86_64.7z -o ${{runner.workspace}}/qt.7z | |
7z x ${{runner.workspace}}/qt.7z -o${{runner.workspace}}/qt | |
echo QT_VER=${{env.QT_VER}} >>%GITHUB_ENV% | |
echo QTDIR=${{runner.workspace}}/qt/qt-${{env.QT_VER}}-dynamic-msvc2019-x86_64 >>%GITHUB_ENV% | |
env: | |
QT_VER: ${{matrix.qt_ver == '5' && '5.15.3' || '6.2.2'}} | |
- name: Prepare externals | |
shell: cmd | |
run: | | |
%GITHUB_WORKSPACE%\script\prepare_externals.bat | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
PLATFORM: ${{matrix.arch}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} | |
CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} | |
- name: Configure CMake | |
shell: cmd | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake %GITHUB_WORKSPACE% -A ${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install ^ | |
-DCMAKE_PREFIX_PATH="${{runner.workspace}}/build/install;${{env.QTDIR}}" ^ | |
-DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} ^ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} ^ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON -DCOMMSDSL_BUILD_UNIT_TESTS=ON ^ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} | |
env: | |
BUILD_TOOLS_QT_UNIT_TESTS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: cmd | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |
build_msvc_2022: | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [Debug, Release, MinSizeRel] | |
arch: [x64] | |
cpp: [11, 14, 17, 20] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Prepare externals | |
shell: cmd | |
run: | | |
%GITHUB_WORKSPACE%\script\prepare_externals.bat | |
env: | |
BUILD_DIR: ${{runner.workspace}}/build | |
PLATFORM: ${{matrix.arch}} | |
EXTERNALS_DIR: ${{runner.workspace}}/externals | |
COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install | |
COMMON_BUILD_TYPE: ${{matrix.type}} | |
COMMON_CXX_STANDARD: ${{matrix.cpp}} | |
COMMS_TAG: ${{env.COMMS_TAG}} | |
CC_TOOLS_QT_SKIP: 1 | |
- name: Configure CMake | |
shell: cmd | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake %GITHUB_WORKSPACE% -A ${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install ^ | |
-DCMAKE_PREFIX_PATH="${{runner.workspace}}/build/install;${{env.QTDIR}}" ^ | |
-DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} -DCOMMSDSL_TESTS_QT_VERSION=${{matrix.qt_ver}} ^ | |
-DCMAKE_CXX_STANDARD=${{env.TOOLS_CXX_STANDARD}} ^ | |
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON -DCOMMSDSL_BUILD_UNIT_TESTS=ON ^ | |
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=OFF | |
env: | |
TOOLS_CXX_STANDARD: "${{ matrix.cpp >= 17 && matrix.cpp || '17' }}" | |
- name: Build Target | |
working-directory: ${{runner.workspace}}/build | |
shell: cmd | |
run: cmake --build . --config ${{matrix.type}} --target install | |
env: | |
VERBOSE: 1 | |
- name: Testing | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: ctest -V | |