Skip to content

Commit 665e386

Browse files
committed
Merge branch 'develop'
2 parents f88a35d + a61a27a commit 665e386

File tree

162 files changed

+10480
-4448
lines changed

Some content is hidden

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

162 files changed

+10480
-4448
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,71 @@
1-
name: CI
1+
name: Linux
22

33
on: [push]
44

55
jobs:
6-
ci:
6+
build-linux:
77
strategy:
8-
fail-fast: false
98
matrix:
10-
os: [ubuntu-latest, macos-latest]
9+
qt_version: [5.15.2, 6.5.2]
1110

12-
runs-on: ${{matrix.os}}
11+
runs-on: ubuntu-latest
1312

1413
steps:
1514
- name: Checkout
1615
uses: actions/checkout@v2
17-
with:
18-
path: 'source'
19-
fetch-depth: 0
20-
lfs: 'false'
21-
22-
- name: Cache Qt
23-
id: cache-qt
24-
uses: actions/cache@v1
25-
with:
26-
path: ../Qt
27-
key: ${{ runner.os }}-QtCache
2816

2917
- name: Install Qt
30-
uses: jurplel/install-qt-action@v2
18+
uses: jurplel/install-qt-action@v3
3119
with:
32-
cached: ${{ steps.cache-qt.outputs.cache-hit }}
20+
version: ${{matrix.qt_version}}
21+
cache: true
22+
cache-key-prefix: QtCache
23+
24+
# Actually needed for Qt6
25+
- name: Install dependencies for "xcb" Qt plugin
26+
run: |
27+
sudo apt-get -y install libxcb-cursor0
3328
34-
- name: Install OpenCascade[Ubuntu]
35-
if: startsWith(matrix.os, 'ubuntu')
29+
- name: Install OpenCascade
3630
run: |
3731
sudo apt-get -y install libocct-data-exchange-dev libocct-draw-dev
3832
GH_CASCADE_INC_DIR=`dpkg -L libocct-foundation-dev | grep -i "Standard_Version.hxx" | sed "s/\/Standard_Version.hxx//i"`
3933
GH_CASCADE_LIB_DIR=`dpkg -L libocct-foundation-dev | grep -i "libTKernel.so" | sed "s/\/libTKernel.so//i"`
4034
echo "GH_CASCADE_INC_DIR=$GH_CASCADE_INC_DIR" >> $GITHUB_ENV
4135
echo "GH_CASCADE_LIB_DIR=$GH_CASCADE_LIB_DIR" >> $GITHUB_ENV
4236
43-
- name: Install OpenCascade[macOS]
44-
if: startsWith(matrix.os, 'macos')
37+
- name: Install Assimp
4538
run: |
46-
brew install opencascade
47-
GH_CASCADE_BASE_DIR=`brew info opencascade | grep -E -i --only-matching --max-count=1 "^(/[a-z\.\-_0-9]+)+"`
48-
echo "GH_CASCADE_INC_DIR=$GH_CASCADE_BASE_DIR/include/opencascade" >> $GITHUB_ENV
49-
echo "GH_CASCADE_LIB_DIR=$GH_CASCADE_BASE_DIR/lib" >> $GITHUB_ENV
39+
sudo apt-get -y install libassimp-dev
40+
GH_ASSIMP_INC_DIR=`dpkg -L libassimp-dev | grep -i "version.h" | sed "s/\/version.h//i"`
41+
GH_ASSIMP_LIB_DIR=`dpkg -L libassimp-dev | grep -i "libassimp.so" | sed "s/\/libassimp.so//i"`
42+
echo "GH_ASSIMP_INC_DIR=$GH_ASSIMP_INC_DIR" >> $GITHUB_ENV
43+
echo "GH_ASSIMP_LIB_DIR=$GH_ASSIMP_LIB_DIR" >> $GITHUB_ENV
5044
5145
- name: Get count of CPU cores
5246
uses: SimenB/github-actions-cpu-cores@v1
5347
id: cpu-cores
5448

