[CMake] Status/use of CMake on Cygwin

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon May 20 00:35:11 EDT 2013


On 2013-05-19 21:06-0000 David Cole wrote:

> Disclaimer: I have found (over the years) the Cygwin environment to
be ridiculously, enormously slow and frustrating, and have literally
completely given up on it as a realistic development environment. I
personally do not use it or install it, EVER. It’s probably been 3-4
years since I had one of my machines that had any form of Cygwin on
it.

Hi David (off list again but this time with CC to Bill):

Would you be interested in working on a MinGW/MSYS Windows
distribution of free software as an alternative to Cygwin? The reason
I ask this is there are some ~500 Linux distributions (mostly put
together by small all-volunteer teams who are in it for the interest
rather than for any money), and compared to that only one (Cygwin)
windows distribution of free software seems like a ridiculously low
number. From your above strong complaints about Cygwin, perhaps it is
time there was at least one strong competitor for Cygwin in the
Windows distribution arena?

Whether such distributions are source or binary, they are an enormous
help to developers since they guarantee binary compatibility (all
packages built with the same version of the tool chain) with correct
dependencies between all packages.

Linux developers understand this distribution concept and therefore
use and support hundreds of different Linux distributions (mostly
binary distributions but there are also many source distributions for Linux
as well).  For some reason, Windows developers do not get this
distribution concept yet (perhaps because of the deficiencies of
Cygwin), but I think Windows developers would find even a source
distribution script to be quite a convenience since the alternative is
build their own collection of required packages (like I have had to do
recently with my Wine platform) without any guidance on download
locations for source files, how to build those packages from source,
and the dependencies between those packages.  Of course, another
alternative is to download binary versions of Windows software but
that introduces concerns about binary incompatibility issues for
libraries.

Note there is already a http://mingwrep.sourceforge.net/ project that
had the goal of producing a Windows binary distribution based on
MinGW, but development stopped in 2003 with insufficient free software
packages built so I think it would be better to use the potentially
much more comprehensive source-distribution script idea instead that I
describe below.

Putting together a Windows source distribution is not that much work
since you don't have to worry about a kernel or initialization scripts
as you do in the Linux case and you don't have to provide bandwidth
for downloading either source or binary versions if you just use a
build script. The required build tool chain is already provided by
MinGW/MSYS (supplemented by CMake for now although I imagine that will
be distributed as part of MSYS at some point).  So Windows source
distribution script work consists principally of documentation of how
to download the tool chain (i.e., use the MinGW/MSYS automatic
installer and download CMake) and creating a script to allow users to
build desired packages for themselves in a consistent way.  That
script would collect download location, build (whether CMake or
autotools-based), and dependency information for every important free
software package and would also automate the build of the free
software packages the users desire.

I am thinking of implementing this idea using the Python-based jhbuild
package (developed originally to organize builds of the many different
gtk-associated software packages on Linux and Windows) since I have
some experience using jhbuild and thought it was a well-designed tool
to help users build software packages.  But obviously another
alternative for this job would be an overall CMakeLists.txt file.

So the source distribution script idea is ultimately quite simple. It
is similar in concept to Linux source distributions (where users
download source and build all their desired packages), but it is
actually simpler than those because it only documents locations where
source can be downloaded and doesn't actually provide that source
download itself.

Eventually I might want to move to a binary distribution as well for
maximum convenience to Windows developers, but that would require a
lot of bandwidth which would likely exceed SourceForge limits.  So I
would like to start small with just a well-configured build script
containing relevant download, build, and dependency information for
the many different free software packages that currently build on
Windows.

Let me know what you think of the source distribution script idea for
Windows.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list