Skip to content

Commit 8e13d08

Browse files
committed
Merge branch 'dev' into meshsdk
2 parents 7482fdb + af98316 commit 8e13d08

File tree

201 files changed

+4349
-2492
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

201 files changed

+4349
-2492
lines changed

.github/actions/collect-artifact-stats/action.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ inputs:
44
artifact_path:
55
required: true
66
type: string
7+
artifact_glob:
8+
required: true
9+
type: string
710
stats_file_suffix:
811
required: false
912
type: string
@@ -19,8 +22,8 @@ runs:
1922
shell: python3 collect_artifact_stats.py {0}
2023
working-directory: ${{ github.action_path }}/../../../scripts/devops
2124
env:
22-
ARTIFACT_PATH: ../..
23-
ARTIFACT_GLOB: ${{ inputs.artifact_path }}
25+
ARTIFACT_PATH: ${{ inputs.artifact_path }}
26+
ARTIFACT_GLOB: ${{ inputs.artifact_glob }}
2427
STATS_FILE: "${{ runner.temp }}/ArtifactStats${{ inputs.stats_file_suffix }}.json"
2528
run: ""
2629

.github/workflows/build-test-distribute.yml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
internal_build: ${{ needs.config.outputs.internal_build == 'true' }}
6868
upload_artifacts: ${{ needs.config.outputs.upload_artifacts == 'true' || needs.config.outputs.tag-build-release-windows == 'true' }}
6969
upload_test_artifacts: ${{ needs.config.outputs.upload_test_artifacts == 'true' }}
70-
nuget_build: ${{ needs.config.outputs.build_enable_ubuntu_x64 == 'true' && needs.config.outputs.upload_artifacts == 'true' }}
70+
nuget_build: ${{ needs.config.outputs.build_enable_linux_vcpkg == 'true' && needs.config.outputs.upload_artifacts == 'true' }}
7171
secrets: inherit
7272

7373
ubuntu-arm64-build-test:
@@ -95,7 +95,6 @@ jobs:
9595
internal_build: ${{ needs.config.outputs.internal_build == 'true' }}
9696
upload_artifacts: ${{ needs.config.outputs.upload_artifacts == 'true' }}
9797
upload_test_artifacts: ${{ needs.config.outputs.upload_test_artifacts == 'true' }}
98-
nuget_build_patch: ${{ needs.config.outputs.build_enable_windows == 'true' && needs.config.outputs.upload_artifacts == 'true'}}
9998
secrets: inherit
10099

101100
linux-vcpkg-build-test:
@@ -109,6 +108,7 @@ jobs:
109108
internal_build: ${{ needs.config.outputs.internal_build == 'true' }}
110109
upload_artifacts: ${{ needs.config.outputs.upload_artifacts == 'true' }}
111110
upload_test_artifacts: ${{ needs.config.outputs.upload_test_artifacts == 'true' }}
111+
nuget_build_patch: ${{ needs.config.outputs.build_enable_windows == 'true' && needs.config.outputs.upload_artifacts == 'true'}}
112112
secrets: inherit
113113

114114
emscripten-build-test:
@@ -144,16 +144,16 @@ jobs:
144144
secrets: inherit
145145

146146
create-nuget-package:
147-
if: ${{ needs.config.outputs.upload_artifacts == 'true' && needs.config.outputs.build_enable_windows == 'true' && needs.config.outputs.build_enable_ubuntu_x64 == 'true'}}
147+
if: ${{ needs.config.outputs.upload_artifacts == 'true' && needs.config.outputs.build_enable_windows == 'true' && needs.config.outputs.build_enable_linux_vcpkg == 'true' }}
148148
needs:
149149
- config
150150
- windows-build-test
151-
- ubuntu-x64-build-test
151+
- linux-vcpkg-build-test
152152
timeout-minutes: 20
153-
runs-on: windows-2022
153+
runs-on: windows-2025
154154
steps:
155155
- name: Checkout
156-
uses: actions/checkout@v5
156+
uses: actions/checkout@v6
157157

158158
- name: Download NuGet Windows Patch Archive
159159
uses: actions/download-artifact@v6
@@ -210,7 +210,7 @@ jobs:
210210
- macos-build-test
211211
steps:
212212
- name: Checkout
213-
uses: actions/checkout@v5
213+
uses: actions/checkout@v6
214214