55-
- name: Create Build folder
56-
run: mkdir ${{github.workspace}}/build
57-
58-
- name: QMake
59-
working-directory: ${{github.workspace}}/build
49+
- name: Build
6050
run: |
51+
mkdir ${{github.workspace}}/build
52+
cd ${{github.workspace}}/build
6153
echo CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}}
6254
echo CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}}
55+
echo ASSIMP_INC_DIR=${{env.GH_ASSIMP_INC_DIR}}
56+
echo ASSIMP_LIB_DIR=${{env.GH_ASSIMP_LIB_DIR}}
6357
[ ! -d $CASCADE_INC_DIR ] && echo "ERROR: OpenCascade include dir doesn't exist"
6458
[ ! -d $CASCADE_LIB_DIR ] && echo "ERROR: OpenCascade lib dir doesn't exist"
65-
qmake ../source CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}} CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}} CONFIG+=withtests
66-
67-
- name: Build
68-
working-directory: ${{github.workspace}}/build
69-
run: |
59+
[ ! -d $ASSIMP_INC_DIR ] && echo "ERROR: assimp include dir doesn't exist"
60+
[ ! -d $ASSIMP_LIB_DIR ] && echo "ERROR: assimp lib dir doesn't exist"
61+
qmake .. CONFIG+=withtests \
62+
CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}} \
63+
CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}} \
64+
ASSIMP_INC_DIR=${{env.GH_ASSIMP_INC_DIR}} \
65+
ASSIMP_LIB_DIR=${{env.GH_ASSIMP_LIB_DIR}}
7066
make -j${{steps.cpu-cores.outputs.count}}
7167
72-
- name: Execute Unit Tests[Ubuntu]
73-
if: startsWith(matrix.os, 'ubuntu')
68+
- name: Execute Unit Tests
7469
working-directory: ${{github.workspace}}/build
7570
env:
7671
DISPLAY: :0
@@ -84,9 +79,3 @@ jobs:
8479
sleep 5s
8580
# Run tests
8681
./mayo --runtests
87-
88-
- name: Execute Unit Tests[macOS]
89-
if: startsWith(matrix.os, 'macos')
90-
working-directory: ${{github.workspace}}/build
91-
run: |
92-
./mayo.app/Contents/MacOS/mayo --runtests

.github/workflows/ci_macos.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: macOS
2+
3+
on: [push]
4+
5+
jobs:
6+
build-macos:
7+
runs-on: macos-latest
8+
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v2
12+
13+
- name: Install Qt
14+
uses: jurplel/install-qt-action@v3
15+
with:
16+
cache: true
17+
cache-key-prefix: QtCache
18+
19+
- name: Install OpenCascade
20+
run: |
21+
brew install opencascade
22+
GH_CASCADE_BASE_DIR=`brew info opencascade | grep -E -i --only-matching --max-count=1 "^(/[a-z\.\-_0-9]+)+"`
23+
echo "GH_CASCADE_INC_DIR=$GH_CASCADE_BASE_DIR/include/opencascade" >> $GITHUB_ENV
24+
echo "GH_CASCADE_LIB_DIR=$GH_CASCADE_BASE_DIR/lib" >> $GITHUB_ENV
25+
26+
- name: Install Assimp
27+
run: |
28+
brew install assimp
29+
GH_ASSIMP_BASE_DIR=`brew info assimp | grep -E -i --only-matching --max-count=1 "^(/[a-z\.\-_0-9]+)+"`
30+
echo "GH_ASSIMP_INC_DIR=$GH_ASSIMP_BASE_DIR/include/assimp" >> $GITHUB_ENV
31+
echo "GH_ASSIMP_LIB_DIR=$GH_ASSIMP_BASE_DIR/lib" >> $GITHUB_ENV
32+
33+
- name: Get count of CPU cores
34+
uses: SimenB/github-actions-cpu-cores@v1
35+
id: cpu-cores
36+
37+
- name: Build
38+
run: |
39+
mkdir ${{github.workspace}}/build
40+
cd ${{github.workspace}}/build
41+
echo CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}}
42+
echo CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}}
43+
echo ASSIMP_INC_DIR=${{env.GH_ASSIMP_INC_DIR}}
44+
echo ASSIMP_LIB_DIR=${{env.GH_ASSIMP_LIB_DIR}}
45+
[ ! -d $CASCADE_INC_DIR ] && echo "ERROR: OpenCascade include dir doesn't exist"
46+
[ ! -d $CASCADE_LIB_DIR ] && echo "ERROR: OpenCascade lib dir doesn't exist"
47+
[ ! -d $ASSIMP_INC_DIR ] && echo "ERROR: assimp include dir doesn't exist"
48+
[ ! -d $ASSIMP_LIB_DIR ] && echo "ERROR: assimp lib dir doesn't exist"
49+
qmake .. CONFIG+=withtests \
50+
CASCADE_INC_DIR=${{env.GH_CASCADE_INC_DIR}} \
51+
CASCADE_LIB_DIR=${{env.GH_CASCADE_LIB_DIR}} \
52+
ASSIMP_INC_DIR=${{env.GH_ASSIMP_INC_DIR}} \
53+
ASSIMP_LIB_DIR=${{env.GH_ASSIMP_LIB_DIR}}
54+
make -j${{steps.cpu-cores.outputs.count}}
55+
56+
- name: Execute Unit Tests
57+
working-directory: ${{github.workspace}}/build
58+
run: |
59+
./mayo.app/Contents/MacOS/mayo --runtests

