Author Topic: Qt6 Development  (Read 210823 times)

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #135 on: November 22, 2022, 05:19:43 pm »
Hi PAul,

On several programs i get this in popup.log

11-22-2022  17:14:44  SYS2070  PID 0295  TID 0001  Slot 007a
F:\QT6_SOURCE\FOCUSWRITER-1.8.3\CMAKE-1220\FOCUSWRITER.EXE
QT6QUIC6->QT6QUIC6.__ZN20QQuickFileNameFilter16staticMetaObjectE
127

I see its in Qt6Quic6.dll and Qt6QuickDialogs2Utils_dll.a
If i add the .a to exe file its still show this error in popup

Also.....
H:\usr\local1220\lib>chkdll32 Qt6Quic6.dll
Loading DLL 'libcn0' --> C:\USR\LIB\LIBCN0.DLL.
Loading DLL 'Qt6Gui6' --> H:\USR\LOCAL1220\LIB\QT6GUI6.DLL.
Loading DLL 'Qt6Core6' --> H:\USR\LOCAL1220\LIB\QT6CORE6.DLL.
Loading DLL 'Qt6Quic6' --> NOT loaded!
DosExit or exception while loading 'Qt6Quic6'.
Loading DLL 'Qt6Qml6' --> H:\USR\LOCAL1220\LIB\QT6QML6.DLL.
Loading DLL 'gcc1' --> C:\USR\LIB\GCC1.DLL.

and

[chkdll32 Qt6Mult6.dll]

Loading DLL 'libcn0' --> C:\USR\LIB\LIBCN0.DLL.
Loading DLL 'Qt6Core6' --> H:\USR\LOCAL1220\LIB\QT6CORE6.DLL.
Loading DLL 'Qt6Mult6' --> NOT loaded!
DosExit or exception while loading 'Qt6Mult6'.
Loading DLL 'Qt6Qml6' --> H:\USR\LOCAL1220\LIB\QT6QML6.DLL.
Loading DLL 'Qt6Gui6' --> H:\USR\LOCAL1220\LIB\QT6GUI6.DLL.
Loading DLL 'Qt6Quic6' --> H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL.
Unable to load procedure from Qt6Quic6 (file: H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL)
Entry '__ZNK10QSGTexture16removedFromAtlasEP23QRhiResourceUpdateBatch' could not be resolved.
DosQueryProcAddr returned: 127
Unable to load procedure from Qt6Quic6 (file: H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL)
Entry '__ZNK10QSGTexture14isAtlasTextureEv' could not be resolved.
DosQueryProcAddr returned: 127
Unable to load procedure from Qt6Quic6 (file: H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL)
Entry '__ZNK10QSGTexture24normalizedTextureSubRectEv' could not be resolved.
DosQueryProcAddr returned: 127
Unable to load procedure from Qt6Quic6 (file: H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL)
Entry '__ZN10QSGTexture11qt_metacallEN11QMetaObject4CallEiPPv' could not be resolved.
DosQueryProcAddr returned: 127
Unable to load procedure from Qt6Quic6 (file: H:\USR\LOCAL1220\LIB\QT6QUIC6.DLL)

Seems there some wrong ???

Btw do you see same  or...
If not could you zip up al youre dll and .a

« Last Edit: November 22, 2022, 07:37:09 pm by TeLLie »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #136 on: November 22, 2022, 08:52:16 pm »
Hey Tellie, I'm guessing that DLL is from https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qtquicktimeline-everywhere-src-6.2.4.tar.xz ? I haven't tried to build this module...

Edit: Nope it's from QtQuick - which QtDeclarative didn't enable for some reason.

Edit2: because at the time I built QtDeclarative, I hadn't built QtShaderTools
« Last Edit: November 22, 2022, 08:58:05 pm by Paul Smedley »

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #137 on: November 23, 2022, 12:00:03 am »
Hi PAul,

What should i do rebuild without QtShaderTools
Or any other suggestion?

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #138 on: November 23, 2022, 02:06:51 am »
Hey Tellie,

I set a new build of QtDeclarative going this morning and QtShaderTools was detected, so QtQuick will get built. I'll do some testing and confirm if I can reproduce your issue. It's potentially an issue with symbols not being correctly exported....

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #139 on: November 25, 2022, 12:22:24 am »
Hey all, sorry, I've had a busy week, and am heading to our holiday house this weekend.

I've been spending what little time I have updating cmake to v3.19... I got it building this morning, but its crashing whilst generating makefiles - which is less that idea.

I also discovered a problem in how cmake generates 8.3 DLL names - where it just uses the first 8 characted of the DLL name. In general this works OK.... but in cases where Qt6 wants to build Qt6Multimedia & Qt6MultimediaWidgets - then both DLL's end up being called Qt6Multi and we get into trouble.

I'll hack cmake to do something a bit more creative once I fix the crashes in 3.19...

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #140 on: November 25, 2022, 04:31:11 am »
Still working on the DLL naming issue with cmake, but I got bored and compiled focuswriter 1.8.3....
see attached screenshot...

There are definitely some issues, trying to paste from the clipboard results in a crash :) but it's encouraging.
« Last Edit: November 25, 2022, 04:33:06 am by Paul Smedley »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #141 on: November 25, 2022, 05:38:20 am »
https://smedley.id.au/tmp/cmake-3.19.8-os2-20221125.zip seems to work.... for DLL names > 8 it now uses the first 7 and last 1 characters of the DLL name; and currently isn't appending the DLL version number to the DLL name.

