@@ -57,6 +57,17 @@ qml_files = glob_paths_excluding_target resources/**/*.qml
5757set_env QML_FILES ${qml_files}
5858'''
5959
60+ [tasks .set-qml-app ]
61+ private = true
62+ condition = { env_not_set = [" QT_APP" ] }
63+ script_runner = " @duckscript"
64+ script = '''
65+ python = get_env PYTHON
66+ output = exec ${python} utils/echo-qt-dir.py
67+ qt_app = trim ${output.stdout}
68+ set_env QT_APP ${qt_app}
69+ '''
70+
6071[tasks .set-python-files ]
6172private = true
6273condition = { env_not_set = [" PYTHON_FILES" ] }
@@ -311,10 +322,12 @@ run_task = [
311322]
312323
313324[tasks .purge-dist ]
325+ env = { PYTHONDONTWRITEBYTECODE = " 1" }
314326cwd = " py39-dist"
315327script_runner = " @duckscript"
316328script = '''
317- py_folders = array test tests examples __pycache__ demos translations idlelib lib/tcl8 lib/tcl8.6 lib/tk8.6 shiboken2/docs ensurepip lib2to3 tkinter unittest
329+
330+ py_folders = array test tests examples __pycache__ demos translations idlelib lib/tcl8 lib/tcl8.6 lib/tk8.6 shiboken2/docs ensurepip lib2to3 tkinter unittest include
318331qt_folders = array plugins/geoservices plugins/virtualkeyboard plugins/sqldrivers lib/Tix8.4.3 tcl/tix8.4.3 Qt/resources PySide2/resources
319332qml_folders = array qml/QtWeb* qml/QtBluetooth* qml/QtNfc* qml/QtGamepad qml/QtTest qml/QtQuick3D qml/Qt3D qml/QtSensors qml/QtLocation qml/QtPositioning
320333all_folders = array_concat ${py_folders} ${qt_folders} ${qml_folders}
@@ -387,9 +400,32 @@ else
387400 end
388401end
389402
390- exec --fail-on-error ${DIST_PYTHON} -m pip uninstall -y pip setuptools wheel
403+ exec --fail-on-error ${DIST_PYTHON} -m pip uninstall -y pip setuptools wheel flit
391404exec --fail-on-error ${DIST_PYTHON} -m compileall -b -f -o 1 -o 2 .
392405
406+ if eq ${os} windows
407+ globs = array pyexpat.* sqlite3.* _ctypes_test.* _bz2.* _decimal.* _elementtree.* _multiprocessing.* _sqlite3.* _ssl.* _tkinter.* _uuid.* _zoneinfo.* _msi.* _test*.*
408+ for glob in ${globs}
409+ files = glob_array ./DLLs/${glob}
410+ for file in ${files}
411+ rm ${file}
412+ end
413+ files = glob_array ./libs/${glob}
414+ for file in ${files}
415+ rm ${file}
416+ end
417+ end
418+ endif
419+
420+ py_internal_libs = array Lib/email Lib/distutils Lib/http Lib/multiprocessing Lib/msilib Lib/http Lib/dbm Lib/curses Lib/xml Lib/xmlrpc Lib/urllib Lib/ensurepip Lib/venv Lib/wsgiref Lib/lib2to3
421+
422+ for name in ${py_internal_libs}
423+ folders = glob_array **/${name}/
424+ for folder in ${folders}
425+ rm -r ${folder}
426+ end
427+ end
428+
393429files = glob_array ./**/*.py
394430for file in ${files}
395431 rm ${file}
@@ -414,21 +450,35 @@ exec --fail-on-error xz -T 0 -e -9 "${output_name}.tar"
414450run_task = [{ name = [" build-dist" , " purge-dist" , " compress-dist" ] }]
415451
416452[tasks .qml-format ]
417- dependencies = [" set-qml-files" ]
418- env = { QT_APP = { script = [" $PYTHON utils/echo-qt-dir.py" ] } }
453+ dependencies = [" set-qml-files" , " set-qml-app" ]
419454script_runner = " @shell"
420455script = '''
421456${QT_APP}/Qt/bin/qmlformat -i ${QML_FILES}
422457'''
423458
459+ [tasks .qml-format .windows ]
460+ dependencies = [" set-qml-files" , " set-qml-app" ]
461+ script_runner = " powershell"
462+ script_extension = " ps1"
463+ script = '''
464+ & ${env:QT_APP}\Qt\bin\qmlformat -i $(-split ${env:QML_FILES})
465+ '''
466+
424467[tasks .qml-lint ]
425- dependencies = [" set-qml-files" ]
426- env = { QT_APP = { script = [" $PYTHON utils/echo-qt-dir.py" ] } }
468+ dependencies = [" set-qml-files" , " set-qml-app" ]
427469script_runner = " @shell"
428470script = '''
429471${QT_APP}/Qt/bin/qmllint -I ${QT_APP}/../PySide2/Qt/qml/ -I resources/ ${QML_FILES}
430472'''
431473
474+ [tasks .qml-lint .windows ]
475+ dependencies = [" set-qml-files" , " set-qml-app" ]
476+ script_runner = " powershell"
477+ script_extension = " ps1"
478+ script = '''
479+ & ${env:QT_APP}\Qt\bin\qmllint -I ${env:QT_APP}\..\PySide2\Qt\qml -I resources $(-split ${env:QML_FILES})
480+ '''
481+
432482[tasks .qml-format-check ]
433483dependencies = [" qml-format" ]
434484run_task = " check-git-diff"
0 commit comments