From ffcfdb10ca453a40e4f2d833a7a12fec3fa96607 Mon Sep 17 00:00:00 2001 From: Fedor Chelnokov Date: Wed, 22 Oct 2025 18:07:35 +0300 Subject: [PATCH 01/12] build-test-linux-vcpkg.yml switches to GCC14 --- .github/workflows/build-test-linux-vcpkg.yml | 24 +++++++------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index b5113df8a390..f8ae60ac62ac 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -43,7 +43,7 @@ jobs: matrix: config: [Debug, Release] arch: [x64, arm64] - compiler: [Clang 19, GCC 11] + compiler: [Clang 19, GCC 14] full_config_build: - ${{ fromJSON( inputs.full_config_build ) }} exclude: @@ -51,25 +51,25 @@ jobs: - full_config_build: false compiler: Clang 19 config: Debug - # Do not run Release GCC 11 build on every commit (but only once a day) + # Do not run Release GCC 14 build on every commit (but only once a day) - full_config_build: false - compiler: GCC 11 + compiler: GCC 14 config: Release include: - compiler: Clang 19 cxx-compiler: /usr/bin/clang++-19 c-compiler: /usr/bin/clang-19 cxx-standard: 23 - - compiler: GCC 11 - cxx-compiler: /opt/rh/gcc-toolset-11/root/usr/bin/g++ - c-compiler: /opt/rh/gcc-toolset-11/root/usr/bin/gcc - cxx-standard: 20 + - compiler: GCC 14 + cxx-compiler: /usr/bin/g++-14 + c-compiler: /usr/bin/gcc-14 + cxx-standard: 23 - arch: x64 os: ubuntu-latest - arch: arm64 os: ubuntu-24.04-arm - arch: arm64 - compiler: GCC 11 + compiler: GCC 14 skip_mrbind: true # GCC + ARM64 build has unresolved problems permissions: id-token: write # This is required for requesting the JWT @@ -82,14 +82,6 @@ jobs: AWS_EC2_METADATA_DISABLED: true steps: - - name: Enable GCC 11 toolset - run: | - source /opt/rh/gcc-toolset-11/enable - for VAR in PATH ; do - echo "${VAR}=${!VAR}" >> $GITHUB_ENV - echo "${VAR}=${!VAR}" - done - - name: Checkout uses: actions/checkout@v5 From 083b2e0dda1a99b86ca4d3168fa9c196812def95 Mon Sep 17 00:00:00 2001 From: Fedor Chelnokov Date: Tue, 14 Apr 2026 17:55:10 +0300 Subject: [PATCH 02/12] install GCC 14 --- .github/workflows/build-test-linux-vcpkg.yml | 12 ++++++++++-- docker/rockylinux8-vcpkgDockerfile | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 09ebffcc8ca4..2a18e1378315 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -65,8 +65,8 @@ jobs: c-compiler: /usr/bin/clang-20 cxx-standard: 23 - compiler: GCC 14 - cxx-compiler: /usr/bin/g++-14 - c-compiler: /usr/bin/gcc-14 + cxx-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/g++-14 + c-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/gcc-14 cxx-standard: 23 - arch: x64 os: ubuntu-latest @@ -83,6 +83,14 @@ jobs: AWS_EC2_METADATA_DISABLED: true steps: + - name: Enable GCC 14 toolset + run: | + source /opt/rh/gcc-toolset-14/enable + for VAR in PATH ; do + echo "${VAR}=${!VAR}" >> $GITHUB_ENV + echo "${VAR}=${!VAR}" + done + - name: Checkout uses: actions/checkout@v6 diff --git a/docker/rockylinux8-vcpkgDockerfile b/docker/rockylinux8-vcpkgDockerfile index bc6e071c9c72..5b3edf098dab 100644 --- a/docker/rockylinux8-vcpkgDockerfile +++ b/docker/rockylinux8-vcpkgDockerfile @@ -7,7 +7,7 @@ FROM rockylinux:8 AS build RUN echo "install_weak_deps=false" >> /etc/dnf/dnf.conf && \ dnf -y install epel-release && \ dnf -y install --enablerepo powertools \ - git cmake gcc-toolset-11 ninja-build clang-devel \ + git cmake gcc-toolset-14 ninja-build clang-devel \ $(: vcpkg requirements ) \ curl zip unzip tar \ $(: vcpkg package requirements ) \ @@ -46,7 +46,7 @@ COPY thirdparty/vcpkg/triplets MeshLib/triplets ARG VCPKG_TRIPLET ENV VCPKG_TRIPLET=$VCPKG_TRIPLET -RUN source /opt/rh/gcc-toolset-11/enable && \ +RUN source /opt/rh/gcc-toolset-14/enable && \ source /opt/autoconf27/enable && \ source /root/venv/bin/activate && \ ./vcpkg install --host-triplet=${VCPKG_TRIPLET} --overlay-triplets=MeshLib/triplets --overlay-ports=MeshLib/ports $(cat MeshLib/requirements.txt | tr '\n' ' ') @@ -66,7 +66,7 @@ ENV VCPKG_TRIPLET=$VCPKG_TRIPLET RUN echo "install_weak_deps=false" >> /etc/dnf/dnf.conf && \ dnf -y install --enablerepo powertools \ - git cmake gcc-toolset-11 ninja-build clang-devel \ + git cmake gcc-toolset-14 ninja-build clang-devel \ $(: vcpkg requirements ) \ curl zip unzip tar \ $(: vcpkg package requirements ) \ From 1af47c6bb50ee7505922ff0052fb2d2eb8a9b03b Mon Sep 17 00:00:00 2001 From: Fedor Chelnokov Date: Tue, 14 Apr 2026 19:54:48 +0300 Subject: [PATCH 03/12] remove -14 suffix --- .github/workflows/build-test-linux-vcpkg.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 2a18e1378315..49cd85f6492b 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -65,8 +65,8 @@ jobs: c-compiler: /usr/bin/clang-20 cxx-standard: 23 - compiler: GCC 14 - cxx-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/g++-14 - c-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/gcc-14 + cxx-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/g++ + c-compiler: /opt/rh/gcc-toolset-14/root/usr/bin/gcc cxx-standard: 23 - arch: x64 os: ubuntu-latest @@ -150,7 +150,7 @@ jobs: -DMR_PLATFORM=Linux_vcpkg -DMR_CXX_STANDARD=${{ matrix.cxx-standard }} -DMR_PCH_USE_EXTRA_HEADERS=ON - -DCMAKE_CUDA_HOST_COMPILER=/opt/rh/gcc-toolset-11/root/usr/bin/g++ + -DCMAKE_CUDA_HOST_COMPILER=/opt/rh/gcc-toolset-14/root/usr/bin/g++ -DMESHLIB_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c] }} -DMRVIEWER_NO_GTK=ON -DMRVIEWER_WITH_BUNDLED_CURL=ON From 2410fe7f88db80d4d72ede4da153d8aad8d9ea56 Mon Sep 17 00:00:00 2001 From: Fedor Chelnokov Date: Tue, 14 Apr 2026 22:35:35 +0300 Subject: [PATCH 04/12] cuda:12.8.0 --- docker/rockylinux8-vcpkgDockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rockylinux8-vcpkgDockerfile b/docker/rockylinux8-vcpkgDockerfile index 5b3edf098dab..7d2e8aece101 100644 --- a/docker/rockylinux8-vcpkgDockerfile +++ b/docker/rockylinux8-vcpkgDockerfile @@ -53,7 +53,7 @@ RUN source /opt/rh/gcc-toolset-14/enable && \ RUN ./vcpkg export --host-triplet=${VCPKG_TRIPLET} --overlay-triplets=MeshLib/triplets --x-all-installed --raw --output=vcpkg --output-dir=/opt -FROM nvidia/cuda:12.0.1-devel-rockylinux8 AS production +FROM nvidia/cuda:12.8.0-devel-rockylinux8 AS production COPY --from=build /opt/vcpkg /opt/vcpkg From 5c4571e522d41c4329b9146f3521c2a5904ae425 Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Wed, 15 Apr 2026 05:51:23 -0500 Subject: [PATCH 05/12] Try dumping the offending C file. --- .github/workflows/build-test-linux-vcpkg.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 49cd85f6492b..59e54bf4be0d 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -139,7 +139,9 @@ jobs: run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshlib CXX_FOR_BINDINGS=/usr/bin/clang++ - name: Build - run: ./scripts/build_source.sh + run: \ + cat /__w/MeshLib/MeshLib/source/MeshLibC2/include/MRCMesh/MRObjectsAccess.h + ./scripts/build_source.sh env: MESHLIB_BUILD_RELEASE: ${{ fromJSON('["OFF", "ON"]')[matrix.config == 'Release'] }} MESHLIB_BUILD_DEBUG: ${{ fromJSON('["OFF", "ON"]')[matrix.config == 'Debug'] }} From 248e2b0bf796f20d971555e464bb19099a96876a Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 03:18:21 -0500 Subject: [PATCH 06/12] Try again. --- .github/workflows/build-test-linux-vcpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 59e54bf4be0d..54720b9c6e32 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -139,7 +139,7 @@ jobs: run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshlib CXX_FOR_BINDINGS=/usr/bin/clang++ - name: Build - run: \ + run: cat /__w/MeshLib/MeshLib/source/MeshLibC2/include/MRCMesh/MRObjectsAccess.h ./scripts/build_source.sh env: From 1abb389f6098bbb681c78017f72a6bfada245e0b Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 05:18:13 -0500 Subject: [PATCH 07/12] Again. --- .github/workflows/build-test-linux-vcpkg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 54720b9c6e32..8a711f581d48 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -139,8 +139,8 @@ jobs: run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshlib CXX_FOR_BINDINGS=/usr/bin/clang++ - name: Build - run: - cat /__w/MeshLib/MeshLib/source/MeshLibC2/include/MRCMesh/MRObjectsAccess.h + run: | + jq '.. | select(.name? == "ObjectSelectivityType")' /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json ./scripts/build_source.sh env: MESHLIB_BUILD_RELEASE: ${{ fromJSON('["OFF", "ON"]')[matrix.config == 'Release'] }} From 7c44bb62b683eba7e53ddd1af1bcb9a2252df520 Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 05:30:46 -0500 Subject: [PATCH 08/12] Try again. --- .github/workflows/build-test-linux-vcpkg.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 8a711f581d48..abd80ef22548 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -140,6 +140,7 @@ jobs: - name: Build run: | + sudo apt install jq jq '.. | select(.name? == "ObjectSelectivityType")' /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json ./scripts/build_source.sh env: From d6ea0b2e920f0d95f9fc1fde2af309b43b68173f Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 05:41:23 -0500 Subject: [PATCH 09/12] Without sudo? --- .github/workflows/build-test-linux-vcpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index abd80ef22548..8891378ab73b 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -140,7 +140,7 @@ jobs: - name: Build run: | - sudo apt install jq + apt install jq jq '.. | select(.name? == "ObjectSelectivityType")' /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json ./scripts/build_source.sh env: From 1ac24dd9ed42e82a44762b432cdbaad7e6286b7d Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 05:50:40 -0500 Subject: [PATCH 10/12] Wrong package manager. --- .github/workflows/build-test-linux-vcpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 8891378ab73b..49d42fbb1300 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -140,7 +140,7 @@ jobs: - name: Build run: | - apt install jq + dnf -y install jq jq '.. | select(.name? == "ObjectSelectivityType")' /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json ./scripts/build_source.sh env: From a73c739674f47a9a2951e1a240eddf33305a9c0f Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 06:18:13 -0500 Subject: [PATCH 11/12] Try uploading the json. --- .github/workflows/build-test-linux-vcpkg.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index 49d42fbb1300..e7c9f0951f94 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -138,6 +138,12 @@ jobs: CXX: ${{ matrix.cxx-compiler }} run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshlib CXX_FOR_BINDINGS=/usr/bin/clang++ + - name: upload temprary data + uses: actions/upload-artifact@v7 + with: + name: mrbind_parse_tree_${{ matrix.arch }}_${{matrix.config}}_${{matrix.compiler}}.json + path: /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json + - name: Build run: | dnf -y install jq From 4497f1d0d961f18f643d4596ec730a34fc958f91 Mon Sep 17 00:00:00 2001 From: Egor Mikhaylov Date: Thu, 16 Apr 2026 06:31:05 -0500 Subject: [PATCH 12/12] Try grepping for the definition. --- .github/workflows/build-test-linux-vcpkg.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/build-test-linux-vcpkg.yml b/.github/workflows/build-test-linux-vcpkg.yml index e7c9f0951f94..5a748399a0dc 100644 --- a/.github/workflows/build-test-linux-vcpkg.yml +++ b/.github/workflows/build-test-linux-vcpkg.yml @@ -138,16 +138,9 @@ jobs: CXX: ${{ matrix.cxx-compiler }} run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshlib CXX_FOR_BINDINGS=/usr/bin/clang++ - - name: upload temprary data - uses: actions/upload-artifact@v7 - with: - name: mrbind_parse_tree_${{ matrix.arch }}_${{matrix.config}}_${{matrix.compiler}}.json - path: /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json - - name: Build run: | - dnf -y install jq - jq '.. | select(.name? == "ObjectSelectivityType")' /__w/MeshLib/MeshLib/source/MeshLibC2/temp/meshlib.generated.json + grep -RInP '(typedef enum|enum //) .*ObjectSelectivity' /__w/MeshLib/MeshLib/source/MeshLibC2 ./scripts/build_source.sh env: MESHLIB_BUILD_RELEASE: ${{ fromJSON('["OFF", "ON"]')[matrix.config == 'Release'] }}