|
From: Mojca M. <moj...@gm...> - 2014-02-24 20:38:26
|
On Mon, Feb 24, 2014 at 8:54 PM, Ethan A Merritt wrote:
> On Monday, 24 February, 2014 20:28:05 Mojca Miklavec wrote:
>> Despite this, I still believe that configuration should work properly
>> when pkg-config is absent.
>
> I seem to recall that we have had this discussion before.
> pkg-config is just a tool that sets various paths and definitions.
> If it is not present you can still set those paths and definitions yourself.
Except that it doesn't work in case of Qt 5.
> The warnings emitted by ./configure about not finding a pkg-config
> file are just informational, not fatal errors.
They are not fatal, but in case of Qt 5 there is no way to enable the
Qt terminal without a working pkg-config.
> For example, libcerf has no *.pc file so ./configure reports
>
> %%%%
> Package requirements (libcerf) were not met:
> No package 'libcerf' found
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
> Alternatively, you may set the environment variables LIBCERF_CFLAGS
> and LIBCERF_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.
> %%%%
>
> But in fact none of that is needed because libcerf.so is installed in
> a standard system location and is found automatically and included
> in the gnuplot build despite being unknown to pkg-config.
>
> Now if you are saying that the PKG_CHECK_MODULES macro
> itself is problematic, then I suppose you can add it as a null operation
> in m4/apple.m4
No, I'm not saying that PKG_CHECK_MODULES macro is problematic. All
I'm saying is that the logic in configure.in is wrong for Qt in case
of missing pkg-configure.
If pkg-config is missing, configure sets
enable_qt_ok=yes
try_qt4=yes
Because
PKG_CHECK_MODULES_NOFAIL(QT, [Qt5Core Qt5Gui Qt5Network Qt5Svg
Qt5PrintSupport])
fails, it doesn't set "try_qt4=no", so the code happily continues in
if test ${try_qt4} != no; then
The code
PKG_CHECK_MODULES_NOFAIL(QT, [QtCore >= 4.5 QtGui >= 4.5 QtNetwork
>= 4.5 QtSvg >= 4.5])
fails again and then
if test $pkg_failed != no; then
enable_qt_ok=no
AC_MSG_WARN([The Qt terminal will not be compiled.])
is happily executed and the Qt terminal gets disabled.
So in contrast to libcerf or any other library, missing pkg-config
currently doesn't allow compilation of the Qt terminal at all.
Disabling pkg-config for all Apples seems unreasonable because some
machines (using MacPorts, HomeBrew or Fink) do provide it. Also, there
exists a folder <QTDIR5>/lib/pkgconfig, but setting PKG_CONFIG_PATH
alone doesn't help in case of existing Qt 4 in MacPorts/Fink and
compiling gnuplot without MacPorts/Fink/HomeBrew is a bit of a pain
anyway.
(Maybe --with-qt=qt5 would help after all if you need to know which
version of Qt is being used when pkg-config is missing, but I leave
that to you. I would imagine that an argument to --with-qt would be
something like --with-qt=/path/to/qtdir5 anyway.)
Mojca
|