215215
- name: Download All Developer Distributives
216216
uses: actions/download-artifact@v6
@@ -258,7 +258,11 @@ jobs:
258258
needs: [ config, upload-distributions ]
259259
uses: ./.github/workflows/test-distribution.yml
260260
with:
261-
release_tag: ${{ needs.config.outputs.release_tag }}
261+
release_tag: ${{ needs.config.outputs.release_tag }}
262+
test_ubuntu_x64: ${{ needs.config.outputs.build_enable_ubuntu_x64 == 'true' }}
263+
test_ubuntu_arm64: ${{ needs.config.outputs.build_enable_ubuntu_arm64 == 'true' }}
264+
test_macos: ${{ needs.config.outputs.build_enable_macos == 'true' }}
265+
test_windows: ${{ needs.config.outputs.build_enable_windows == 'true' && needs.config.outputs.build-release-win == 'true' }}
262266
secrets:
263267
GH_TOKEN: ${{ secrets.BUILD_MACHINE_TOKEN }}
264268

@@ -277,7 +281,7 @@ jobs:
277281
continue-on-error: true
278282
steps:
279283
- name: Checkout
280-
uses: actions/checkout@v5
284+
uses: actions/checkout@v6
281285

282286
- name: Download runners' system stats
283287
uses: actions/download-artifact@v6

.github/workflows/build-test-emscripten.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
fi
5353
5454
- name: Checkout
55-
uses: actions/checkout@v5
55+
uses: actions/checkout@v6
5656

5757
- name: Get AWS instance type
5858
uses: ./.github/actions/get-aws-instance-type
@@ -79,8 +79,9 @@ jobs:
7979
8080
- name: Install thirdparty libs
8181
run: |
82-
ln -s /usr/local/lib/${{ matrix.thirdparty-dir }}/lib ./lib
8382
ln -s /usr/local/lib/${{ matrix.thirdparty-dir }}/include ./include
83+
ln -s /usr/local/lib/${{ matrix.thirdparty-dir }}/lib ./lib
84+
ln -s /usr/local/lib/${{ matrix.thirdparty-dir }}/share ./share
8485
8586
- name: Build
8687
env:
@@ -141,5 +142,6 @@ jobs:
141142
continue-on-error: true
142143
uses: ./.github/actions/collect-artifact-stats
143144
with:
144-
artifact_path: meshsdk_${{ matrix.package_name }}.zip
145+
artifact_path: ${{ github.workspace }}
146+
artifact_glob: meshsdk_${{ matrix.package_name }}.zip
145147
stats_file_suffix: -${{ steps.collect-runner-stats.outputs.job_id }}

.github/workflows/build-test-linux-vcpkg.yml

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ on:
3030
default: true
3131
required: false
3232
type: boolean
33+
nuget_build_patch:
34+
default: false
35+
required: false
36+
type: boolean
3337

3438
jobs:
3539
linux-vcpkg-build-test:
@@ -68,9 +72,6 @@ jobs:
6872
os: ubuntu-latest
6973
- arch: arm64
7074
os: ubuntu-24.04-arm
71-
- arch: arm64
72-
compiler: GCC 11
73-
skip_mrbind: true # GCC + ARM64 build has unresolved problems
7475
permissions:
7576
id-token: write # This is required for requesting the JWT
7677
contents: read # This is required for actions/checkout
@@ -91,7 +92,7 @@ jobs:
9192
done
9293
9394
- name: Checkout
94-
uses: actions/checkout@v5
95+
uses: actions/checkout@v6
9596

9697
- name: Get AWS instance type
9798
uses: ./.github/actions/get-aws-instance-type
@@ -117,7 +118,7 @@ jobs:
117118
git submodule update --init --recursive --depth 1 thirdparty/imgui thirdparty/mrbind-pybind11 thirdparty/mrbind
118119
119120
- name: Install MRBind
120-
if: ${{ (inputs.mrbind || inputs.mrbind_c) && !matrix.skip_mrbind }}
121+
if: ${{ inputs.mrbind || inputs.mrbind_c }}
121122
run: scripts/mrbind/install_mrbind_rockylinux.sh
122123

123124
- name: Create virtualenv
@@ -132,7 +133,7 @@ jobs:
132133
run: python3 -m pip install -r ./requirements/python.txt
133134

