kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #41269
Re: Bug 1833851 - Massively Parallel Builds
For what it's worth, I have already essentially made python an unofficial
packaging requirement on macos.
Adam
On Sun, Jun 30, 2019, 9:45 AM Seth Hillbrand <seth@xxxxxxxxxxxxx> wrote:
> Hi Devs-
>
> I'm stuck at a decision on this bug and would like some opinions from
> others.
>
> The background is the GNU make is not intelligent about parallel builds
> and doesn't merge generated targets. So we need to serialize the
> dependencies but this breaks everytime we include the lexer header file
> in a different object or use the generated DSO for more than one target.
> Eventually, we have sufficient parallel processes that the header gets
> generated twice. If this happens at the same time, the build breaks.
>
> The two (ok, three) options I see are as follows:
>
> 1) Build the header file into a target directory instead of the source
> directory. Then everyone gets to build their own with no conflict. We
> end up building lots and lots of header/lexer files. Developers won't
> see the files in the usual location.
>
> 2) We build the files like bitmap pngs. That is, they are re-built by a
> different CMAKE flag and their header/cpp files are checked into the
> repository. When we add tags to the parser, we need to explicitly
> regenerate the lexer files and check them in.
>
> 3) External scripting. We could utilize an external python script to
> force one build at a time using lockfiles. This would add python as a
> build dependency. We could alternatively use flock in a shell script
> but I'm not sure that exists on all platforms.
>
> Does anyone have preference for which option we take?
>
> -Seth
>
> _______________________________________________
> 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