diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 20bf94ea8..47c99ee51 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -87,3 +87,33 @@ jobs: cmake -B BUILD/RELEASE/BUILD . cmake --build BUILD/RELEASE/BUILD --config RELEASE --parallel cmake --install BUILD/RELEASE/BUILD --config RELEASE + msys2-ucrt64: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v5 + - uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: git mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja + - name: CI-Build + run: | + ./msys2-ci-build.sh + msys2-clangarm64: + runs-on: windows-11-arm + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v5 + - uses: msys2/setup-msys2@v2 + with: + msystem: CLANGARM64 + update: true + install: git mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-ninja + - name: CI-Build + run: | + ./msys2-ci-build.sh diff --git a/.github/workflows/regressions.yml b/.github/workflows/regressions.yml index c2970e0fb..810f58e2e 100644 --- a/.github/workflows/regressions.yml +++ b/.github/workflows/regressions.yml @@ -87,3 +87,33 @@ jobs: cmake -B BUILD/RELEASE/BUILD -DENABLE_REGRESSION=true . cmake --build BUILD/RELEASE/BUILD --config RELEASE --parallel cmake --install BUILD/RELEASE/BUILD --config RELEASE + msys2-ucrt64: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v5 + - uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: git mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja + - name: CI-Build + run: | + ./msys2-ci-build.sh --run-regression + msys2-clangarm64: + runs-on: windows-11-arm + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v5 + - uses: msys2/setup-msys2@v2 + with: + msystem: CLANGARM64 + update: true + install: git mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-ninja + - name: CI-Build + run: | + ./msys2-ci-build.sh --run-regression diff --git a/msys2-ci-build.sh b/msys2-ci-build.sh new file mode 100644 index 000000000..f0639bf48 --- /dev/null +++ b/msys2-ci-build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -euo pipefail + +# Set default options +BUILD_TYPE="Release" +BUILD_DIR="build" +INSTALL_DIR="$(pwd)/install" +REGRESSION_TESTS="OFF" +BUILD_SHARED_LIBS="ON" + +SYSTEMC_CI_DEFAULT_TARGET="systemc" +SYSTEMC_CI_REGRESSION_TARGET="check-tests" +SYSTEMC_CI_TARGET=${SYSTEMC_CI_DEFAULT_TARGET} + +for arg in "$@"; do + if [[ "$arg" == "--run-regression" ]]; then + REGRESSION_TESTS="ON" + SYSTEMC_CI_TARGET=${SYSTEMC_CI_REGRESSION_TARGET} + fi +done + +# Generate the project +cmake -B ${BUILD_DIR} \ + -D ENABLE_REGRESSION=${REGRESSION_TESTS} \ + -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} \ + -D CMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" + +# Build the project +cmake --build ${BUILD_DIR} --config ${BUILD_TYPE} --parallel --target ${SYSTEMC_CI_TARGET} + +# Skip installation for regressions runs +if [ "${REGRESSION_TESTS}" == "OFF" ]; then + cmake --install ${BUILD_DIR} +fi + +exit 0