Re: [Development] Qt 6 co-installability with Qt 5

2021-02-23 Thread Elvis Stansvik
Den tis 23 feb. 2021 21:27Joerg Bornemann  skrev:

> On 2/23/21 8:52 PM, Thiago Macieira wrote:
> > On Tuesday, 23 February 2021 00:00:22 PST Joerg Bornemann wrote:
> >> On 2/20/21 2:44 AM, Thiago Macieira wrote:
> >>> Besides, doesn't Windows now have symlinks?
> >>
> >> For admin users only unless an admin user enables them for everyone.
> >> Hard-links are available though on NTFS.
> >
> > Can we use the hard-links then?
>
> CMake supports creating hard links with file(CREATE_LINK).
>
> "cmake --install" does not directly support creating hard links. One
> would probably have to use install(SCRIPT) with a script that runs
> file(CREATE_LINK).
>
> For the installer, 7zip supports storing hard links since 9.33.
>
> Without trying anything, it looks like using hard links could work.
>

I guess it rules out installing to e.g. a FAT-formatted USB-stick, but I
don't know if that's a thing. Could be considered an edge case and
documented not to work.

Elvis


>
> Cheers,
>
> Joerg
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
>
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] The sorry state of the Qt6 cross compile experience

2021-02-23 Thread Lorn Potter

Hi,

On 23/2/21 9:27 PM, BogDan Vatra via Development wrote:

- IMHO the qmake build files were removed prematurely ... they should be
removed **after** cmake matched qmake.


Probably would agree with this, but meh, whatever, I'm agile.



Having said that, I truly believe that cmake is a big step backwards.
Am I the only one who's bother by all these things?


I would say a side step. All build systems are a pain in the posterior - 
buildroot, bitbake, tmake, qmake, cmake, whatever Android uses, whatever 
iOS uses... you name it, they all have their own issues. You don't want 
to know what was done to qmake to get it to build qtopia. :)





We have a huge elephant in the room which nobody want to see it...


I guess it's a choice of an elephant or a whale.


--
Lorn Potter
Freelance Qt Developer. Platform Maintainer Qt WebAssembly, Maintainer 
QtSensors

Author, Hands-on Mobile and Embedded Development with Qt 5

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt 6 co-installability with Qt 5

2021-02-23 Thread Joerg Bornemann

On 2/23/21 8:52 PM, Thiago Macieira wrote:

On Tuesday, 23 February 2021 00:00:22 PST Joerg Bornemann wrote:

On 2/20/21 2:44 AM, Thiago Macieira wrote:

Besides, doesn't Windows now have symlinks?


For admin users only unless an admin user enables them for everyone.
Hard-links are available though on NTFS.


Can we use the hard-links then?


CMake supports creating hard links with file(CREATE_LINK).

"cmake --install" does not directly support creating hard links. One 
would probably have to use install(SCRIPT) with a script that runs 
file(CREATE_LINK).


For the installer, 7zip supports storing hard links since 9.33.

Without trying anything, it looks like using hard links could work.


Cheers,

Joerg
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] The sorry state of the Qt6 cross compile experience

2021-02-23 Thread Joerg Bornemann

On 2/23/21 12:27 PM, BogDan Vatra via Development wrote:

OK, biting.


- first and foremost, we need to waste time to **fully** build and install it
for host platform (desktop).


No, you don't need a full build. You need the tools that are called by 
the build system. The support for creating a "minimal desktop" build 
could be better, sure. But you're one of few affected people.


>  Yeah, I know that this was "decided" before TQC
> switched, overnight, to cmake, but let's face it, it's a BS needed to 
cover

> the fact that cmake can't build more than one platform at once.

Let's face it. It's a good thing to not compile the same set of tools 
over and over again, and it simplifies the build very much.



- the cross build installation is broken, instead to copy the tools from the
QT_HOST_TOOLS folder,  it creates some scripts that has hardcoded paths to
QT_HOST_TOOLS which runs the scripts from QT_HOST_TOOLS folder. Of course this
makes the installation unusable on another computer. Even the "lib/cmake/Qt6/
qt.toolchain.cmake" contains hardcoded paths...


Right. The Qt5 qmake build never had any hard-coded paths. Try again.


- there is no way to have a standalone cross build installation, we always
need to ship the whole desktop installation as well (also patch all the files
from cross installation).


Do interpret this correctly as the second attempt in your mail to kindly 
suggest better support for a minimal desktop build?



- android cross compilation is so crippled now.  In Qt 5.x times, we used to
have a nice multi ABI build which built all the android ABIs in one go and it
created a unified Qt SDK for all these ABIs (same as the Android NDK). In Qt 6,
that work was trashed... for the same reason: cmake can't handle multiple
platforms at once...


That's right. We're lacking support for multi-ABI that was hacked into 
the Qt build where we run configure tests for one random architecture 
and use those configure results for all other architectures.

I consider this a good thing.


- android cross compilation in Qt 6 takes more time to build one ABI  with
less Qt modules than in Qt5 to build all ABIs and all modules...


And your thorough analysis of the problem is "CMake is BS"?

Don't get me wrong. Your input is always welcome, but maybe we can get 
away from this amusing yet somehow annoying "gramps rants about how the 
past was better" style.




Cheers,

