[MacPorts] #44193: qt: allow side by side installation of qt4-mac and qt5-mac

MacPorts noreply at macports.org
Mon Oct 5 13:23:53 PDT 2015


#44193: qt: allow side by side installation of qt4-mac and qt5-mac
-------------------------------+------------------------
  Reporter:  mojca@…           |      Owner:  mcalhoun@…
      Type:  enhancement       |     Status:  new
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:
Resolution:                    |   Keywords:
      Port:  qt4-mac, qt5-mac  |
-------------------------------+------------------------

Comment (by rjvbertin@…):

 Replying to [comment:68 michaelld@…]:

 > * When we get QtChooser and/or qt*-kde implemented, we'll need some of
 these in place; until then, I think we can leave them alone.

 "These" being what, here?

 > * Moving sqlite3 back to the main qt4-mac makes sense too, because
 otherwise Assistant fails to execute; either that or moving Assistant to a
 separate port that depends on the sqlite3 plugin; much easier to do the
 former.

 Indeed; much easier, and a *lot* faster.

 > * I don't know enough about "-no-exceptions" to comment. Can you provide
 a link that shows that this is the default for Qt-provided binaries? I'm
 happy to go that way with a variant if it's the usual. At least on Qt4,
 when I do "./configure --help" I see that "-exceptions" is the default;
 that's why it is enabled by default.

 No, I never said it's the default for Qt-provided binaries. With the
 change I propose Qt4 builds as Qt5 does, without using exceptions
 internally (except for a few ... exceptions like QtConcurrent) and without
 support for exceptions enabled in the compiler. That is in fact what we're
 talking about. As I said in my previous comment, Qt's configure `-no-
 exceptions` has effect also on how dependent software is built, but my
 implementation removes that. With some luck I'll be able to trace the
 exchange with Thiago in the archives of the interest Qt ML, but that's
 going to be the only link I can provide.
 I myself used a variant (first optional, then default) before finally
 realising that everything just works, and making the `-exceptions` build
 under control of a variant.

 > * No matter the proper way to do a parallel build, MP's way works, yes?
 If so, I'll leave that as is.

 What do you call the MP way, by setting build.jobs? That does NOT work,
 which is the reason for setting MAKEFLAGS. If you look at the `configure`
 script, qmake is built by invoking `make` without any options at all. I
 initially patched the configure script, but after asking on the interest
 ML I was told that "you just have to use `MAKEFLAGS=-jn` ...

 > * I think setting "qt_name qt4" is fine. Reads nicely in directory
 listings too. That's what I use for my internal testing, too.

 Yes, much as I think that we should simply maintain the qt4-mac port name,
 I would hate to see that in the directory structure. Too big, and there is
 an additional argument against it in the case of Qt5 which I won't repeat
 here ;)

 > * my worry about moving data, plugins, and other stuff into
 ${prefix}/share/qt4 is if/when there is qt4-kde or qt4-x11 that provides
 its own versions of these.

 No, I don't think so. I'm not 100% certain about the plugins of a qt4-x11
 build, but qt4-kde will install the exact same things in the shared
 resource directories as qt4-mac does.

 > A well-written project will use the specified QMAKE to glean the
 location of these, so they really don't matter.

 The issues I had were not with building. They were runtime issues that
 IIRC would have required patching the affected dependent ports.

 Of course, if you have no objections against a qt4-kde port then all we
 need to agree upon is how to set up the PortGroup(s) so that users can
 decide to install either the qt4-mac or qt4-kde flavour (but not both,
 IMHO) and at most be obliged to support installing from source those ports
 that do not specifically request the installed Qt4 flavour. You may have
 seen that I have a draft implementation for Qt5 (converting the Qt5
 PortGroup into a "header" that loads either the Qt5-mac or the Qt5-kde
 PortGroup).

-- 
Ticket URL: <https://trac.macports.org/ticket/44193#comment:71>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list