Mozilla uses its own build system on Windows, based on the MSYS environment (which is related to MingW) and the MSVC compilers:
https://wiki.mozilla.org/MozillaBuild
I've created a patch that allows ICU 50.1 to be built with this build system. To simplify maintenance, I'd like to work with the ICU team to integrate the changes into ICU.
The current patch:
https://bug724533.bugzilla.mozilla.org/attachment.cgi?id=712051
The main part is a new file mh-msys-msvc, which is based on mh-cygwin-msvc. It may actually be possible to have a single file covering both environments if options can be consistently indicated with "-" rather than "/" - the other changes are very localized.
Other changes are largely to select the new file and, again, to use "-" rather than "/" for options. The change in source/data/Makefile.in is the only one needing more work.
Is the ICU team interesting in adding support for this environment? Who can I work with (I'd need someone who really understands build systems, because I don't...)?
Replying to (Comment 3 norbert):
An updated patch that makes it clearer how mh-msys-msvc differs from mh-cygwin-msvc, and how small the changes really are, is available at:
https://bug724533.bugzilla.mozilla.org/attachment.cgi?id=731516
Based on that patch, does it look feasible to make one mh-msvc file handle both cygwin and msys?
Changes are small, but i think it makes more sense to have 2 files.
Additional notes from email discussions:
norbert 2013-09-09:
Sure, [files are|two] possible, and is in fact what Mozilla currently has. I was just hoping to simplify maintenance of these two quite similar configurations.
Any thoughts on how to handle source/data/Makefile.in?
srl 2013-09-10:
I would just add a variable in the 'mh' file, and then add an "ifdef" to Makefile.in
something like:
RC_OPT=/
or
RC_OPT=-
then in Makefile.in:
ifeq ($(RC_OPT),)
RC_OPT=/
endif
Or just plain add in the mh file;
MSYS_RC_MODE=1
Then in Makefile.in:
ifeq ($(MSYS_RC_MODE),1)
rc.exe -i$(srcdir)/../common -i$(top_builddir)/common -fo$@ $(CPPFLAGS) $<
else
rc.exe /i$(srcdir)/../common /i$(top_builddir)/common /fo$@ $(CPPFLAGS)
endif
something like that?
norbert 2013-09-23:
So how shall we proceed? Can one of you take the patch
https://bug724533.bugzilla.mozilla.org/attachment.cgi?id=712051
and integrate it, or should I create a branch and integrate it there? I can test with MSYS; somebody else would have to try with Cygwin.
rolling some platform tickets to mow
I tested and committed the patch (with some minor adjustments) to trunk for msys/msvc build environment
looking forward to trying this