Skip to content

Commit d16340c

Browse files
committed
Merge branch 'master' of https://github.com/ruyo/assimp
2 parents 25bd315 + 2420826 commit d16340c

File tree

1,631 files changed

+196156
-66121
lines changed

Some content is hidden

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

1,631 files changed

+196156
-66121
lines changed

.coveralls.yml

Lines changed: 0 additions & 2 deletions
This file was deleted.

.github/dependabot.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
version: 2
22
updates:
3-
- package-ecosystem: "github-actions"
3+
- package-ecosystem: "github-actions"
44
directory: "/"
55
schedule:
66
interval: "weekly"
7+
- package-ecosystem: "gitsubmodule"
8+
directory: "/" # the .gitmodules file must be placed at the top-level directory of a git working tree
9+
schedule:
10+
interval: "weekly"
11+
open-pull-requests-limit: 15 # Assimp has 15 dependencies

.github/workflows/ccpp.yml

Lines changed: 104 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ on:
66
pull_request:
77
branches: [ master ]
88

9+
permissions:
10+
contents: write # to fetch code (actions/checkout),and release
11+
912
jobs:
10-
job:
13+
build:
1114
name: ${{ matrix.name }}-build-and-test
1215
runs-on: ${{ matrix.os }}
1316
strategy:
1417
fail-fast: false
1518
matrix:
16-
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]
19+
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++]
1720
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
1821
include:
1922
- name: windows-latest-cl.exe
@@ -32,53 +35,29 @@ jobs:
3235
os: ubuntu-latest
3336
cxx: g++
3437
cc: gcc
35-
- name: ubuntu-gcc-hunter
36-
os: ubuntu-latest
37-
toolchain: ninja-gcc-cxx17-fpic
38-
- name: macos-clang-hunter
39-
os: macos-latest
40-
toolchain: ninja-clang-cxx17-fpic
41-
- name: windows-msvc-hunter
42-
os: windows-latest
43-
toolchain: ninja-vs-win64-cxx17
4438

4539
steps:
46-
- uses: actions/checkout@v3
47-
40+
- name: ccache
41+
uses: hendrikmuhs/[email protected]
42+
43+
- uses: actions/checkout@v4
44+
with:
45+
submodules: true
46+
4847
- uses: lukka/get-cmake@latest
4948

5049
- uses: ilammy/msvc-dev-cmd@v1
5150

5251
- name: Set Compiler Environment
53-
if: "!endsWith(matrix.name, 'hunter')"
5452
uses: lukka/set-shell-env@v1
5553
with:
5654
CXX: ${{ matrix.cxx }}
5755
CC: ${{ matrix.cc }}
5856

59-
- name: Set Compiler Environment for Hunter on Windows
60-
if: startsWith(matrix.name, 'windows') && endsWith(matrix.name, 'hunter')
61-
uses: lukka/set-shell-env@v1
62-
with:
63-
VS160COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools
64-
65-
- name: Checkout Hunter toolchains
66-
if: endsWith(matrix.name, 'hunter')
67-
uses: actions/checkout@v3
68-
with:
69-
repository: cpp-pm/polly
70-
path: cmake/polly
71-
72-
- name: Remove contrib directory for Hunter builds
73-
if: contains(matrix.name, 'hunter')
74-
uses: JesseTG/[email protected]
75-
with:
76-
path: contrib
77-
7857
- name: Cache DX SDK
7958
id: dxcache
8059
if: contains(matrix.name, 'windows')
81-
uses: actions/cache@v3
60+
uses: actions/cache@v4
8261
with:
8362
path: '${{ github.workspace }}/DX_SDK'
8463
key: ${{ runner.os }}-DX_SDK
@@ -94,12 +73,12 @@ jobs:
9473
- name: Set Windows specific CMake arguments
9574
if: contains(matrix.name, 'windows')
9675
id: windows_extra_cmake_args
97-
run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1"
76+
run: echo ":set-output name=args::=-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1" >> $GITHUB_OUTPUT
9877

9978
- name: Set Hunter specific CMake arguments
10079
if: contains(matrix.name, 'hunter')
10180
id: hunter_extra_cmake_args
102-
run: echo "::set-output name=args::-DBUILD_SHARED_LIBS=OFF -DASSIMP_HUNTER_ENABLED=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/polly/${{ matrix.toolchain }}.cmake"
81+
run: echo "args=-DBUILD_SHARED_LIBS=OFF -DASSIMP_HUNTER_ENABLED=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/polly/${{ matrix.toolchain }}.cmake" >> $GITHUB_OUTPUT
10382

