Skip to content

Commit

Permalink
Release v6.3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
arobenko committed Jun 23, 2024
2 parents 0a362f4 + e83aaff commit 45ee0d3
Show file tree
Hide file tree
Showing 27 changed files with 332 additions and 259 deletions.
97 changes: 0 additions & 97 deletions .appveyor.yml

This file was deleted.

78 changes: 71 additions & 7 deletions .github/workflows/actions_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ name: Github Actions Build
on: [push]

env:
COMMS_TAG: v5.2.3
CC_TOOLS_QT_TAG: v5.2.1
COMMS_TAG: v5.2.5
CC_TOOLS_QT_TAG: v5.3.1

jobs:
build_gcc_old_ubuntu_20_04:
Expand Down Expand Up @@ -119,7 +119,8 @@ jobs:
-DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCOMMSDSL_TESTS_CXX_STANDARD=${{matrix.cpp}} \
-DCOMMSDSL_BUILD_UNIT_TESTS=ON -DCOMMSDSL_TEST_BUILD_DOC=ON \
-DCOMMSDSL_BUILD_COMMSDSL2TEST=ON -DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT=ON \
-DCOMMSDSL_BUILD_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}}
-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}}
Expand Down Expand Up @@ -186,7 +187,8 @@ jobs:
-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_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}}
Expand Down Expand Up @@ -326,7 +328,8 @@ jobs:
-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_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}}
Expand Down Expand Up @@ -401,7 +404,8 @@ jobs:
-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_COMMSDSL2TOOLS_QT_TESTS=${{env.BUILD_TOOLS_QT_UNIT_TESTS}} \
-DCOMMSDSL_BUILD_WITH_SANITIZERS=ON
env:
CC: clang-${{matrix.cc_ver}}
Expand Down Expand Up @@ -483,4 +487,64 @@ jobs:
shell: cmd
run: cmake --build . --config ${{matrix.type}} --target install
env:
VERBOSE: 1
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

32 changes: 22 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ cmake_minimum_required (VERSION 3.10)
project ("commsdsl")

