[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lmi] PATCH: disable the of system libraries when building wx
From: |
Greg Chicares |
Subject: |
Re: [lmi] PATCH: disable the of system libraries when building wx |
Date: |
Thu, 23 Jul 2020 10:58:00 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
On 2020-07-21 01:06, Vadim Zeitlin wrote:
>
> I just lost quite some time on debugging a weird build problem which
> turned out to be due to wx configure picking up the system libtiff version
> when cross-compiling for MSW from Linux. Of course, it really shouldn't
> have done this in the first place, and I hope to fix this in wx itself
> later, but for now I'd like to propose the following simple patch
This is certainly okay for now at least. I could imagine that someday
we might want to use a system library such as libz, but for now we don't.
I've read your note on '--disable-sys-libs' here:
https://www.wxwidgets.org/blog/2014/07/easier-way-to-avoid-dependencies-on/
and still have one question: does that option in effect force all of
wx's possible builtin libraries to be built, meaning that it's
shorthand for
'--with-libX=builtin' for all X in possible builtin libraries
, or does it just prevent the use of system libraries?
Does each of wx's possible builtin libraries have three build-flag states:
- build the builtin, and use it whenever called for
- don't build the builtin; use a system library if available
- don't build the builtin, and prevent use of any system equivalent
or only the first two?
IOW, I'm not absolutely certain about this, but I think that
--with-zlib=builtin
means "build libz as part of wx's install process, whether or not libz
is actually to be used by the client application (lmi, e.g.); and set
'wx-config' to provide that builtin (overriding any system library)
in case the client actually does use libz". (I don't see how it could
do otherwise: when wx is being built, it can't know whether I'm
building it with a particular application (lmi, e.g.) in mind, or
whether that application will require libz.
If that's all true, then, as a corollary, I suppose '--disable-sys-libs'
will cause us to build libraries that we'd never want. That would be
inefficient, though the extra time would probably be negligible; but
it would also mean that an error building some unwanted library
could break the build, right?
OTOH, am I mistaken in thinking that '--disable-sys-libs' means
"build every possible library"? Could it mean "build (and use) any
library offered as a builtin, but only if specifically requested by
'--with-libX=builtin'; but set 'wx-config' to prevent linking to a
system version of any such library"? (I suppose you could do that
with negligible overhead by doing something like `touch libX` to
force a link error.)
Here's a simpler question:
> ---------------------------------- >8 --------------------------------------
> commit 82c1165c562e3f08831809d9f70df984af8b958c
> Author: Vadim Zeitlin <vadim AT tt-solutions DOT com>
> Date: 2020-07-21 02:21:20 +0200
>
> Disable use of all system libraries when building wxWidgets
>
> We don't want to use any system libraries, not only Expat, linpng and
> zlib ones.
>
> diff --git a/install_wx.sh b/install_wx.sh
This commit isn't in your github repository AFAICT, but it seems
to be identical to e164e4282a4b2, which is part of PR #145. I think
I'll just pull that 'ci-workflow' branch. That includes this
'--disable-sys-libs' change, and gives the full result that you
really want, right?