Joerg
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt 6 co-installability with Qt 5

2021-02-23 Thread Thiago Macieira
On Tuesday, 23 February 2021 00:00:22 PST Joerg Bornemann wrote:
> On 2/20/21 2:44 AM, Thiago Macieira wrote:
> > Besides, doesn't Windows now have symlinks?
> 
> For admin users only unless an admin user enables them for everyone.
> Hard-links are available though on NTFS.

Can we use the hard-links then?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel DPG Cloud Engineering



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Codereview scheduled maintenance break on Monday 1-Mar 7 am CET

2021-02-23 Thread Jukka Jokiniva
Hi all,
 
There will be a maintenance break on the codereview.qt-project.org on Monday 
1-Mar 7:00 am – 8:00 am CET.
The Gerrit version will be upgraded from 3.1.10 to 3.1.12. 

 --Jukka Jokiniva

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] The sorry state of the Qt6 cross compile experience

2021-02-23 Thread Marius Kittler
Hi,

It looks like your experience with the new build system is the very opposite 
of my experience. I've found it to work much more flawlessly, especially with 
regards to cross-compilation targeting mingw-w64 and Android (haven't tested 
the Android build much, though).

---

> first and foremost, we need to waste time to **fully** build and install it

I usually have native/non-cross build around anyways so this never occurred to 
me as a problem. In fact I found it quite nice that I don't have to waste time 
building qmake, other tools and bootstrapping libraries for all targets. 
Simply reusing my native/non-cross binaries seems like a win to me.

> but let's face it, it's a BS needed to cover  the fact that cmake can't 
build more than one platform at once.

Again, this seems like a good thing to me. I found it always messy that qmake 
tries to build for multiple targets at the same time. This makes everything 
more complex. When adjusting some kind of flags or dependency lookup (or 
whatever behavior) it always raised the question: Which targets will it 
affect? How do I make it affect only e.g. the host build? This was not very 
intuitive to deal with. Keeping targets separate simplifies things.

> android cross compilation is so crippled now.

The multi-ABI build never worked well for me with Qt 5. While it is nice that 
Qt's build system offers this feature it doesn't help with the fact that other 
dependencies of my project don't support that. Hence it is still easier to 
install each architecture within its own prefix which unfortunately was broken 
by the multi-ABI build. Hence I don't miss that feature at all.

---

I'd also like to note that with CMake the dependencies of static libraries and 
plugins are taken into account correctly. At least this required some heavy/
hacky patching with qmake in the past. (It might have improved in recent Qt 5 
releases, though. At some point I gave up and just kept using my patches.)

---

I've just wanted to share my own experience because the initial mail was 
overwhelmingly negative. Likely it depends very much on the use-cases, e.g. I 
never wanted to "ship" Qt. My main focus is packaging Qt for GNU/Linux 
including cross-compilation packages for mingw-w64 and Android targets.

Best Regards
Marius


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] The sorry state of the Qt6 cross compile experience

2021-02-23 Thread BogDan Vatra via Development
Hi,

  Even though I said that I'm not opening this subject again, I must do it 
because in this moment, cross compiling Qt6 is painful and broken. 

  Long time ago, in the Qt 5 time, we had an painlessly way to do cross 
compiling, not only for Android, but also for the rest of the platforms.  Yes, 
I know, Qt 5 was using the evil, outdated qmake system which we all loved to 
hate, but it just worked for most of us.

Now cross compiling Qt6 for any platform is broken and painful:

- first and foremost, we need to waste time to **fully** build and install it 
for host platform (desktop). Yeah, I know that this was "decided" before TQC 
switched, overnight, to cmake, but let's face it, it's a BS needed to cover 
the fact that cmake can't build more than one platform at once. 

- the cross build installation is broken, instead to copy the tools from the 
QT_HOST_TOOLS folder,  it creates some scripts that has hardcoded paths to 
QT_HOST_TOOLS which runs the scripts from QT_HOST_TOOLS folder. Of course this 
makes the installation unusable on another computer. Even the "lib/cmake/Qt6/
qt.toolchain.cmake" contains hardcoded paths...

- there is no way to have a standalone cross build installation, we always 
need to ship the whole desktop installation as well (also patch all the files 
from cross installation).

- android cross compilation is so crippled now.  In Qt 5.x times, we used to 
have a nice multi ABI build which built all the android ABIs in one go and it 
created a unified Qt SDK for all these ABIs (same as the Android NDK). In Qt 6, 
that work was trashed... for the same reason: cmake can't handle multiple 
platforms at once...

- android cross compilation in Qt 6 takes more time to build one ABI  with 
less Qt modules than in Qt5 to build all ABIs and all modules...

- IMHO the qmake build files were removed prematurely ... they should be 
removed **after** cmake matched qmake.

Having said that, I truly believe that cmake is a big step backwards.
Am I the only one who's bother by all these things?

We have a huge elephant in the room which nobody want to see it...

Yours,
BogDan.


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Qt 6 co-installability with Qt 5

2021-02-23 Thread Joerg Bornemann

On 2/20/21 2:44 AM, Thiago Macieira wrote:


Besides, doesn't Windows now have symlinks?


For admin users only unless an admin user enables them for everyone.
Hard-links are available though on NTFS.


Cheers,

Joerg
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development