10483
- name: configure and build
10584
uses: lukka/run-cmake@v3
@@ -110,20 +89,104 @@ jobs:
11089
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
11190
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
11291
cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }} ${{ steps.hunter_extra_cmake_args.outputs.args }}'
113-
buildWithCMakeArgs: '-- -j 24 -v'
92+
buildWithCMakeArgs: '--parallel 24 -v'
11493
buildDirectory: '${{ github.workspace }}/build/'
11594

11695
- name: Exclude certain tests in Hunter specific builds
11796
if: contains(matrix.name, 'hunter')
11897
id: hunter_extra_test_args
119-
run: echo "::set-output name=args::--gtest_filter=-utOpenGEXImportExport.Importissue1340_EmptyCameraObject:utColladaZaeImportExport.importBlenFromFileTest"
98+
run: echo "args=--gtest_filter=-utOpenGEXImportExport.Importissue1340_EmptyCameraObject:utColladaZaeImportExport.importBlenFromFileTest" >> $GITHUB_OUTPUT
12099

121100
- name: test
122101
run: cd build/bin && ./unit ${{ steps.hunter_extra_test_args.outputs.args }}
123102
shell: bash
124103

125-
- uses: actions/upload-artifact@v3
104+
- uses: actions/upload-artifact@v4
126105
if: matrix.name == 'windows-msvc'
127106
with:
128-
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
129-
path: build/bin
107+
name: 'assimp-bins-${{ matrix.name }}'
108+
path: build/bin/assimp*.exe
109+
110+
- uses: marvinpinto/action-automatic-releases@latest
111+
if: contains(matrix.name, 'windows-msvc-hunter')
112+
with:
113+
repo_token: "${{ secrets.GITHUB_TOKEN }}"
114+
automatic_release_tag: "master"
115+
prerelease: true
116+
title: "AutoRelease"
117+
files: |
118+
build/bin/assimp*.exe
119+
120+
create-release:
121+
needs: [build]
122+
runs-on: ubuntu-latest
123+
if: startsWith(github.ref, 'refs/tags/')
124+
steps:
125+
- id: create-release
126+
uses: actions/create-release@v1
127+
env:
128+
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
129+
with:
130+
tag_name: '${{github.ref}}'
131+
release_name: 'Release ${{github.ref}}'
132+
draft: false
133+
prerelease: true
134+
- run: |
135+
echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
136+
- uses: actions/upload-artifact@v4
137+
with:
138+
name: create-release
139+
path: release_upload_url.txt
140+
141+
upload-release:
142+
strategy:
143+
matrix:
144+
name: [ubuntu-latest-g++, macos-latest-clang++, windows-latest-cl.exe, ubuntu-latest-clang++, ubuntu-gcc-hunter, macos-clang-hunter, windows-msvc-hunter]
145+
# For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux.
146+
include:
147+
- name: windows-latest-cl.exe
148+
os: windows-latest
149+
cxx: cl.exe
150+
cc: cl.exe
151+
- name: ubuntu-latest-clang++
152+
os: ubuntu-latest
153+
cxx: clang++
154+
cc: clang
155+
- name: macos-latest-clang++
156+
os: macos-latest
157+
cxx: clang++
158+
cc: clang
159+
- name: ubuntu-latest-g++
160+
os: ubuntu-latest
161+
cxx: g++
162+
cc: gcc
163+
- name: ubuntu-gcc-hunter
164+
os: ubuntu-latest
165+
toolchain: ninja-gcc-cxx17-fpic
166+
- name: macos-clang-hunter
167+
os: macos-latest
168+
toolchain: ninja-clang-cxx17-fpic
169+
- name: windows-msvc-hunter
170+
os: windows-latest
171+
toolchain: ninja-vs-win64-cxx17
172+
173+
needs: [create-release]
174+
runs-on: ubuntu-latest
175+
if: startsWith(github.ref, 'refs/tags/')
176+
steps:
177+
- uses: softprops/action-gh-release@v2
178+
with:
179+
name: create-release
180+
- id: upload-url
181+
run: |
182+
echo "url=$(cat create-release/release_upload_url.txt)" >> $GITHUB_OUTPUT
183+
- uses: actions/download-artifact@v4
184+
with:
185+
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
186+
- uses: actions/upload-release-asset@v1
187+
env:
188+
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
189+
with:
190+
files: |
191+
*.zip
192+

