@@ -56,22 +56,43 @@ jobs:
5656 with :
5757 key : ${{ runner.os }}-ubuntu-${{ matrix.container_version }}
5858 evict-old-files : ' job'
59-
60- - name : Build PythonQt
59+
60+ - name : Build PythonQt (generator_only)
61+ run : |
62+ export QT_SELECT=qt5
63+ echo ======= SYSTEM INFO ========
64+ uname -a; gcc --version | grep "gcc"; qmake --version
65+ echo ============================
66+ qmake -r PythonQt.pro CONFIG+=ccache CONFIG+=release CONFIG+=force_debug_info \
67+ CONFIG+=sanitizer CONFIG+=sanitize_undefined CONFIG+=sanitize_address \
68+ CONFIG+=generator_only \
69+ make -j $(nproc)
70+
71+ - name : Generate Wrappers
72+ run : |
73+ # workaround to allow to find the Qt include dirs for installed standard qt packages
74+ mkdir /usr/include/qt5; ln -s /usr/include/x86_64-linux-gnu/qt5 /usr/include/qt5/include
75+ export QTDIR=/usr/include/qt5
76+ cd generator
77+ UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
78+ ./pythonqt_generator
79+
80+ - name : Build PythonQt (exclude_generator)
6181 run : |
6282 export QT_SELECT=qt5
6383 echo ======= SYSTEM INFO ========
6484 uname -a; gcc --version | grep "gcc"; python3 --version; qmake --version
6585 echo ============================
6686 qmake -r PythonQt.pro CONFIG+=ccache CONFIG+=release CONFIG+=force_debug_info \
6787 CONFIG+=sanitizer CONFIG+=sanitize_undefined CONFIG+=sanitize_address \
88+ CONFIG+=exclude_generator \
6889 PYTHON_VERSION=$(python3 --version | cut -d " " -f 2 | cut -d "." -f1,2) \
6990 PYTHON_DIR=$(which python3 | xargs dirname | xargs dirname)
7091 make -j $(nproc)
7192 PYTHONDEVMODE=1 PYTHONASYNCIODEBUG=1 PYTHONWARNINGS=error PYTHONMALLOC=malloc_debug \
7293 UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
7394 make check TESTARGS="-platform offscreen"
74-
95+
7596 - name : Run memory tests with sanitizers
7697 run : |
7798 QT_VERSION_FULL=$(qmake -query QT_VERSION)
@@ -99,15 +120,6 @@ jobs:
99120 PYTHONQT_RUN_ONLY_CLEANUP_TESTS=1 \
100121 PYTHONQT_DISABLE_ASYNCIO=1 \
101122 make check TESTARGS="-platform minimal"
102-
103- - name : Generate Wrappers
104- run : |
105- # workaround to allow to find the Qt include dirs for installed standard qt packages
106- mkdir /usr/include/qt5; ln -s /usr/include/x86_64-linux-gnu/qt5 /usr/include/qt5/include
107- export QTDIR=/usr/include/qt5
108- cd generator
109- UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
110- ./pythonqt_generator
111123
112124 - name : Upload Wrappers
113125 uses : actions/upload-artifact@v4
@@ -144,7 +156,25 @@ jobs:
144156 - name : Checkout PythonQt
145157 uses : actions/checkout@v5
146158
147- - name : Build PythonQt
159+ - name : Build PythonQt (generator_only)
160+ run : |
161+ export QT_SELECT=qt5
162+ echo ======= SYSTEM INFO ========
163+ uname -a; gcc --version | grep "gcc"; qmake-qt5 --version
164+ echo ============================
165+ qmake-qt5 -r PythonQt.pro CONFIG+=${{ matrix.configuration }} \
166+ CONFIG+=generator_only
167+ make -j $(nproc)
168+
169+ - name : Generate Wrappers
170+ run : |
171+ # workaround to allow to find the Qt include dirs for installed standard qt packages
172+ mkdir /usr/include/qt5ln; ln -s /usr/include/qt5 /usr/include/qt5ln/include
173+ export QTDIR=/usr/include/qt5ln
174+ cd generator
175+ ./pythonqt_generator
176+
177+ - name : Build PythonQt (exclude_generator)
148178 run : |
149179 export QT_SELECT=qt5
150180 echo ======= SYSTEM INFO ========
@@ -157,19 +187,12 @@ jobs:
157187 echo PYTHON_VERSION_SHORT=${PYTHON_VERSION_SHORT}
158188 echo PYTHON_DIR=${PYTHON_DIR}
159189 qmake-qt5 -r PythonQt.pro CONFIG+=${{ matrix.configuration }} \
190+ CONFIG+=exclude_generator \
160191 "PYTHON_VERSION=${PYTHON_VERSION_SHORT}" "PYTHON_DIR=${PYTHON_DIR}"
161192 make -j $(nproc) && \
162193 PYTHONDEVMODE=1 PYTHONASYNCIODEBUG=1 PYTHONWARNINGS=error PYTHONMALLOC=malloc_debug \
163194 make check TESTARGS="-platform offscreen"
164195
165- - name : Generate Wrappers
166- run : |
167- # workaround to allow to find the Qt include dirs for installed standard qt packages
168- mkdir /usr/include/qt5ln; ln -s /usr/include/qt5 /usr/include/qt5ln/include
169- export QTDIR=/usr/include/qt5ln
170- cd generator
171- ./pythonqt_generator
172-
173196 - name : Upload Wrappers
174197 uses : actions/upload-artifact@v4
175198 with :
@@ -235,7 +258,25 @@ jobs:
235258 echo "MACOS_VERSION_FULL=$MACOS_VERSION_FULL" | tee -a $GITHUB_OUTPUT
236259 echo "MACOS_VERSION_SHORT=$MACOS_VERSION_SHORT" | tee -a $GITHUB_OUTPUT
237260
238- - name : Build PythonQt
261+ - name : Build PythonQt (generator_only)
262+ run : |
263+ set -ue
264+ echo ======= SYSTEM INFO ========
265+ uname -a; gcc --version | head -n 1; qmake --version
266+ echo ============================
267+ qmake CONFIG+=ccache CONFIG+=${{ matrix.configuration }} CONFIG+=sanitizer CONFIG+=sanitize_undefined CONFIG+=sanitize_address \
268+ CONFIG+=generator_only \
269+ -r PythonQt.pro
270+ make -j $(nproc)
271+
272+ - name : Generate Wrappers
273+ if : ${{ contains(matrix.configuration, 'release') }}
274+ run : |
275+ cd generator
276+ UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
277+ ./pythonqt_generator
278+
279+ - name : Build PythonQt (exclude_generator)
239280 run : |
240281 set -ue
241282 echo ======= SYSTEM INFO ========
@@ -246,6 +287,7 @@ jobs:
246287 "python${PYTHON_VERSION_MAJOR}-embed" "python${PYTHON_VERSION_MAJOR}"
247288 do if pkg-config --exists "$i"; then PYTHON_PKGCONFIG_NAME="$i"; break; fi; done
248289 qmake CONFIG+=ccache CONFIG+=${{ matrix.configuration }} CONFIG+=sanitizer CONFIG+=sanitize_undefined CONFIG+=sanitize_address \
290+ CONFIG+=exclude_generator \
249291 PYTHON_VERSION=${{ steps.versions.outputs.PYTHON_VERSION_SHORT }} \
250292 PYTHON_DIR="$pythonLocation" \
251293 PKGCONFIG+=$PYTHON_PKGCONFIG_NAME \
@@ -255,13 +297,6 @@ jobs:
255297 UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
256298 make check TESTARGS="-platform offscreen"
257299
258- - name : Generate Wrappers
259- if : ${{ contains(matrix.configuration, 'release') }}
260- run : |
261- cd generator
262- UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \
263- ./pythonqt_generator
264-
265300 - name : Upload Wrappers
266301 if : ${{ contains(matrix.configuration, 'release') }}
267302 uses : actions/upload-artifact@v4
@@ -351,13 +386,31 @@ jobs:
351386 echo "QT_VERSION_SHORT=$QT_VERSION_SHORT" | tee -a $GITHUB_OUTPUT
352387 echo "PYTHON_VERSION_SHORT=$PYTHON_VERSION_SHORT" | tee -a $GITHUB_OUTPUT
353388
354- - name : Build PythonQt
389+ - name : Build PythonQt (generator_only)
390+ shell : cmd
391+ run : |
392+ qmake -query
393+ qmake CONFIG+=release CONFIG-=debug_and_release CONFIG-=debug_and_release_target ^
394+ CONFIG+=generator_only ^
395+ PythonQt.pro
396+ mingw32-make -j 2 ^
397+ || set CL=/MP && nmake
398+
399+ - name : Generate Wrappers
400+ shell : cmd
401+ run : |
402+ cd generator
403+ set QTDIR=%QT_ROOT_DIR%
404+ pythonqt_generator
405+
406+ - name : Build PythonQt (exclude_generator)
355407 shell : cmd
356408 run : |
357409 qmake -query
358410 python --version
359411 set PYTHONQTALL_CONFIG=${{ matrix.pythonqtall-config }}
360412 qmake CONFIG+=release CONFIG-=debug_and_release CONFIG-=debug_and_release_target ^
413+ CONFIG+=exclude_generator ^
361414 "PYTHON_PATH=%pythonLocation%" ^
362415 "PYTHON_VERSION=${{ steps.versions.outputs.PYTHON_VERSION_SHORT }}" ^
363416 PythonQt.pro
@@ -367,13 +420,6 @@ jobs:
367420 mingw32-make -j 2 && mingw32-make check "TESTARGS=-platform offscreen" ^
368421 || set CL=/MP && nmake && nmake check "TESTARGS=-platform offscreen"
369422
370- - name : Generate Wrappers
371- shell : cmd
372- run : |
373- cd generator
374- set QTDIR=%QT_ROOT_DIR%
375- pythonqt_generator
376-
377423 - name : Upload Wrappers
378424 if : (matrix.pythonqtall-config || '') == ''
379425 uses : actions/upload-artifact@v4
0 commit comments