.github/workflows/ci_windows.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: Windows
2+
3+
on: [push]
4+
5+
jobs:
6+
build-windows-msvc:
7+
strategy:
8+
matrix:
9+
occ_version: [7.3.0, 7.4.0, 7.5.0, 7.6.0, 7.7.0]
10+
11+
runs-on: windows-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v3
16+
17+
- name: Install Qt
18+
uses: jurplel/install-qt-action@v3
19+
with:
20+
cache: true
21+
cache-key-prefix: QtCache
22+
23+
- name: Cache OpenCascade archive
24+
id: cache-occ
25+
uses: actions/cache@v3
26+
with:
27+
path: OpenCASCADE-${{matrix.occ_version}}-vc14-64.zip
28+
key: occ-${{matrix.occ_version}}
29+
30+
- name: Download OpenCascade
31+
if: steps.cache-occ.outputs.cache-hit != 'true'
32+
uses: carlosperate/download-file-action@v2
33+
with:
34+
file-url: 'https://www.fougue.pro/share/bin/OpenCASCADE-${{matrix.occ_version}}-vc14-64.zip'
35+
36+
- name: Extract OpenCascade
37+
shell: pwsh
38+
run: |
39+
Expand-Archive -Path OpenCASCADE-${{matrix.occ_version}}-vc14-64.zip -DestinationPath .
40+
41+
- name: Cache Assimp archive
42+
id: cache-assimp
43+
uses: actions/cache@v3
44+
with:
45+
path: assimp-5.3.1.zip
46+
key: assimp-5.3.1
47+
48+
- name: Download Assimp
49+
if: steps.cache-assimp.outputs.cache-hit != 'true'
50+
uses: carlosperate/download-file-action@v2
51+
with:
52+
file-url: 'https://www.fougue.pro/share/bin/assimp-5.3.1.zip'
53+
54+
- name: Extract Assimp
55+
shell: pwsh
56+
run: |
57+
Expand-Archive -Path assimp-5.3.1.zip -DestinationPath .
58+
59+
- name: Download jom.exe
60+
uses: carlosperate/download-file-action@v2
61+
with:
62+
file-url: 'https://www.fougue.pro/share/bin/jom.exe'
63+
64+
- name: Get count of CPU cores
65+
uses: SimenB/github-actions-cpu-cores@v1
66+
id: cpu-cores
67+
68+
- name: Create Build folder
69+
run: mkdir ${{github.workspace}}/build
70+
71+
- name: Configure Compiler
72+
uses: ilammy/msvc-dev-cmd@v1
73+
74+
- name: QMake
75+
working-directory: ${{github.workspace}}/build
76+
shell: cmd
77+
run: |
78+
call ..\OpenCASCADE-${{matrix.occ_version}}-vc14-64\opencascade-${{matrix.occ_version}}\env.bat
79+
echo CSF_OCCTIncludePath=%CSF_OCCTIncludePath%
80+
echo CSF_OCCTLibPath=%CSF_OCCTLibPath%
81+
qmake --version
82+
qmake ..\mayo.pro CONFIG+=release CONFIG+=withtests ^
83+
ASSIMP_INC_DIR=${{github.workspace}}/assimp-5.3.1/include/assimp ^
84+
ASSIMP_LIB_DIR=${{github.workspace}}/assimp-5.3.1/lib ^
85+
ASSIMP_LIBNAME_SUFFIX=-vc143-mt
86+
87+
- name: Build
88+
working-directory: ${{github.workspace}}/build
89+
run: |
90+
..\jom.exe -j${{steps.cpu-cores.outputs.count}}
91+
92+
- name: Execute Unit Tests
93+
working-directory: ${{github.workspace}}/build
94+
shell: cmd
95+
run: |
96+
call ..\OpenCASCADE-${{matrix.occ_version}}-vc14-64\opencascade-${{matrix.occ_version}}\env.bat
97+
set PATH=${{github.workspace}}\assimp-5.3.1\bin;%PATH%
98+
release\mayo.exe --runtests -o utests-output.txt
99+
more utests-output.txt

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
build-*
22
*.user
33
*.user.*
4-
installer/setupvars.iss
5-
installer/Output
6-
custom.pri
4+
custom.pri
5+
env.pri

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<div align="center">
22

