atlas-engineer / cl-webengine

A binding to WebEngine Qt for Common Lisp
BSD 3-Clause "New" or "Revised" License
17 stars 7 forks source link

Compilation error on Ubuntu 20.04 #12

Open Vivien-lelouette opened 3 years ago

Vivien-lelouette commented 3 years ago

Hello,

I am currently trying out Nyxt. I find it pretty cool, but I would like to try using webengine instead of webkit.

To do so, I am trying to compile this project on Ubuntu 20.04, with the following qt dependancies installed: sudo apt install libqt5core5a libqt5gui5 libqt5widgets5 libqt5webenginewidgets5

I get the following stacktrace: ~/common-lisp/cl-webengine master 18:56:46❯ sudo make all cd source && qmake make -C source make[1]: Entering directory '/home/user/common-lisp/cl-webengine/source' g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebChannel -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtPositioning -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o interface.o interface.cpp interface.cpp: In function ‘void webEnginePageSetLivecycleState(void, int)’: interface.cpp:151:21: error: ‘class QWebEnginePage’ has no member named ‘setLifecycleState’ 151 | _webEnginePage->setLifecycleState(static_cast(state)); | ^~~~~ interface.cpp:151:67: error: ‘LifecycleState’ in ‘class QWebEnginePage’ does not name a type 151 | _webEnginePage->setLifecycleState(static_cast(state)); | ^~~~~~ interface.cpp: In function ‘int webEnginePageLivecycleState(void)’: interface.cpp:156:33: error: ‘class QWebEnginePage’ has no member named ‘lifecycleState’ 156 | return (int)_webEnginePage->lifecycleState(); | ^~~~~~ interface.cpp: In function ‘void webEnginePageSetUrlRequestInterceptor(void, void)’: interface.cpp:176:5: error: ‘QWebEngineUrlRequestInterceptor’ was not declared in this scope; did you mean ‘webEnginePageSetUrlRequestInterceptor’? 176 | QWebEngineUrlRequestInterceptor _interceptor | ^~~~~~~ | webEnginePageSetUrlRequestInterceptor interface.cpp:176:38: error: ‘_interceptor’ was not declared in this scope; did you mean ‘interceptor’? 176 | QWebEngineUrlRequestInterceptor _interceptor | ^~~~ | interceptor interface.cpp:177:26: error: ‘QWebEngineUrlRequestInterceptor’ does not name a type; did you mean ‘webEnginePageSetUrlRequestInterceptor’? 177 | = reinterpret_cast<QWebEngineUrlRequestInterceptor>(interceptor); | ^~~~~~~ | webEnginePageSetUrlRequestInterceptor interface.cpp:177:57: error: expected ‘>’ before ‘’ token 177 | = reinterpret_cast<QWebEngineUrlRequestInterceptor>(interceptor); | ^ interface.cpp:177:57: error: expected ‘(’ before ‘’ token 177 | = reinterpret_cast<QWebEngineUrlRequestInterceptor>(interceptor); | ^ | ( interface.cpp:177:58: error: expected primary-expression before ‘>’ token 177 | = reinterpret_cast<QWebEngineUrlRequestInterceptor>(interceptor); | ^ interface.cpp:177:72: error: expected ‘)’ before ‘;’ token 177 | = reinterpret_cast<QWebEngineUrlRequestInterceptor*>(interceptor); | ^ | ) interface.cpp:178:21: error: ‘class QWebEnginePage’ has no member named ‘setUrlRequestInterceptor’ 178 | _webEnginePage->setUrlRequestInterceptor(_interceptor); | ^~~~~~~~ make[1]: [Makefile:419: interface.o] Error 1 make[1]: Leaving directory '/home/user/common-lisp/cl-webengine/source' make: [Makefile:4: all] Error 2

As I am not yet confortable with common lisp, I am not able to understand if I am doing something wrong, or if there is a bug in this project compilation.

Can you advise me on the matter ?

Ambrevar commented 3 years ago

Hi,

the cl-webengine project is still at its infancy and might not build properly at the moment.

Hopefully we can dedicate more time to it at some point, but in the meantime I'm afraid it won't be usable. Contributions are welcome of course!

Note: As a rule of thumb, never use "sudo" when building software locally, it's dangerous ;)

dglb commented 3 years ago

hi,

according to https://doc.qt.io/qt-5/qwebenginepage.html#lifecycleState-prop

setLifecycleState() was introduced in Qt 5.14.

Ambrevar commented 3 years ago

Good point, thanks for the link!