Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index



On 9 Dec 2016, at 11:35, Bjoern Michaelsen <bjoern.michaelsen@canonical.com> wrote:

Hi, 

some additional thoughts below:

On Thu, Dec 08, 2016 at 07:40:40PM +0100, Bjoern Michaelsen wrote:
    AFAICS - there -should- also be no need for cygwin, LODE, or anything
else in this world ;-) just a single download.
Ok, who is going to finally kill scp2, the horribly icon-theme scriping, UNO
registry generation plumbing etc. for good? (With kill=port to plain C++ tooling).
[...]
Well, we sneakily use various bits of sed/gawk/gperf/perl/python/zip/tar/... in
various corners of the build. Killing those and replacing them with GNU make
and plain C++ would be good, but is quite a thankless effort. I agree though it
would be appreciated to make the build easier to bootstrap.

tl;dr: First kill the POSIX deps sprinkled all over the repo[1], building a bit of
C++ libs isnt the issue.  All the plumbing around it is.

On a more positive and actionable note: With C++11 having regex[1] that
certainly is possible and e.g. Perl-to-C++11 might even be some EasyHacks.
Limiting the tools used in the build system to C++11, GNU make and basic
cross-plattform busybox[2] might be a starting point and allow all of:

- migrating to e.g. using ninja as backend
- migrating away from GNU make (via gbuildtojson and manually recreating the
 bazillion configure-based conditional we have in Makefiles)
- simple bootstrapping on Windows without the need for cygwin or LODE 
Now we are getting very close to my x-mas wishlist.

the current json files made by gbuildjson misses 2 things:
- objective C++ (and some other language) files are not accounted for
- there are no dependency structure (as provided by running “make -d”)

I have been experimenting with a variant of gbuildtojson:
- the gb_macros do not make the C++ program, but makes a simple echo with an identifier
- make is called with “make -d gbuildtojson | gbuildjson.exe
- the C++ program is changed to understand the “make -d” dependency structure, and of course the 
echo statements.

With that change the json files contains enough information to e.g. generate a new set of makefiles 
without macros.
 

So while I am reluctant to replace gbuild as the canonical build _right now_,
Im all for killing the custom tooling based on all of coreutils and Perl in
gbuild (and replace it with plain C++11 ... and maybe busybox for a start).
Once that happened, we can consider all the options on where to carry the build
system from there. But locking in one of those options now, with all the
tooling crap still around would be jumping the gun.

So: Who is going to champion the "kill all Perl in the Build" (for a start) EasyHack?
It is not fair I just complain without also volunteering :-)

That would be something I would like to do, with a little help from the experts, and provided 
Norbert has nothing against it.

have a nice weekend
jan I.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.