diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aea5e4103..93ad6dfa9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,9 +73,9 @@ jobs: # workaround to allow to find the Qt include dirs for installed standard qt packages mkdir /usr/include/qt5; ln -s /usr/include/x86_64-linux-gnu/qt5 /usr/include/qt5/include export QTDIR=/usr/include/qt5 - cd generator UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \ - ./pythonqt_generator + ./generator/pythonqt_generator \ + --output-directory=. - name: Build PythonQt (exclude_generator) run: | @@ -169,10 +169,11 @@ jobs: - name: Generate Wrappers run: | export QTDIR=/usr/include/qt5 - cd generator # Specify "/usr/include" so that header "bits/wordsize.h" included from "qconfig.h" is found. # See https://git.rockylinux.org/staging/rpms/qt5-qtbase/-/blob/r8/SOURCES/qconfig-multilib.h - ./pythonqt_generator --include-paths=/usr/include + ./generator/pythonqt_generator \ + --include-paths=/usr/include \ + --output-directory=. - name: Build PythonQt (exclude_generator) run: | @@ -270,9 +271,9 @@ jobs: - name: Generate Wrappers run: | - cd generator UBSAN_OPTIONS="halt_on_error=1" ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \ - ./pythonqt_generator + ./generator/pythonqt_generator \ + --output-directory=. - name: Build PythonQt (exclude_generator) run: | @@ -397,9 +398,9 @@ jobs: - name: Generate Wrappers shell: cmd run: | - cd generator set QTDIR=%QT_ROOT_DIR% - pythonqt_generator + generator\pythonqt_generator ^ + --output-directory=. - name: Build PythonQt (exclude_generator) shell: cmd diff --git a/.github/workflows/build_latest.yml b/.github/workflows/build_latest.yml index a367f3c54..ff683411b 100644 --- a/.github/workflows/build_latest.yml +++ b/.github/workflows/build_latest.yml @@ -85,11 +85,11 @@ jobs: - name: Generate Wrappers shell: bash run: | - cd generator QTDIR="$QT_ROOT_DIR" \ UBSAN_OPTIONS="halt_on_error=1" \ ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1:fast_unwind_on_malloc=0" \ - ./pythonqt_generator + ./generator/pythonqt_generator \ + --output-directory=. - name: Upload Wrappers uses: actions/upload-artifact@v4 diff --git a/generator/generator.qrc b/generator/generator.qrc index 7eac8aa69..3c9bdad42 100644 --- a/generator/generator.qrc +++ b/generator/generator.qrc @@ -1,20 +1,21 @@ - + qtscript_masterinclude.h build_all.txt -typesystem_general.xml -typesystem_core.xml -typesystem_gui.xml -typesystem_sql.xml -typesystem_opengl.xml -typesystem_svg.xml -typesystem_network.xml -typesystem_xml.xml -typesystem_webkit.xml -typesystem_webenginewidgets.xml -typesystem_xmlpatterns.xml -typesystem_multimedia.xml -typesystem_qml.xml -typesystem_quick.xml +typesystem_general.xml +typesystem_core.xml +typesystem_gui.xml +typesystem_sql.xml +typesystem_opengl.xml +typesystem_svg.xml +typesystem_network.xml +typesystem_xml.xml +typesystem_webkit.xml +typesystem_webenginewidgets.xml +typesystem_xmlpatterns.xml +typesystem_uitools.xml +typesystem_multimedia.xml +typesystem_qml.xml +typesystem_quick.xml diff --git a/generator/typesystem.cpp b/generator/typesystem.cpp index c1c91b6ec..320567db3 100644 --- a/generator/typesystem.cpp +++ b/generator/typesystem.cpp @@ -1600,7 +1600,16 @@ bool TypeDatabase::parseFile(const QString &filename, unsigned int qtVersion, bo { QFile file(filename); - Q_ASSERT(file.exists()); + // Attempt to open the file from the specified path + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + // If opening fails, attempt to load from Qt resources + file.setFileName(":/trolltech/generator/" + filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + qWarning() << "Could not open file:" << filename; + return false; + } + } + QXmlInputSource source(&file); int count = m_entries.size();