TeLLie

  • Full Member
  • ***
  • Posts: 226
  • Karma: +11/-0
    • View Profile
Re: Qt6
« Reply #142 on: November 25, 2022, 08:23:48 am »
Hi Paul,

Thankz for the newer build :)
Need i to recompile all with the newer cmake or just the multimedia ?

And have fun in you're holidayhouse :P

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #143 on: November 25, 2022, 09:58:04 am »
Hey Tellie,
Thankz for the newer build :)
Need i to recompile all with the newer cmake or just the multimedia ?

And have fun in you're holidayhouse :P

Most/all of the DLL names will change, so ideally, rebuild all. I'm doing a full rebuild myself to see if anything else is broken :P

Once I've done the rebuild I'll upload a new zip as an alpha so at least if anyone wants to try and port anything there is a consistent set of libs.

I also need to work out why focus writer / cmake couldn't find the qt libs, so I had to manually hack make files to get it linking ..
« Last Edit: November 25, 2022, 10:30:46 am by Paul Smedley »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #144 on: November 25, 2022, 10:27:50 pm »
I tried qt-creator as that is how it is recommended to build the examples. Too much missing I think.
Code: [Select]
-- Could NOT find Qt6Qml (missing: Qt6Qml_DIR)
-- Could NOT find Qt6Core5Compat (missing: Qt6Core5Compat_DIR)
CMake Error at cmake/FindQt5.cmake:57 (find_package):
  Found package configuration file:

    h:/tmp/qt6/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find Qt component "Qml".

  Expected Config file at "h:/tmp/qt6/lib/cmake/Qt6Qml/Qt6QmlConfig.cmake"
  does NOT exist

  Failed to find Qt component "Core5Compat".

  Expected Config file at
  "h:/tmp/qt6/lib/cmake/Qt6Core5Compat/Qt6Core5CompatConfig.cmake" does NOT
  exist



Call Stack (most recent call first):
  CMakeLists.txt:68 (find_package)


-- Configuring incomplete, errors occurred!
See also "K:/work/qt-creator/qtcreator_build/CMakeFiles/CMakeOutput.log".
See also "K:/work/qt-creator/qtcreator_build/CMakeFiles/CMakeError.log".

I found the missing QT6Core5Compat error interesting but had other stuff to do so didn't follow up yet.

FYI - qt5compat from https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qt5compat-everywhere-src-6.2.4.tar.xz builds out of the box... and gives me a Qt6Core5Compat_dll.a

Qt Creator 8.0.1 configure completes now...

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #145 on: November 26, 2022, 05:23:24 am »
Documenting this here whilst I think about it - I suspect the focuswriter issues with pasting are due to the hacks I made to get https://github.com/psmedley/qt6-base-os2/blob/main/src/plugins/platforms/os2/qos2clipboard.cpp building :)

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #146 on: November 26, 2022, 09:47:26 am »
Making progress with QtCreator.. some hacks required to get past build breaks...

One thing that will be needed is support in cmake for WINDOWS_EXPORT_ALL_SYMBOLS - otherwise the Proparser DLL has no exports....

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #147 on: November 26, 2022, 10:54:14 pm »
OK... time for what is VERY much an ALPHA release...

Qt6 binaries/libraries - https://smedley.id.au/tmp/qt6-6.2.4-os2-20221127.zip

Focuswriter 1.8.3 for Qt6 - https://smedley.id.au/tmp/focuswriter-1.8.3-qt6-20221127.zip

I already know about a TRAP with copy/paste form Focuswriter - I've created a minimal ticket to track this at https://github.com/psmedley/qt6-base-os2/issues/1

There are BOUND to be other issues as well.

Some release notes:
1) As I stated at the start of this thread, this release would not have been possible with bww's work on Qt5 - most of the OS/2 specific changes for Qt6 were lifted straight from the Qt5 code; with build fixes coming from me.
2) There was a LOT of work to adapt cmake to a later version which was needed for Qt6; and also to adapt the Qt6 build system which completely changed.
3) QtWebEngine is NOT (yet?) included, so at this stage, there is no browser possible with Qt6. It is loosely on the agenda to try and get this building, but it's a big job.
4) Thanks to Elbert Pol and Dave Yeo, who have been testing the build system and identifying issues
5) All the code for Qt is at my github at https://github.com/psmedley
6) Currently included is:
  • qt5compat
  • qt6-base
  • qt6-declarative
  • qt6-multimedia
  • qt6-shadertools
  • qt6-svg
  • qt6-tools
  • qt6-webchannel
  • qt6-websockets

Whilst I'll continue to work on this as time permits, any sponsorship is greatly appreciated - via PayPal using the link at https://os2ports.smedley.id.au, or via the Arca Noea webstore at https://www.arcanoae.com/shop/os2-ports-paul-smedley

If nothing else - if you're interested in seeing this work continue, please comment here to let me know that I'm not wasting my time on this!

Cheers,

Paul

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Qt6
« Reply #148 on: November 26, 2022, 11:36:00 pm »
 Thanks Paul! Of course I'm interested in seeing this continue - unbelievable how fast you are getting results. Thanks to Dave and Tellie too for helping make it work.

Regards,

 P.S. - the link to Focuswriter gives a 404...


Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Qt6
« Reply #149 on: November 27, 2022, 12:54:04 am »
Oops, will fix focuswriter link when we get back to the house

Edit: link is fixed
« Last Edit: November 27, 2022, 01:43:46 am by Paul Smedley »