← Back to team overview

kicad-developers team mailing list archive

Re: New Build Dependencies: Lemon + GTK3

 

Just a reminder for developers, this should have happened before any new
dependency was even pulled into KiCad and not resolved after the fact.
If we ran into a situation where we had to spend a lot of time fixing
lemon or could not build it on a given platform, we would be force to
revert all the code that depended on it or write our own solution.

On 8/3/20 1:54 PM, Roberto Fernández Bautista wrote:
> Thanks for that Ian - that sounds great! Definitely a much cleaner
> solution. Did you create a separate branch for this change or is it in
> master?
> 
> Thanks.
> 
> 
> 
> On Mon, 3 Aug 2020 at 18:40, Ian McInerney <Ian.S.McInerney@xxxxxxxx
> <mailto:Ian.S.McInerney@xxxxxxxx>> wrote:
> 
>     I have now updated this so that we bundle the lemon parser code
>     inside thirdparty and build it for ourselves (it is only 1 main c
>     file that was released into the public domain). CMake then takes
>     care of all the pathing for the template and executable file for the
>     targets. This should work on all platforms now with no extra steps.
>     It also means that there is no need to install lemon on dev
>     computers anymore.
> 
>     -Ian
> 
>     On Sun, Aug 2, 2020 at 11:46 PM Mark Roszko <mark.roszko@xxxxxxxxx
>     <mailto:mark.roszko@xxxxxxxxx>> wrote:
> 
>         LOL, "lemon" in VCPKG is not Lemon the grammar generator, it's
>         Lemon the boost graph library.
> 
>         And lemon grammar itself, isn't a real library. It's a single C
>         file. It's very unlikely to be accepted into vcpkg.
> 
>         We may as well just build it on the fly in kicad
>         https://www.sqlite.org/src/file/tool/lemon.c ;
>          
> 
>         On Sun, Aug 2, 2020 at 6:37 PM Mark Roszko
>         <mark.roszko@xxxxxxxxx <mailto:mark.roszko@xxxxxxxxx>> wrote:
> 
>             MSVC support is a work in progress so it's not that its not
>             supported, it's just someone needs to fix it ;)
> 
>             On Sun, Aug 2, 2020 at 6:06 PM Roberto Fernández Bautista
>             <roberto.fer.bau@xxxxxxxxx
>             <mailto:roberto.fer.bau@xxxxxxxxx>> wrote:
> 
>                 Just tried your branch and unfortunately couldn't get it
>                 to compile on Visual Studio (even after a "vcpkg install
>                 lemon:x64-windows" and "vcpkg integrate install")... I
>                 got the cmake error "lemon not found"
> 
>                 I know Visual Studio isn't officially supported but any
>                 ideas what I could do to install lemon correctly so
>                 visual studio/ cmake can recognise it?
> 
>                 Thanks
> 
>                 Roberto
> 
>                 On Sun, 2 Aug 2020 at 22:06, Ian McInerney
>                 <Ian.S.McInerney@xxxxxxxx
>                 <mailto:Ian.S.McInerney@xxxxxxxx>> wrote:
> 
>                     Yes, I have a branch on my fork [1] called
>                     "im/lemon" that can be used. It can be found
>                     here: https://gitlab.com/imcinerney/kicad/-/tree/im/lemon.
>                     If the build passes with that, it means lemon
>                     integration is working. CMake should error during
>                     configuration if the lemon executable can't be found
> 
>                     -Ian
> 
>                     [1] https://gitlab.com/imcinerney/kicad
> 
>                     On Sun, Aug 2, 2020 at 10:01 PM Adam Wolf
>                     <adamwolf@xxxxxxxxxxxxxxxxxxxx
>                     <mailto:adamwolf@xxxxxxxxxxxxxxxxxxxx>> wrote:
> 
>                         Is there a branch packages can use to make sure
>                         their lemon integration is working?
> 
>                         On Sun, Aug 2, 2020, 4:00 PM Ian McInerney
>                         <Ian.S.McInerney@xxxxxxxx
>                         <mailto:Ian.S.McInerney@xxxxxxxx>> wrote:
> 
>                             Two new build-time dependencies are being
>                             added to the master branch for v6:
>                             * lemon - The lemon parser generator
>                             * GTK3 (linux only) - the GTK3 libraries
>                             (only GTK3, not GTK2 - that is not supported
>                             anymore). This is technically also a runtime
>                             dependency, but we also need GTK3 for
>                             wxWidgets, so it shouldn't be a new runtime
>                             dep (only needing the build headers are new).
> 
>                             The lemon parser is needed to
>                             fix https://gitlab.com/kicad/code/kicad/-/issues/5013 by
>                             changing how the files are generated (in
>                             MR https://gitlab.com/kicad/code/kicad/-/merge_requests/318).
>                             GTK3 is needed to enable new functionality
>                             inside the platform-specific
>                             KIPLATFORM library for Linux (such as
>                             overriding menu settings, moving files to
>                             trash, etc.)
> 
>                             All developers should make sure they have
>                             these new dependencies installed, and
>                             nightly builds should add them to their
>                             build script (Steve, thanks for updating
>                             Fedora's so quick!) I have opened issue on
>                             GitLab for the builders on there:
>                             https://gitlab.com/kicad/packaging/kicad-win-builder/-/issues/101
>                             https://gitlab.com/kicad/packaging/kicad-mac-builder/-/issues/332
>                             https://gitlab.com/kicad/packaging/kicad-ubuntu-builder/kicad-daily-package/-/issues/2
> 
>                             I haven't merged any code into master that
>                             needs them yet, but I would like to merge
>                             the lemon fix as soon as possible (the
>                             problem it is solving has attracted
>                             increased attention it seems).
> 
>                             -Ian
>                             _______________________________________________
>                             Mailing list:
>                             https://launchpad.net/~kicad-developers
>                             Post to     :
>                             kicad-developers@xxxxxxxxxxxxxxxxxxx
>                             <mailto: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
>                     <mailto: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
>                 <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>                 Unsubscribe : https://launchpad.net/~kicad-developers
>                 More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
>             -- 
>             Mark
> 
> 
> 
>         -- 
>         Mark
> 
> 
> _______________________________________________
> 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
> 


References