Skip to content

Commit 665e386

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

162 files changed

Lines changed: 10480 additions & 4448 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
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)