← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Build fixes: bitmaps and polygon

 

Le 31/01/2019 à 17:48, John Beard a écrit :
> The second set of patches I just sent seems to work on the Ubuntu
> docker image with CMake 3.5.1.
> 
> Cheers,
> 
> John

Hi John,

After cleaning the build directory and reappling your second set, the
build works.
I tested it on msys2 with cmake 3.7, and on Kubuntu 14.04 LTS (still
maintained) with cmake 3.0

Thanks.

> 
> 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
> 
> _______________________________________________
> 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
> 


-- 
Jean-Pierre CHARRAS


References