cisco-open-source / qtwebdriver

WebDriver implementation for Qt
https://github.com/cisco-open-source/qtwebdriver/wiki
197 stars 59 forks source link

cross compil #38

Closed jmforum closed 7 years ago

jmforum commented 7 years ago

Hi,

I try to build qtwebdriver for arm. My environment: host: ubuntu 14.04.3 LTS, target: arm

I use buildroot to build a custom QT web browser (QT5.4.1). It use only QT5base + QTWebkit (no QTQuick) here my wd.gypi

{
  'variables': {
    'QT5': '1',
    'WD_CONFIG_QWIDGET_BASE': '0',
# If Qt >= 5.6 set 'WD_CONFIG_WEBKIT' : '0'
    'WD_CONFIG_WEBKIT': '1',
    'WD_CONFIG_QUICK': '0',
    'WD_CONFIG_PLAYER': '0',
    'WD_CONFIG_ONE_KEYRELEASE': '0',
    'QT_INC_PATH': '/home/user/workspace/advantage_Integration/buildroot/outputPod/host/usr/arm-buildroot-linux-gnueabihf$
    'QT_BIN_PATH': '/home/user/workspace/advantage_Integration/buildroot/outputPod/host/usr/bin/',
    'QT_LIB_PATH': '/home/user/workspace/advantage_Integration/buildroot/outputPod/host/usr/arm-buildroot-linux-gnueabihf$
  },
}

After modify the build.sh (add CXX, CXXFLAGS, LDFLAGS for make, set correct path for GYP), I could start the build but it failed when compile test because need Qt5Quick (I can't build it) and Qt5OpenGL(OpenGL is not supported by my target) libs. I modify wd_test.gyp to remove them, but crash after.

I am not familiar with GYP, but is that a possibility to build without those libs ?

Best regards JM

hekra01 commented 7 years ago

Hi I fixed some dependency issues in this commit https://github.com/cisco-open-source/qtwebdriver/commit/d961baea7b3923edfaca6574f853fa9505b84e86

git pull, and try again please.

jmforum commented 7 years ago

Hi,

Thanks for your help. Still a problem (log of make run twice)

  CXX(target) Default/obj.target/WebDriver_core/src/webdriver/webdriver_version.o
  AR(target) Default/obj.target/libWebDriver_core.a
  COPY Default/libWebDriver_core.a
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_web_target_generate_moc_0 src/webdriver/extension_qt/moc_web_view_visualizer.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_web_target_generate_moc_1 src/webdriver/extension_qt/moc_web_view_util.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_web_target_generate_moc_2 src/webdriver/extension_qt/moc_qwebkit_proxy.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_web_target_generate_moc_3 inc/extension_qt/moc_qnetwork_access_manager_tracer.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_web_target_generate_moc_4 inc/extension_qt/moc_qwebviewext.cc
  SOLINK(target) Default/obj.target/libWebDriver_core.so
  COPY Default/lib.target/libWebDriver_core.so
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_base_target_generate_moc_0 inc/extension_qt/moc_q_view_runner.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_base_target_generate_moc_1 src/webdriver/extension_qt/moc_q_event_filter.cc
  RULE wd_ext_qt_gyp_WebDriver_extension_qt_base_target_generate_moc_2 inc/extension_qt/moc_vncclient.cc
  RULE wd_test_gyp_test_widgets_target_generate_ui_0 src/Test/ui_ClickScrollingTest.h
  RULE wd_test_gyp_test_widgets_target_generate_ui_1 src/Test/ui_ElementSelectingTest.h
  RULE wd_test_gyp_test_widgets_target_generate_moc_0 src/Test/moc_Headers.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_1 src/Test/moc_Samples.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_2 src/Test/moc_ClickTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_3 src/Test/moc_ClickScrollingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_4 src/Test/moc_WindowTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_5 src/Test/moc_FindingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_6 src/Test/moc_CoordinatesTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_7 src/Test/moc_ElementAttributeTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_8 src/Test/moc_ElementSelectingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_9 src/Test/moc_TypingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_10 src/Test/moc_BasicKeyboardInterfaceTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_11 src/Test/moc_TextHandlingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_12 src/Test/moc_FormHandlingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_13 src/Test/moc_XPathElementFindingTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_14 src/Test/moc_StaleElementReferenceTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_15 src/Test/moc_VisibilityTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_16 src/Test/moc_RestyledLabel.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_17 src/Test/moc_DragableWidget.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_18 src/Test/moc_BasicMouseInterfaceTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_19 src/Test/moc_TouchTest.cc
  RULE wd_test_gyp_test_widgets_target_generate_moc_20 src/Test/moc_MenuTest.cc
  LINK(target) Default/WebDriver_noWebkit
/opt/arm-cortexa9_neon-linux-gnueabihf-kernel-4.0/bin/../lib/gcc/arm-cortexa9_neon-linux-gnueabihf/4.8.4/../../../../arm-cortexa9_neon-linux-gnueabihf/bin/ld.bfd: cannot find -lQt5Quick
/opt/arm-cortexa9_neon-linux-gnueabihf-kernel-4.0/bin/../lib/gcc/arm-cortexa9_neon-linux-gnueabihf/4.8.4/../../../../arm-cortexa9_neon-linux-gnueabihf/bin/ld.bfd: cannot find -lQt5OpenGL

I am asking me why LINK(target) Default/WebDriver_noWebkit because I want only Webkit ?

I modify generate_wdversion.py because buildroot remove the git folder so for the moment I set data="aa"

Best regards JM

hekra01 commented 7 years ago

I am asking me why LINK(target) Default/WebDriver_noWebkit because I want only Webkit ?

Well, we generate always webkit and no_webkit in all cases. Then you select which bin you want to use. But it should be unralated to your issue.

I suggest to try the quick workaround below. If still not ok, then I'll look further

$ git diff
diff --git a/wd_test.gyp b/wd_test.gyp
index d65aee6..515ac5a 100644
--- a/wd_test.gyp
+++ b/wd_test.gyp
@@ -25,12 +25,9 @@
               '-L<(QT_LIB_PATH)',
               '-lQt5Network',
               '-lQt5Widgets',
-              '-lQt5Quick',
-              '-lQt5Qml',
               '-lQt5Sql',
               '-lQt5Gui',
               '-lQt5Xml',
-              '-lQt5OpenGL',
               '-lQt5PrintSupport',
               '-lQt5Core',
               '-lpthread',
jmforum commented 7 years ago

It's works (I had to remove Qt5Sensors & Qt5Positioning)

Thanks a lot

hekra01 commented 7 years ago

OK. Thanks

jmforum commented 7 years ago

I reached to compile my app with Option 1 (Use QtWebDriver to run your application)

But I had to add DEFINES += QT_NO_QML to the .pro file, and modify inc/base/eintr_wrapper.h @line 19 add #define typeof(x) __typeof__(x) to remove a compilation error out/dist/desktop/h/base/eintr_wrapper.h:20:11: error: ‘typeof’ was not declared in this scope

Best Regards JM