Skip to content

Commit 90ff008

Browse files
committed
CI/CD - add MinGW build job
1 parent eb48691 commit 90ff008

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ concurrency:
1010
jobs:
1111
linux:
1212
uses: ./.github/workflows/build_linux.yml
13+
wnt:
14+
uses: ./.github/workflows/build_wnt.yml

.github/workflows/build_wnt.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Build (Windows/MinGW)
2+
on:
3+
workflow_call:
4+
5+
jobs:
6+
build-wnt-mingw:
7+
runs-on: windows-latest
8+
defaults:
9+
run:
10+
shell: msys2 {0}
11+
steps:
12+
- name: Clone Tree
13+
uses: actions/checkout@v6
14+
with:
15+
path: occt-samples-qt.git
16+
fetch-depth: 1
17+
- name: Clone OCCT
18+
uses: actions/checkout@v6
19+
with:
20+
repository: gkv311/OCCT
21+
path: occt.git
22+
ref: 'v7_7_x'
23+
fetch-depth: 1
24+
- uses: msys2/setup-msys2@v2
25+
id: msys2
26+
with:
27+
msystem: UCRT64
28+
install: >
29+
mingw-w64-ucrt-x86_64-gcc
30+
mingw-w64-ucrt-x86_64-cmake
31+
mingw-w64-ucrt-x86_64-ninja
32+
mingw-w64-ucrt-x86_64-freetype
33+
mingw-w64-ucrt-x86_64-qt5-base
34+
mingw-w64-ucrt-x86_64-qt5-declarative
35+
mingw-w64-ucrt-x86_64-qt5-quickcontrols2
36+
- name: Configure occt
37+
run: |
38+
# disable most OCCT Modules and specify minimal set of toolkits to build
39+
# (BUILD_ADDITIONAL_TOOLKITS) required by sample to speed up building
40+
cmake -G Ninja -S $GITHUB_WORKSPACE/occt.git -B "$GITHUB_WORKSPACE/occt-make" \
41+
-D CMAKE_BUILD_TYPE="Release" \
42+
-D INSTALL_DIR:PATH=$GITHUB_WORKSPACE/occt \
43+
-D BUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL=OFF \
44+
-D BUILD_DOC_Overview:BOOL=OFF \
45+
-D BUILD_Inspector:BOOL=OFF \
46+
-D BUILD_MODULE_Draw:BOOL=OFF \
47+
-D BUILD_MODULE_DataExchange:BOOL=OFF \
48+
-D BUILD_MODULE_ApplicationFramework:BOOL=OFF \
49+
-D BUILD_MODULE_Visualization:BOOL=OFF \
50+
-D BUILD_MODULE_ModelingAlgorithms:BOOL=OFF \
51+
-D BUILD_MODULE_DETools:BOOL=OFF \
52+
-D BUILD_ADDITIONAL_TOOLKITS:STRING="TKOpenGl TKV3d TKHLR TKMesh TKService TKShHealing TKPrim TKTopAlgo TKGeomAlgo TKBRep TKGeomBase TKG3d TKG2d TKMath TKernel" \
53+
-D USE_FREETYPE:BOOL=ON \
54+
-D USE_FREEIMAGE:BOOL=OFF
55+
- name: Build occt
56+
run: |
57+
cmake --build "$GITHUB_WORKSPACE/occt-make" --config Release
58+
- name: Install occt
59+
run: |
60+
cmake --build "$GITHUB_WORKSPACE/occt-make" --config Release --target install
61+
- name: Configure project
62+
run: |
63+
cmake -G Ninja -S $GITHUB_WORKSPACE/occt-samples-qt.git -B "$GITHUB_WORKSPACE/occt-samples-qt-make" \
64+
-D CMAKE_TOOLCHAIN_FILE="$CMAKE_TOOLCHAIN" \
65+
-D CMAKE_BUILD_TYPE="Release" \
66+
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/occt-samples-qt \
67+
-D QT_VERSION=Qt5 \
68+
-D OpenCASCADE_DIR=$GITHUB_WORKSPACE/occt/cmake
69+
- name: Build project
70+
run: |
71+
cmake --build "$GITHUB_WORKSPACE/occt-samples-qt-make" --config Release
72+
- name: Install project
73+
env:
74+
MSYS2_LOCATION: ${{ steps.msys2.outputs.msys2-location }}
75+
run: |
76+
cmake --build "$GITHUB_WORKSPACE/occt-samples-qt-make" --config Release --target install
77+
inst_bin=`cygpath -m "$GITHUB_WORKSPACE/occt-samples-qt"`
78+
occt_bin=`cygpath -m "$GITHUB_WORKSPACE/occt/win64/gcc/bin"`
79+
msys_root=`cygpath -m "$MSYS2_LOCATION/ucrt64"`
80+
ldd $inst_bin/occt-qopenglwidget-sample.exe
81+
ldd $inst_bin/occt-qtquick-sample.exe
82+
cp -f -r $occt_bin/*.dll $inst_bin/
83+
# lookup for DLL dependencies
84+
ldd $inst_bin/occt-qopenglwidget-sample.exe | grep /ucrt64/bin | awk '{print $3}' | xargs -i cp {} $inst_bin/
85+
#cp -f -r $msys_root/bin/*.dll $inst_bin/
86+
# copy Qt plugins / QML plugins
87+
#cp -f -r $msys_root/share/qt5/plugins/* $inst_bin/
88+
cp -f -r $msys_root/bin/Qt5Qml*.dll $inst_bin/
89+
cp -f -r $msys_root/bin/Qt5Quick*.dll $inst_bin/
90+
cp -f -r $msys_root/share/qt5/plugins/platforms $inst_bin/platforms
91+
cp -f -r $msys_root/share/qt5/qml/QtQuick $inst_bin/QtQuick
92+
cp -f -r $msys_root/share/qt5/qml/QtQuick.2 $inst_bin/QtQuick.2
93+
- name: Upload build
94+
uses: actions/upload-artifact@v4
95+
with:
96+
name: occt-qt5-mingw-ucrt64
97+
path: ${{ github.workspace }}/occt-samples-qt

0 commit comments

Comments
 (0)