← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Build fixes: bitmaps and polygon

 

The second set of patches I just sent seems to work on the Ubuntu
docker image with CMake 3.5.1.

Cheers,

John

On Thu, Jan 31, 2019 at 4:42 PM Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>
> On 1/31/2019 11:27 AM, jp charras wrote:
> > Le 31/01/2019 à 16:52, jp charras a écrit :
> >> Le 31/01/2019 à 16:29, Wayne Stambaugh a écrit :
> >>> JP,
> >>>
> >>> On 1/31/2019 10:11 AM, jp charras wrote:
> >>>> Le 31/01/2019 à 15:40, John Beard a écrit :
> >>>>> Hi,
> >>>>>
> >>>>> Two patches for building these libs:
> >>>>>
> >>>>> 1) Make bitmaps a "Proper" library. By splitting it off like this, the
> >>>>> includes for each of the hundreds of XPM cpp files do not need to suck
> >>>>> in WX headers. This speeds compilation by something like 10x or more
> >>>>> (it now builds in <5 seconds with -j6), with a similar reduction in
> >>>>> the size of libbitmaps.a. Also, making it a proper library allows to
> >>>>> use the CMake dependency mechanism better.
> >>>>> 2) Do the same for the CMake of the polygon libraries, again
> >>>>> simplifying all the "downstream" targets - they no longer need to
> >>>>> manually specify the linkage to polygon or the include dirs.
> >>>>>
> >>>>> Apparently, both these libraries were setting off static analysers, as
> >>>>> they were a circular dependency. For example, bitmaps required common
> >>>>> for the defs, but common required bitmaps for the images. This ended
> >>>>> up pushing all the linkage down to the final executables, which is now
> >>>>> much simpler (just link common, and you should get what you need, with
> >>>>> includes set correctly).
> >>>>>
> >>>>> Jenkins passes (MSVC and Msys2), but might be worth getting an OSX
> >>>>> build as there is a different CMake command in there!
> >>>>>
> >>>>> Cheers,
> >>>>>
> >>>>> John
> >>>>
> >>>> Hi John,
> >>>>
> >>>> I have this cmake error when trying to build Kicad with these patches:
> >>>>
> >>>> "CMake Error at pcbnew/CMakeLists.txt:645 (target_link_libraries):
> >>>>   Object library target "pcbnew_kiface_objects" may not link to anything."
> >>>>
> >>>> (cmake version 3.7.2, W7 32bits, msys2)
> >>>>
> >>>>
> >>>
> >>> I didn't have any problem creating a 32 bit build using msys2.  It maybe
> >>> your CMake version.  I'm using CMake 3.12.4.  I also did a clean build
> >>> so that could the issue.  This change works pretty well so I hope it's
> >>> not a CMake version issue.  I don't want to bump the CMake version if we
> >>> don't have to.
> >>>
> >>> Cheers,
> >>>
> >>> Wayne
> >>
> >> I just tested with a more recent msys2 version (using cmake 3.11) on a
> >> clean build, but no success.
> >>
> >
> > After tests:
> >
> > Using cmake 3.12 works.
> > But older versions do not work.
> >
>
> Forcing CMake to 3.12 will severely limit the number of platforms that
> would be able to build kicad so this patch set doesn't seem likely to be
> accepted unless we can figure out a way to accomplish the same task with
> older versions of CMake.  Ubuntu Trusty uses CMake 2.8.12 but
> trusty-updates is 3.5.1 so I would reluctant to limit cmake to a newer
> version that that.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References