134135
- name: Generate C bindings
135-
if: ${{ inputs.mrbind_c && !matrix.skip_mrbind }}
136+
if: ${{ inputs.mrbind_c }}
136137
env:
137138
CXX: ${{ matrix.cxx-compiler }}
138139
run: make -f scripts/mrbind/generate.mk -B --trace TARGET=c DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshsdk CXX_FOR_BINDINGS=/usr/bin/clang++
@@ -150,11 +151,12 @@ jobs:
150151
-DMR_CXX_STANDARD=${{ matrix.cxx-standard }}
151152
-DMR_PCH_USE_EXTRA_HEADERS=ON
152153
-DCMAKE_CUDA_HOST_COMPILER=/opt/rh/gcc-toolset-11/root/usr/bin/g++
153-
-DMESHSDK_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c && !matrix.skip_mrbind] }}
154+
-DMESHSDK_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c] }}
154155
-DMRVIEWER_NO_GTK=ON
156+
-DMRVIEWER_WITH_BUNDLED_CURL=ON
155157
156158
- name: Generate and build Python bindings
157-
if: ${{ inputs.mrbind && !matrix.skip_mrbind }}
159+
if: ${{ inputs.mrbind }}
158160
env:
159161
CXX: ${{ matrix.cxx-compiler }}
160162
run: make -f scripts/mrbind/generate.mk MODE=none -B --trace MESHSDK_SHLIB_DIR=build/${{matrix.config}}/bin CXX_FOR_BINDINGS=/usr/bin/clang++ DEPS_BASE_DIR=/opt/vcpkg/installed/${{ matrix.arch }}-linux-meshsdk
@@ -174,31 +176,30 @@ jobs:
174176
run: xvfb-run -a ./build/${{ matrix.config }}/bin/MeshViewer -hidden -noEventLoop -unloadPluginsAtEnd
175177

176178
- name: Unit Tests
177-
run: ./build/${{ matrix.config }}/bin/MRTest ${{ matrix.skip_mrbind && '--no-python-tests' || '' }}
179+
run: ./build/${{ matrix.config }}/bin/MRTest
178180

179181
- name: C Unit Tests (old bindings)
180182
run: ./build/${{ matrix.config }}/bin/MRTestC
181183

182184
- name: C Unit Tests
183-
if: ${{ inputs.mrbind_c && !matrix.skip_mrbind }}
185+
if: ${{ inputs.mrbind_c }}
184186
run: ./build/${{ matrix.config }}/bin/MRTestC2
185187

186188
- name: Python Sanity Tests
187-
if: ${{ inputs.mrbind && !matrix.skip_mrbind }}
189+
if: ${{ inputs.mrbind }}
188190
timeout-minutes: 8
189191
working-directory: ./build/${{ matrix.config }}/bin
190192
run: python3 ./../../../scripts/run_python_test_script.py -d '../test_python'
191193

192194
- name: Python Regression Tests
193-
if: ${{ inputs.internal_build && inputs.mrbind && !matrix.skip_mrbind }}
195+
if: ${{ inputs.internal_build && inputs.mrbind }}
194196
uses: ./.github/actions/python-regression-tests
195197
with:
196198
build_config: ${{ matrix.config }}
197-
mrbind: ${{ inputs.mrbind && !matrix.skip_mrbind }}
199+
mrbind: ${{ inputs.mrbind }}
198200
pytest_args: "--run-cuda=negative"
199201
smoke: ${{ !inputs.full_config_build && matrix.config == 'Debug' }}
200202
test_artifacts_path: linux-vcpkg-${{ matrix.arch }}/${{ matrix.config }}/${{ matrix.compiler }}
201-
ubuntu20_arm_workaround: ${{ inputs.mrbind && matrix.arch == 'arm64' }}
202203
upload_test_artifacts: ${{ inputs.upload_test_artifacts }}
203204

