← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Build fixes: bitmaps and polygon

 

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


Follow ups

References