.github/workflows/cifuzz.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: CIFuzz
2+
on: [pull_request]
3+
jobs:
4+
Fuzzing:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Build Fuzzers
8+
id: build
9+
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
10+
with:
11+
oss-fuzz-project-name: 'assimp'
12+
dry-run: false
13+
language: c++
14+
- name: Run Fuzzers
15+
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
16+
with:
17+
oss-fuzz-project-name: 'assimp'
18+
fuzz-seconds: 300
19+
dry-run: false
20+
language: c++
21+
- name: Upload Crash
22+
uses: actions/upload-artifact@v4
23+
if: failure() && steps.build.outcome == 'success'
24+
with:
25+
name: artifacts
26+
path: ./out/artifacts

.github/workflows/inno_setup

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build Windows Installer
2+
on:
3+
push:
4+
branches: [ master ]
5+
pull_request:
6+
branches: [ master ]
7+
jobs:
8+
build:
9+
name: Build the Inno Setup Installer
10+
runs-on: windows-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: lukka/get-cmake@latest
14+
- uses: ilammy/msvc-dev-cmd@v1
15+
16+
17+
- name: Cache DX SDK
18+
id: dxcache
19+
uses: actions/cache@v4
20+
with:
21+
path: '${{ github.workspace }}/DX_SDK'
22+
key: ${{ runner.os }}-DX_SDK
23+
restore-keys: |
24+
${{ runner.os }}-DX_SDK
25+
26+
- name: Download DXSetup
27+
run: |
28+
curl -s -o DXSDK_Jun10.exe --location https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
29+
cmd.exe /c start /wait .\DXSDK_Jun10.exe /U /O /F /S /P "${{ github.workspace }}\DX_SDK"
30+
31+
- name: Set Windows specific CMake arguments
32+
id: windows_extra_cmake_args
33+
run: echo "::set-output name=args::-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1 -DASSIMP_BUILD_ZLIB=1"
34+
35+
- name: configure and build
36+
uses: lukka/run-cmake@v3
37+
env:
38+
DXSDK_DIR: '${{ github.workspace }}/DX_SDK'
39+
40+
with:
41+
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
42+
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
43+
cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }} ${{ steps.hunter_extra_cmake_args.outputs.args }}'
44+
buildWithCMakeArgs: '--parallel 24 -v'
45+
buildDirectory: '${{ github.workspace }}/build/'
46+
47+
- name: Compile .ISS to .EXE Installer
48+
uses: Minionguyjpro/[email protected]
49+
with:
50+
path: packaging/windows-innosetup/script_x64.iss
51+
options: /O+

.github/workflows/sanitizer.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ on:
66
pull_request:
77
branches: [ master ]
88

9+
permissions:
10+
contents: read # to fetch code (actions/checkout)
11+
912
jobs:
1013
job1:
1114
name: adress-sanitizer
1215
runs-on: ubuntu-latest
1316
steps:
14-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1518
- uses: lukka/get-cmake@latest
1619
- uses: lukka/set-shell-env@v1
1720
with:
@@ -35,15 +38,15 @@ jobs:
3538
name: undefined-behavior-sanitizer
3639
runs-on: ubuntu-latest
3740
steps:
38-
- uses: actions/checkout@v3
41+
- uses: actions/checkout@v4
3942
- uses: lukka/get-cmake@latest
4043
- uses: lukka/set-shell-env@v1
4144
with:
4245
CXX: clang++
4346
CC: clang
4447

4548
- name: configure and build
46-
uses: lukka/run-cmake@v2
49+
uses: lukka/run-cmake@v3
4750
with:
4851
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
4952
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
@@ -54,3 +57,13 @@ jobs:
5457
- name: test
5558
run: cd build/bin && ./unit
5659
shell: bash
60+
61+
job3:
62+
name: printf-sanitizer
63+
runs-on: ubuntu-latest
64+
steps:
65+
- uses: actions/checkout@v4
66+
67+
- name: run scan_printf script
68+
run: ./scripts/scan_printf.sh
69+
shell: bash

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,7 @@ tools/assimp_qt_viewer/ui_mainwindow.h
120120

121121
#Generated directory
122122
generated/*
123+
124+
# 3rd party cloned repos/tarballs etc
125+
# tinyusdz repo, automatically cloned via CMake
126+
contrib/tinyusdz/autoclone

0 commit comments

Comments
 (0)