204205
- name: Create Package
@@ -250,5 +251,23 @@ jobs:
250251
continue-on-error: true
251252
uses: ./.github/actions/collect-artifact-stats
252253
with:
253-
artifact_path: meshsdk_linux-vcpkg-${{ matrix.arch }}.tar.xz
254+
artifact_path: ${{ github.workspace }}
255+
artifact_glob: meshsdk_linux-vcpkg-${{ matrix.arch }}.tar.xz
254256
stats_file_suffix: -${{ steps.collect-runner-stats.outputs.job_id }}
257+
258+
- name: Create and fix fake Wheel for NuGet
259+
if: ${{ inputs.nuget_build_patch && matrix.arch == 'x64' && matrix.compiler == 'Clang 19' && matrix.config == 'Release' }}
260+
shell: bash
261+
run: |
262+
python3 -m venv ./wheel_venv
263+
source ./wheel_venv/bin/activate
264+
python3 -m pip install auditwheel patchelf
265+
python3 ./scripts/nuget_patch/patch_library_deps.py "./build/Release/bin/libMRMeshC.so" "./patched_content/"
266+
267+
- name: Upload NuGet files to Artifacts
268+
if: ${{ inputs.nuget_build_patch && matrix.arch == 'x64' && matrix.compiler == 'Clang 19' && matrix.config == 'Release' }}
269+
uses: actions/upload-artifact@v5
270+
with:
271+
name: DotNetPatchArchiveLinux-x64
272+
path: ./patched_content/*
273+
retention-days: 1

.github/workflows/build-test-macos.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
contents: read # This is required for actions/checkout
6969
steps:
7070
- name: Checkout
71-
uses: actions/checkout@v5
71+
uses: actions/checkout@v6
7272
with:
7373
submodules: true
7474

@@ -249,5 +249,6 @@ jobs:
249249
continue-on-error: true
250250
uses: ./.github/actions/collect-artifact-stats
251251
with:
252-
artifact_path: meshsdk_${{matrix.os}}.pkg
252+
artifact_path: ${{ github.workspace }}
253+
artifact_glob: meshsdk_${{matrix.os}}.pkg
253254
stats_file_suffix: -${{ steps.collect-runner-stats.outputs.job_id }}

.github/workflows/build-test-ubuntu-arm64.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and test on arm64 ubuntu20 and ubuntu22
1+
name: Build and test Ubuntu arm64
22

33
on:
44
workflow_call:
@@ -41,14 +41,9 @@ jobs:
4141
strategy:
4242
fail-fast: false
4343
matrix:
44-
os: [ ubuntu20, ubuntu22, ubuntu24 ]
44+
os: [ ubuntu22, ubuntu24 ]
4545
config: [ Release ]
4646
include:
47-
- os: ubuntu20
48-
compiler: clang
49-
cxx-compiler: /usr/bin/clang++-11
50-
c-compiler: /usr/bin/clang-11
51-
cxx-standard: 20
5247
- os: ubuntu22
5348
compiler: clang
5449
cxx-compiler: /usr/bin/clang++-14
@@ -75,7 +70,7 @@ jobs:
7570
fi
7671
7772
- name: Checkout
78-
uses: actions/checkout@v5
73+
uses: actions/checkout@v6
7974

8075
- name: Get AWS instance type
8176
uses: ./.github/actions/get-aws-instance-type
@@ -98,15 +93,15 @@ jobs:
9893
# related issue: https://github.com/actions/checkout/issues/1779
9994
export HOME=${RUNNER_TEMP}
10095
git config --global --add safe.directory '*'
101-
git submodule update --init --recursive --depth 1 thirdparty/imgui thirdparty/parallel-hashmap thirdparty/mrbind-pybind11 thirdparty/mrbind
96+
git submodule update --init --recursive --depth 1 thirdparty/imgui thirdparty/eigen thirdparty/parallel-hashmap thirdparty/mrbind-pybind11 thirdparty/mrbind
10297
10398
- name: Install thirdparty libs
10499
run: |
105100
ln -s /usr/local/lib/meshsdk-thirdparty-lib/lib ./lib
106101
ln -s /usr/local/lib/meshsdk-thirdparty-lib/include ./include
107102
108103
- name: Install MRBind
109-
if: ${{ ( inputs.mrbind && matrix.os != 'ubuntu20' ) || inputs.mrbind_c }}
104+
if: ${{ inputs.mrbind || inputs.mrbind_c }}
110105
run: scripts/mrbind/install_mrbind_ubuntu.sh
111106

112107
- name: Create virtualenv
@@ -145,7 +140,7 @@ jobs:
145140
MR_CMAKE_OPTIONS: >
146141
-DMR_CXX_STANDARD=${{ matrix.cxx-standard }}
147142
-DMR_PCH_USE_EXTRA_HEADERS=ON
148-
-DMESHSDK_BUILD_MRMESH_PY_LEGACY=${{ fromJSON('["ON", "OFF"]')[inputs.mrbind && matrix.os != 'ubuntu20'] }}
143+
-DMESHSDK_BUILD_MRMESH_PY_LEGACY=${{ fromJSON('["ON", "OFF"]')[inputs.mrbind] }}
149144
-DMESHSDK_BUILD_GENERATED_C_BINDINGS=${{ fromJSON('["OFF", "ON"]')[inputs.mrbind_c] }}
150145
-DMRVIEWER_NO_XDG_DESKTOP_PORTAL=ON
151146
@@ -261,5 +256,6 @@ jobs:
261256
continue-on-error: true
262257
uses: ./.github/actions/collect-artifact-stats
263258
with:
264-
artifact_path: meshsdk_${{matrix.os}}-arm64-dev.deb
259+
artifact_path: ${{ github.workspace }}
260+
artifact_glob: meshsdk_${{matrix.os}}-arm64-dev.deb
265261
stats_file_suffix: -${{ steps.collect-runner-stats.outputs.job_id }}

0 commit comments

Comments
 (0)