From c92b0e589637d5c29a82f1a70c1192f80415461f Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 27 Jun 2024 09:00:03 +1000 Subject: [PATCH 1/9] Updating next release version to be v2.8.1 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 36d277c..38c7c30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ option (UBLOX_BUILD_EXAMPLES "Build examples." OFF) # COMMSDSL2SWIG_EXTRA_ARGS - Extra arguments to pass to "commsdsl2swig" # COMMSDSL2EMSCRIPTEN_EXTRA_ARGS - Extra arguments to pass to "commsdsl2emscripten" -set (UBLOX_VERSION "2.8") +set (UBLOX_VERSION "2.8.1") set (UBLOX_MIN_COMMSDSL_VERSION "6.3.3") set (EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/externals") From 608e5ca6a7278e346503a41299483787ef91c6b8 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 19 Sep 2024 08:56:16 +1000 Subject: [PATCH 2/9] Requiring commsdsl v6.3.4 --- .github/workflows/actions_build.yml | 6 +++--- CMakeLists.txt | 2 +- script/full_debug_build_basic_clang.sh | 9 +++++++-- script/full_debug_build_basic_gcc.sh | 9 +++++++-- script/full_debug_build_clang.sh | 9 +++++++-- script/full_debug_build_gcc.sh | 9 +++++++-- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 9a253fa..8785424 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -3,9 +3,9 @@ name: Github Actions Build on: [push] env: - COMMS_TAG: v5.2.5 - COMMSDSL_TAG: v6.3.3 - CC_TOOLS_QT_TAG: v5.3.1 + COMMS_TAG: develop + COMMSDSL_TAG: develop + CC_TOOLS_QT_TAG: develop jobs: build_gcc_old_ubuntu_20_04: diff --git a/CMakeLists.txt b/CMakeLists.txt index 38c7c30..4039dc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ option (UBLOX_BUILD_EXAMPLES "Build examples." OFF) # COMMSDSL2EMSCRIPTEN_EXTRA_ARGS - Extra arguments to pass to "commsdsl2emscripten" set (UBLOX_VERSION "2.8.1") -set (UBLOX_MIN_COMMSDSL_VERSION "6.3.3") +set (UBLOX_MIN_COMMSDSL_VERSION "6.3.4") set (EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/externals") diff --git a/script/full_debug_build_basic_clang.sh b/script/full_debug_build_basic_clang.sh index b62fa9b..0ac80bd 100755 --- a/script/full_debug_build_basic_clang.sh +++ b/script/full_debug_build_basic_clang.sh @@ -1,7 +1,12 @@ #!/bin/bash -export CC=clang -export CXX=clang++ +if [ -z "${CC}" ]; then + export CC=clang +fi + +if [ -z "${CXX}" ]; then + export CXX=clang++ +fi SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ${SCRIPT_DIR}/full_debug_build_basic.sh "$@" diff --git a/script/full_debug_build_basic_gcc.sh b/script/full_debug_build_basic_gcc.sh index d941a52..3980385 100755 --- a/script/full_debug_build_basic_gcc.sh +++ b/script/full_debug_build_basic_gcc.sh @@ -1,7 +1,12 @@ #!/bin/bash -export CC=gcc -export CXX=g++++ +if [ -z "${CC}" ]; then + export CC=gcc +fi + +if [ -z "${CXX}" ]; then + export CXX=g++ +fi SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ${SCRIPT_DIR}/full_debug_build_basic.sh "$@" diff --git a/script/full_debug_build_clang.sh b/script/full_debug_build_clang.sh index fc80878..36acf16 100755 --- a/script/full_debug_build_clang.sh +++ b/script/full_debug_build_clang.sh @@ -1,7 +1,12 @@ #!/bin/bash -export CC=clang -export CXX=clang++ +if [ -z "${CC}" ]; then + export CC=clang +fi + +if [ -z "${CXX}" ]; then + export CXX=clang++ +fi SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ${SCRIPT_DIR}/full_debug_build.sh "$@" diff --git a/script/full_debug_build_gcc.sh b/script/full_debug_build_gcc.sh index 1019134..be66c32 100755 --- a/script/full_debug_build_gcc.sh +++ b/script/full_debug_build_gcc.sh @@ -1,7 +1,12 @@ #!/bin/bash -export CC=gcc -export CXX=g++ +if [ -z "${CC}" ]; then + export CC=gcc +fi + +if [ -z "${CXX}" ]; then + export CXX=g++ +fi SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ${SCRIPT_DIR}/full_debug_build.sh "$@" From a63da18d129533b5cd864e08fa3be003ae4d19df Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 19 Sep 2024 09:03:18 +1000 Subject: [PATCH 3/9] Added ubuntu-24.04 runner with C++23 build to github actions. --- .github/workflows/actions_build.yml | 131 ++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 8785424..4aebc2d 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -199,6 +199,70 @@ jobs: run: cmake --build . --config ${{matrix.type}} --target install env: VERBOSE: 1 + + 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 libboost-all-dev libxml2-dev gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} \ + python3 libpython3-dev swig default-jdk default-jre emscripten + + - 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}} + COMMSDSL_TAG: ${{env.COMMSDSL_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 -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \ + -DUBLOX_GEN_PROTOCOL=ON -DUBLOX_GEN_TEST=ON -DUBLOX_GEN_TOOLS=ON -DUBLOX_BUILD_TOOLS=${{env.BUILD_TOOLS}} \ + -DUBLOX_GEN_SWIG=ON -DUBLOX_GEN_EMSCRIPTEN=ON -DUBLOX_BUILD_EXAMPLES=ON -DUBLOX_TOOLS_QT_VER=${{matrix.qt_ver}} \ + -DUBLOX_SCHEMA_FILES_LIST_FILE=$GITHUB_WORKSPACE/basic_msgs.txt + env: + CC: gcc-${{matrix.cc_ver}} + CXX: g++-${{matrix.cc_ver}} + BUILD_TOOLS: "${{ 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 build_clang_old_ubuntu_20_04: runs-on: ubuntu-20.04 @@ -393,6 +457,73 @@ jobs: env: VERBOSE: 1 + 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 libboost-all-dev libxml2-dev clang-${{matrix.cc_ver}} \ + python3 libpython3-dev swig default-jdk default-jre emscripten + + - 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}} + COMMSDSL_TAG: ${{env.COMMSDSL_TAG}} + CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} + CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} + CC_TOOLS_QT_SKIP: "${{ (matrix.cpp < 17) && '1' || '0' }}" + + - 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 -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \ + -DUBLOX_GEN_PROTOCOL=ON -DUBLOX_GEN_TEST=ON -DUBLOX_GEN_TOOLS=ON -DUBLOX_BUILD_TOOLS=${{env.BUILD_TOOLS}} \ + -DUBLOX_GEN_SWIG=ON -DUBLOX_GEN_EMSCRIPTEN=ON -DUBLOX_BUILD_EXAMPLES=ON -DUBLOX_TOOLS_QT_VER=${{matrix.qt_ver}} \ + -DUBLOX_SCHEMA_FILES_LIST_FILE=$GITHUB_WORKSPACE/basic_msgs.txt + env: + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + BUILD_TOOLS: "${{ (matrix.cpp < 17) && 'OFF' || 'ON' }}" + + - name: Build Target + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + build_msvc_2019: runs-on: windows-2019 strategy: From e08458be2ef249a9926cd9e681186b2f60595a9d Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 19 Sep 2024 09:06:19 +1000 Subject: [PATCH 4/9] Supporting CMP0167 boost finding cmake policy. --- .github/workflows/actions_build.yml | 8 +++++--- CMakeLists.txt | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 4aebc2d..09abb60 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -583,7 +583,8 @@ jobs: 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}}" -DBoost_USE_STATIC_LIBS=ON ^ + -DCMAKE_PREFIX_PATH="${{runner.workspace}}/build/install;${{env.QTDIR}}" ^ + -DCMAKE_POLICY_DEFAULT_CMP0167=OLD -DBoost_USE_STATIC_LIBS=ON ^ -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DUBLOX_TOOLS_QT_VER=${{matrix.qt_ver}} ^ -DUBLOX_GEN_PROTOCOL=ON -DUBLOX_GEN_TEST=ON -DUBLOX_GEN_TOOLS=ON -DUBLOX_BUILD_TOOLS=${{env.BUILD_TOOLS}} ^ -DUBLOX_BUILD_EXAMPLES=ON ^ @@ -617,7 +618,7 @@ jobs: if: matrix.arch == 'x64' shell: cmd run: | - choco install boost-msvc-14.3 + choco install boost-msvc-14.3 --version=1.85.0 - name: Prepare externals shell: cmd @@ -640,7 +641,8 @@ jobs: 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" -DBoost_USE_STATIC_LIBS=ON ^ + -DCMAKE_PREFIX_PATH="${{runner.workspace}}/build/install" ^ + -DCMAKE_POLICY_DEFAULT_CMP0167=OLD -DBoost_USE_STATIC_LIBS=ON ^ -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DUBLOX_TOOLS_QT_VER=${{matrix.qt_ver}} ^ -DUBLOX_GEN_PROTOCOL=ON -DUBLOX_GEN_TEST=ON -DUBLOX_BUILD_EXAMPLES=${{env.HAS_BOOST}} ^ -DUBLOX_SCHEMA_FILES_LIST_FILE=%GITHUB_WORKSPACE%/basic_msgs.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4039dc4..0a5ed34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,12 @@ option (UBLOX_BUILD_EXAMPLES "Build examples." OFF) set (UBLOX_VERSION "2.8.1") set (UBLOX_MIN_COMMSDSL_VERSION "6.3.4") +if (("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.30") AND + (NOT DEFINED CMAKE_POLICY_DEFAULT_CMP0167)) + # Find boost cmake configuration from the boost installation + cmake_policy(SET CMP0167 NEW) +endif () + set (EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/externals") set (PROT_OUTPUT_TGT "prot_output_tgt") From a3987156ebc14b74b3e374bec9199d2a36df7d6e Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Mon, 23 Sep 2024 11:36:15 +1000 Subject: [PATCH 5/9] Updating next version to be v2.9 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a5ed34..629b56b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ option (UBLOX_BUILD_EXAMPLES "Build examples." OFF) # COMMSDSL2SWIG_EXTRA_ARGS - Extra arguments to pass to "commsdsl2swig" # COMMSDSL2EMSCRIPTEN_EXTRA_ARGS - Extra arguments to pass to "commsdsl2emscripten" -set (UBLOX_VERSION "2.8.1") +set (UBLOX_VERSION "2.9") set (UBLOX_MIN_COMMSDSL_VERSION "6.3.4") if (("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.30") AND From 2fe6901a03b33a9505d4a22e876df5581ef3e4bb Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Wed, 25 Sep 2024 14:29:37 +1000 Subject: [PATCH 6/9] Using specified C++ standard to build generated projects. --- CMakeLists.txt | 10 ++++---- script/full_build.sh | 39 ++++++++++++++++++++++++++++++++ script/full_debug_build.sh | 25 +------------------- script/full_release_build.sh | 11 +++++++++ script/full_release_build_gcc.sh | 13 +++++++++++ 5 files changed, 69 insertions(+), 29 deletions(-) create mode 100755 script/full_build.sh create mode 100755 script/full_release_build.sh create mode 100755 script/full_release_build_gcc.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 629b56b..144dace 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -309,7 +309,7 @@ if (UBLOX_GEN_PROTOCOL) -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DOPT_REQUIRE_COMMS_LIB=OFF + -DOPT_REQUIRE_COMMS_LIB=OFF -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ) @@ -382,7 +382,7 @@ if (UBLOX_GEN_TEST) -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_PREFIX_PATH=${combined_prefix_path_str} -DOPT_TEST_OPTIONS=cc_ublox::options::AllMessagesDynMemMsgFactoryDefaultOptions -DOPT_USE_CCACHE=${UBLOX_USE_CCACHE} @@ -446,7 +446,7 @@ if (UBLOX_GEN_TOOLS) -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_PREFIX_PATH=${combined_prefix_path_str} -DOPT_QT_MAJOR_VERSION=${UBLOX_TOOLS_QT_VER} -DOPT_USE_CCACHE=${UBLOX_USE_CCACHE} @@ -510,7 +510,7 @@ if (UBLOX_GEN_SWIG) -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_PREFIX_PATH=${combined_prefix_path_str} -DOPT_SWIG_LANGUAGES=${combined_languages_str} -DOPT_USE_CCACHE=${UBLOX_USE_CCACHE} @@ -581,7 +581,7 @@ if (UBLOX_GEN_EMSCRIPTEN) CMAKE_ARGS -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DOPT_MODULARIZE=ON -DOPT_EXTRA_INCLUDE_DIRS=${extra_includes_path_str} -DOPT_USE_CCACHE=${UBLOX_USE_CCACHE} diff --git a/script/full_build.sh b/script/full_build.sh new file mode 100755 index 0000000..3f52642 --- /dev/null +++ b/script/full_build.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +if [ -z "${CC}" -o -z "$CXX" ]; then + echo "ERROR: Compilers are not provided" + exit 1 +fi + +if [ -z "${COMMON_BUILD_TYPE}" ]; then + echo "ERROR: Build type is not provided" + exit 1 +fi + + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ROOT_DIR=$( dirname ${SCRIPT_DIR} ) + +if [ -z ${BUILD_DIR} ]; then + export BUILD_DIR="${ROOT_DIR}/build.full.${CC}.${COMMON_BUILD_TYPE}" +fi + +export COMMON_INSTALL_DIR=${BUILD_DIR}/install +export EXTERNALS_DIR=${ROOT_DIR}/externals +export COMMON_USE_CCACHE=ON +mkdir -p ${BUILD_DIR} + +${SCRIPT_DIR}/prepare_externals.sh + +cd ${BUILD_DIR} +cmake .. -DCMAKE_INSTALL_PREFIX=${COMMON_INSTALL_DIR} \ + -DCMAKE_BUILD_TYPE=${COMMON_BUILD_TYPE} -DUBLOX_GEN_TEST=ON \ + -DUBLOX_GEN_TOOLS=ON -DUBLOX_GEN_SWIG=OFF -DUBLOX_GEN_EMSCRIPTEN=OFF \ + -DUBLOX_BUILD_EXAMPLES=ON -DUBLOX_USE_CCACHE=ON "$@" + +procs=$(nproc) +if [ -n "${procs}" ]; then + procs_param="--parallel ${procs}" +fi + +cmake --build ${BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param} diff --git a/script/full_debug_build.sh b/script/full_debug_build.sh index f2a61da..5459a67 100755 --- a/script/full_debug_build.sh +++ b/script/full_debug_build.sh @@ -6,29 +6,6 @@ if [ -z "${CC}" -o -z "$CXX" ]; then fi SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -ROOT_DIR=$( dirname ${SCRIPT_DIR} ) - -if [ -z ${BUILD_DIR} ]; then - export BUILD_DIR="${ROOT_DIR}/build.full.${CC}" -fi - -export COMMON_INSTALL_DIR=${BUILD_DIR}/install export COMMON_BUILD_TYPE=Debug -export EXTERNALS_DIR=${ROOT_DIR}/externals -export COMMON_USE_CCACHE=ON -mkdir -p ${BUILD_DIR} - -${SCRIPT_DIR}/prepare_externals.sh - -cd ${BUILD_DIR} -cmake .. -DCMAKE_INSTALL_PREFIX=${COMMON_INSTALL_DIR} \ - -DCMAKE_BUILD_TYPE=Debug -DUBLOX_GEN_TEST=ON \ - -DUBLOX_GEN_TOOLS=ON -DUBLOX_GEN_SWIG=OFF -DUBLOX_GEN_EMSCRIPTEN=OFF \ - -DUBLOX_BUILD_EXAMPLES=ON -DUBLOX_USE_CCACHE=ON "$@" - -procs=$(nproc) -if [ -n "${procs}" ]; then - procs_param="--parallel ${procs}" -fi +exec ${SCRIPT_DIR}/full_build.sh "$@" -cmake --build ${BUILD_DIR} --config ${COMMON_BUILD_TYPE} --target install ${procs_param} diff --git a/script/full_release_build.sh b/script/full_release_build.sh new file mode 100755 index 0000000..1532649 --- /dev/null +++ b/script/full_release_build.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ -z "${CC}" -o -z "$CXX" ]; then + echo "ERROR: Compilers are not provided" + exit 1 +fi + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +export COMMON_BUILD_TYPE=Release +exec ${SCRIPT_DIR}/full_build.sh "$@" + diff --git a/script/full_release_build_gcc.sh b/script/full_release_build_gcc.sh new file mode 100755 index 0000000..2cbaab1 --- /dev/null +++ b/script/full_release_build_gcc.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ -z "${CC}" ]; then + export CC=gcc +fi + +if [ -z "${CXX}" ]; then + export CXX=g++ +fi + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +${SCRIPT_DIR}/full_release_build.sh "$@" + From 149c159f9239df0e0b9acbc1987505797d29e351 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Fri, 27 Sep 2024 13:23:37 +1000 Subject: [PATCH 7/9] Forcing usage of boost v1.85 in "windows-2019" runner of github actions. --- .github/workflows/actions_build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 09abb60..9679c3c 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -556,9 +556,10 @@ jobs: QT_VER: ${{matrix.qt_ver == '5' && '5.15.3' || '6.2.2'}} - name: Install Boost + if: matrix.arch == 'x64' shell: cmd run: | - choco install boost-msvc-14.2 + choco install boost-msvc-14.2 --version=1.85.0 - name: Prepare externals shell: cmd @@ -587,10 +588,11 @@ jobs: -DCMAKE_POLICY_DEFAULT_CMP0167=OLD -DBoost_USE_STATIC_LIBS=ON ^ -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DUBLOX_TOOLS_QT_VER=${{matrix.qt_ver}} ^ -DUBLOX_GEN_PROTOCOL=ON -DUBLOX_GEN_TEST=ON -DUBLOX_GEN_TOOLS=ON -DUBLOX_BUILD_TOOLS=${{env.BUILD_TOOLS}} ^ - -DUBLOX_BUILD_EXAMPLES=ON ^ + -DUBLOX_BUILD_EXAMPLES=${{env.HAS_BOOST}} ^ -DUBLOX_SCHEMA_FILES_LIST_FILE=%GITHUB_WORKSPACE%/basic_msgs.txt env: BUILD_TOOLS: "${{ matrix.cpp >= 17 && matrix.arch == 'x64' && 'ON' || 'OFF' }}" + HAS_BOOST: "${{ matrix.arch == 'x64' && 'ON' || 'OFF' }}" - name: Build Target working-directory: ${{runner.workspace}}/build From 0d249031a34bc043ff12b51821d90a80c22773ee Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 28 Sep 2024 14:05:58 +1000 Subject: [PATCH 8/9] Defaulting to C++17. --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 144dace..b2f9014 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,10 @@ if (("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.30") AND cmake_policy(SET CMP0167 NEW) endif () +if ("${CMAKE_CXX_STANDARD}" STREQUAL "") + set(CMAKE_CXX_STANDARD 17) +endif () + set (EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/externals") set (PROT_OUTPUT_TGT "prot_output_tgt") From 745531a77d6055a991df34f7a7c414d12d18c530 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 28 Sep 2024 14:06:42 +1000 Subject: [PATCH 9/9] Using comms v5.2.7, commsdsl v6.3.4, cc_tools_qt v5.3.3 on github actions. --- .github/workflows/actions_build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 9679c3c..cc9e668 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -3,9 +3,9 @@ name: Github Actions Build on: [push] env: - COMMS_TAG: develop - COMMSDSL_TAG: develop - CC_TOOLS_QT_TAG: develop + COMMS_TAG: v5.2.7 + COMMSDSL_TAG: v6.3.4 + CC_TOOLS_QT_TAG: v5.3.3 jobs: build_gcc_old_ubuntu_20_04: