On Sun, Jul 5, 2020 at 7:27 AM Peter <pe...@apache.org> wrote:

> Awesome Damjan,
>
>
Thank you :)


> I had a talk with SCons on freenode IRC. they liked the plan to move to
> SCons a lot.
>
> And did support us right a way. :) So I am poretty confidant that SCons
> will do the trick.
>
> How did you talk to SCon people?
>
>
That's great.

We talked on the scons-us...@scons.org mailing list.



>
> I think there is are some more tools that we need to examine before we
> can drop Cygwin.
>
> http://www.openoffice.org/tools/build_env_tools.html
>
>
That list is missing idlc, if not others. And what does that mean? Those
tools are built by the "Executable" targets which we already support.

With the changes I just pushed, AllLangResTarget from main/uui built fine
in "cmd" on my first try (with Python and SCons installed outside Cygwin),
though I do want to check that the paths passed to rsc.exe are correct. My
MSVC is broken, so I can't test the binary targets.


>
> I have to look at the SCons. I plan to build GSICheck also with SCons,
> even if it is a total simple tool.
>
>
Ok great.


>
> All the best.
>
> Peter
>
>
You too
Damjan


>
> Am 04.07.20 um 20:44 schrieb Damjan Jovanovic:
> > Hi
> >
> > In the scons-build branch, I've just pushed a set of 11 commits that
> > theoretically get 93 out of 105 gbuild modules (88.57%) automatically
> > converting to gbuild.
> >
> > The "gotoSCons" converter and the SCons infrastructure in that branch
> have
> > now been developed to such a level that a module can be automatically
> > converted from gbuild to SCons, from where it can use SCons for all of
> the
> > following:
> > Building C/C++ objects
> > Linking shared libraries, static libraries, and executables
> > Building JUnit tests and running them
> > Building Google Tests and running them
> > Building .component files with XSLT
> > Running Ant sub-builds
> > Delivering "package" files such as headers
> > Even doing the impossibly difficult 5 step "AllLangResTarget" (.src ->
> > merged .src -> .srs -> .res for each language).
> >
> > I still have to implement Jar, Zip, UnoApi, WinResTarget and SdiTarget,
> but
> > I think only Jar and Zip are worth implementing automatic conversion for,
> > as SdiTarget and UnoApi are only used in 5 places each, and WinResTarget
> in
> > only 2 places, which makes manual conversion for them easier. The hardest
> > conversions are already done.
> >
> > Where does this leave us?
> >
> > The gotoSCons converter can't support a number of features, like
> > non-deterministic constructs (ifeq ($(GUI),UNX)), custom make rules,
> etc. A
> > module can only be automatically converted if it doesn't use the
> > unsupported features. Currently, 35 modules use only supported features,
> > and can be converted automatically (this should increase to 39 modules
> when
> > I add Jar and Zip conversion).
> >
> > Another 58 modules use non-deterministic constructs or custom make rules.
> > Converting those 58 could be done through a semi-automated process, which
> > involves editing the gbuild files to remove the unsupported features,
> > running the automated conversion on what is left, then manually patching
> > what was removed into the conversion results. Sometimes this is quick and
> > easy, at other times probably not.
> >
> > The final 12 modules use unsupported targets requiring a longer and
> mostly
> > manual conversion to SCons, though even there the supported targets could
> > be converted automatically.
> >
> > The SCons infrastructure does require some cleanup, as I was learning
> while
> > developing, and we still need library naming conversions, tests on
> > Linux/WIndows/Mac, etc.
> >
> > The more I've used SCons, the more I've liked it. I've even started using
> > it in my own projects at work now. I've found a way to solve every
> problem
> > I've encountered, and the SCons developers have been helpful when I asked
> > them questions. Complex functionality like header dependency scanning,
> > automatic directory creation for output files, using @responsefile for
> long
> > command lines when necessary, and other features gbuild implements
> > manually, all work in SCons automatically. In 1816 lines of code, our
> SCons
> > infrastructure implements what took gbuild 9418 lines, and SCons is far
> > more readable and maintainable (even in its current messy state).
> >
> > The plan isn't to merge this to trunk any time soon. Rather the idea is
> to
> > develop the converter even further, then when it's complete enough,
> convert
> > as many gbuild modules to SCons. Then measure performance of building
> those
> > modules en-masse with SCons alone - if there are performance problems at
> > that stage, they are only going to get worse with more modules.
> >
> > The real test however is converting the other 78 dmake modules to SCons.
> 37
> > of them are 3rd party "externals" like jpeg and zlib, which have their
> own
> > build systems that we just call, so conversion is relatively easy. The
> > other 41 modules are hard to convert, but gbuild is one of the reasons
> that
> > they were hard, and where SCons is expected to make the greatest
> > difference. Only once we are building without dmake, without gbuild,
> > without build.pl, without Cygwin, on all platforms, then it would be the
> > right time to merge to trunk.
> >
> > If at some stage in this process we are unhappy with SCons, and some
> better
> > build system can be found, it shouldn't be difficult to change to it. The
> > converter could output files for that other build system instead; at
> > present it's only 498 lines of code in 1 file, that are involved in
> writing
> > SCons build files, all we would need is a similar file for that other
> build
> > system.
> >
> > Build systems are not the most exciting part of development, but bad
> build
> > systems make development painful, and as a large multi-platform project,
> we
> > build a lot. We answer build-related questions on the mailing lists too
> > often, and new contributors are put off by the current build system. A
> lot
> > of what we want to do with AOO, such as ports to Win64, AArch64, newer
> MSVC
> > versions, and so on, also involve build-related changes.
> >
> > Damjan
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to