woboq / qmetaobject-rs

Integrate Qml and Rust by building the QMetaObject at compile time.
MIT License
620 stars 89 forks source link

build issue on Qt 6.2.3 with qtwebenginequick #259

Open nniclausse opened 2 years ago

nniclausse commented 2 years ago

I can't build with Qt 6.2.3 (runs fine with Qt6.2.2):

  Compiling qmetaobject v0.2.7 (/home/nniclaus/git/qmetaobject-rs/qmetaobject)
The following warnings were emitted during compilation:

warning: In file included from /home/nniclaus/miniconda3/envs/qt623/include/qt/QtWebEngineCore/QtWebEngineCore:15,
warning:                  from /home/nniclaus/miniconda3/envs/qt623/include/qt/QtWebEngineQuick/QtWebEngineQuickDepends:7,
warning:                  from /home/nniclaus/miniconda3/envs/qt623/include/qt/QtWebEngineQuick/QtWebEngineQuick:3,
warning:                  from src/webengine.rs:7:
warning: /home/nniclaus/miniconda3/envs/qt623/include/qt/QtWebEngineCore/qwebengineloadinginfo.h:45:10: fatal error: QExplicitlySharedDataPointer: No such file or directory
warning:    45 | #include <QExplicitlySharedDataPointer>
warning:       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning: compilation terminated.

error: failed to run custom build command for `qmetaobject v0.2.7 (/home/nniclaus/git/qmetaobject-rs/qmetaobject)`

the following patch fixes the problem, although i don't know if it's the right way to do this:

diff --git a/qmetaobject/build.rs b/qmetaobject/build.rs
index cf7598f..1cc5523 100644
--- a/qmetaobject/build.rs
+++ b/qmetaobject/build.rs
@@ -29,6 +29,7 @@ fn main() {
     for f in std::env::var("DEP_QT_COMPILE_FLAGS").unwrap().split_terminator(";") {
         config.flag(f);
     }
+    config.include(format!("{}/QtCore", &qt_include_path));
     config.include(&qt_include_path).build("src/lib.rs");

     for minor in 7..=15 {