option (COMMSDSL_WARN_AS_ERR "Treat warning as error" ON)
option (COMMSDSL_USE_CCACHE "Use ccache on UNIX systems if it's available" ON)
option (COMMSDSL_USE_CCACHE "Use ccache on UNIX systems if it's available" OFF)
option (COMMSDSL_INSTALL_LIBRARY "Install commdsl library" OFF )
option (COMMSDSL_INSTALL_LIBRARY_HEADERS "Install commdsl library headers" ${COMMSDSL_INSTALL_LIBRARY})
option (COMMSDSL_BUILD_COMMSDSL2COMMS "Build commsdsl2comms" ON)
option (COMMSDSL_BUILD_COMMSDSL2TEST "Build commsdsl2test" OFF)
option (COMMSDSL_BUILD_COMMSDSL2TOOLS_QT "Build commsdsl2tools_qt" OFF)
option (COMMSDSL_BUILD_COMMSDSL2SWIG "Build commsdsl2swig" OFF)
option (COMMSDSL_BUILD_COMMSDSL2EMSCRIPTEN "Build commsdsl2emscripten" OFF)
option (COMMSDSL_BUILD_WITH_SANITIZERS "Build with sanitizers enables" OFF)
option (COMMSDSL_INSTALL_APPS "Install applications" ON)
option (COMMSDSL_BUILD_UNIT_TESTS "Build unittests." OFF)
option (COMMSDSL_BUILD_COMMSDSL2COMMS_TESTS "Build commsdsl2comms unittests." ${COMMSDSL_BUILD_UNIT_TESTS})
Expand All @@ -21,16 +22,16 @@ option (COMMSDSL_BUILD_COMMSDSL2TEST_TESTS "Build commsdsl2test unittests." ${CO
option (COMMSDSL_VALGRIND_TESTS "Enable testing with valgrind (applicable when COMMSDSL_BUILD_UNIT_TESTS is on)" OFF)
option (COMMSDSL_TEST_USE_SANITIZERS "Build unittiests with sanitizers (applicable when COMMSDSL_BUILD_UNIT_TESTS is on)" ON)
option (COMMSDSL_TEST_BUILD_DOC "Build documentation target in generated projects (applicable when COMMSDSL_BUILD_UNIT_TESTS is on)" OFF)
option (COMMSDSL_WIN_ALLOW_LIBXML_BUILD "Allow internal build of libxml2 on Windows platforms" ON)
option (COMMSDSL_FORCE_INTERNAL_LIBXML_BUILD "Force internal build of libxml2 when external one is not found" OFF)

# Additional variables to be used if needed
# ---------------------------
# COMMSDSL_TESTS_CXX_STANDARD - C++ standard to use in unittests
# COMMSDSL_TESTS_CXX_STANDARD - The C++ standard to use in tests, defaults to 11
# COMMSDSL_TESTS_C_COMPILER - C compiler to build unittests
# COMMSDSL_TESTS_CXX_COMPILER - C++ compiler to build unittests
# COMMSDSL_EXTERNALS_DIR - Directory to contain sources for external projects, defaults to ${PROJECT_SOURCE_DIR}/externals.
# COMMSDSL_TESTS_QT_VERSION - The major Qt version for tests, defaults to 5
# COMMSDSL_TESTS_CXX_STANDARD - The C++ standard to use in tests, defaults to 11
# COMMSDSL_CCACHE_EXECUTABLE - Path to ccache executable

# Other used CMake variables
# CMAKE_CXX_STANDARD - The C++ standard to use during the compilation, defaults to 17 (min)
Expand All @@ -40,6 +41,7 @@ option (COMMSDSL_WIN_ALLOW_LIBXML_BUILD "Allow internal build of libxml2 on Wind
# option (COMMSDSL_NO_WARN_AS_ERR "Do NOT treat warning as error" OFF)
# option (COMMSDSL_NO_CCACHE "Disable use of ccache on UNIX system" OFF)
# option (COMMSDSL_NO_TESTS "Disable unittesting" OFF)
# option (COMMSDSL_WIN_ALLOW_LIBXML_BUILD "Allow internal build of libxml2 on Windows platforms" ON)

################################################

Expand All @@ -54,6 +56,10 @@ commsdsl_negate_option(COMMSDSL_NO_WARN_AS_ERR COMMSDSL_WARN_AS_ERR)
commsdsl_negate_option(COMMSDSL_NO_CCACHE COMMSDSL_USE_CCACHE)
commsdsl_negate_option(COMMSDSL_NO_TESTS COMMSDSL_BUILD_UNIT_TESTS)

if (WIN32 AND COMMSDSL_WIN_ALLOW_LIBXML_BUILD)
set (COMMSDSL_FORCE_INTERNAL_LIBXML_BUILD ON)
endif ()

################################################

if ("${COMMSDSL_TESTS_QT_VERSION}" STREQUAL "")
Expand Down Expand Up @@ -85,17 +91,23 @@ if (NOT COMMSDSL_EXTERNALS_DIR)
endif ()

# Compiler options
set (warn_opt)
set (extra_opts)
if (COMMSDSL_WARN_AS_ERR)
set (warn_opt WARN_AS_ERR)
list (APPEND extra_opts WARN_AS_ERR)
endif ()

if (COMMSDSL_USE_CCACHE)
list (APPEND extra_opts USE_CCACHE)
if (NOT "${COMMSDSL_CCACHE_EXECUTABLE}" STREQUAL "")
list (APPEND extra_opts CCACHE_EXECUTABLE "${COMMSDSL_CCACHE_EXECUTABLE}")
endif ()
endif ()

set (ccache_opt)
if ((UNIX) AND (COMMSDSL_USE_CCACHE))
set (ccache_opt USE_CCACHE)
if (COMMSDSL_BUILD_WITH_SANITIZERS)
list (APPEND extra_opts DEFAULT_SANITIZERS)
endif ()

commsdsl_compile(${warn_opt} ${ccache_opt})
commsdsl_compile(${extra_opts})
commsdsl_msvc_force_warn_opt("/W4")
set (COMMSDSL_FOUND_COMMS_INTERNAL OFF CACHE INTERNAL "Mark COMMS library found" FORCE)
function (commsdsl_mark_comms_found)
Expand Down
30 changes: 25 additions & 5 deletions app/commsdsl2comms/src/CommsEnumField.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ namespace

const std::size_t MaxRangesInOpts = 5U;

std::uintmax_t asBigUnsigned(std::intmax_t val)
{
return static_cast<std::uintmax_t>(val);
}

} // namespace


Expand Down Expand Up @@ -626,13 +631,28 @@ bool CommsEnumField::commsPrepareValidRangesInternal()
}
}

if ((iter->m_max + 1) < nextIter->m_min) {
break;
if (bigUnsigned) {
if ((asBigUnsigned(iter->m_max) < std::numeric_limits<std::uintmax_t>::max()) &&
((asBigUnsigned(iter->m_max) + 1U) < asBigUnsigned(nextIter->m_min))) {
break;
}

assert(asBigUnsigned(iter->m_min) <= asBigUnsigned(nextIter->m_min));
nextIter->m_deprecatedSince = 0U; // invalidate next range
iter->m_max =
static_cast<decltype(iter->m_max)>(
std::max(asBigUnsigned(iter->m_max), asBigUnsigned(nextIter->m_max)));
}
else {
if ((iter->m_max < std::numeric_limits<decltype(iter->m_max)>::max()) &&
((iter->m_max + 1) < nextIter->m_min)) {
break;
}

assert(iter->m_min <= nextIter->m_min);
nextIter->m_deprecatedSince = 0U; // invalidate next range
iter->m_max = std::max(iter->m_max, nextIter->m_max);
assert(iter->m_min <= nextIter->m_min);
nextIter->m_deprecatedSince = 0U; // invalidate next range
iter->m_max = std::max(iter->m_max, nextIter->m_max);
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion app/commsdsl2comms/src/CommsGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ namespace util = commsdsl::gen::util;
namespace commsdsl2comms
{

const std::string MinCommsVersion("5.2.3");
const std::string MinCommsVersion("5.2.5");

const std::string& CommsGenerator::commsFileGeneratedComment()
{
Expand Down
Loading

0 comments on commit 45ee0d3

Please sign in to comment.