kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #39232
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