3-
[![CI](https://github.com/fougue/mayo/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/fougue/mayo/actions/workflows/ci.yml)
4-
[![Build status](https://ci.appveyor.com/api/projects/status/6d1w0d6gw28npxpf/branch/develop?svg=true)](https://ci.appveyor.com/project/HuguesDelorme/mayo)
5-
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d51f8ca6fea34886b8308ff0246172ce)](https://www.codacy.com/gh/fougue/mayo/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=fougue/mayo&amp;utm_campaign=Badge_Grade)
3+
[![Windows CI](https://github.com/fougue/mayo/actions/workflows/ci_windows.yml/badge.svg?branch=develop)](https://github.com/fougue/mayo/actions/workflows/ci_windows.yml)
4+
[![Linux CI](https://github.com/fougue/mayo/actions/workflows/ci_linux.yml/badge.svg?branch=develop)](https://github.com/fougue/mayo/actions/workflows/ci_linux.yml)
5+
[![macOS CI](https://github.com/fougue/mayo/actions/workflows/ci_macos.yml/badge.svg?branch=develop)](https://github.com/fougue/mayo/actions/workflows/ci_macos.yml)
6+
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d51f8ca6fea34886b8308ff0246172ce)](https://app.codacy.com/gh/fougue/mayo/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
67
[![Downloads](https://img.shields.io/github/downloads/fougue/mayo/total.svg)](https://github.com/fougue/mayo/releases)
7-
[![License](https://img.shields.io/badge/license-BSD%202--clause-blue.svg)](https://github.com/fougue/mayo/blob/develop/LICENSE.txt)
88
[![Version](https://img.shields.io/badge/version-v0.7.0-blue.svg?style=flat)](https://github.com/fougue/mayo/releases)
99

1010
</div>
@@ -62,9 +62,14 @@ OBJ | :white_check_mark: | :white_check_mark: |
6262
glTF | :white_check_mark: | :white_check_mark: | 1.0, 2.0 and GLB
6363
VRML | :white_check_mark: | :white_check_mark: | v2.0 UTF8
6464
STL | :white_check_mark: | :white_check_mark: | ASCII/binary
65-
AMF | :x: | :white_check_mark: | v1.2 Text/ZIP
65+
AMF | :white_check_mark: | :white_check_mark: | v1.2 Text/ZIP(export)
6666
PLY | :white_check_mark: | :white_check_mark: | ASCII/binary
6767
OFF | :white_check_mark: | :white_check_mark: |
68+
3MF | :white_check_mark: | :x: |
69+
3DS | :white_check_mark: | :x: |
70+
FBX | :white_check_mark: | :x: |
71+
Collada | :white_check_mark: | :x: |
72+
X3D | :white_check_mark: | :x: |
6873
Image | :x: | :white_check_mark: | PNG, JPEG, ...
6974

7075
See also this dedicated [wikipage](https://github.com/fougue/mayo/wiki/Supported-formats) for more details

appveyor.yml

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

doc/screenshot_ubuntu_1.png

223 KB
Loading

doc/screenshot_ubuntu_2.png

203 KB
Loading

doc/screenshot_ubuntu_3.png

195 KB
Loading

doc/screenshot_ubuntu_4.png

276 KB
Loading

0 commit comments

Comments
 (0)