[CMake] Cygwin drive paths are killing me

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon Jun 16 21:31:25 EDT 2014


Hi Dave:

On 2014-06-15 07:59-0400 David Cole wrote:

>> Also, I think it is important for Windows users to have access to Unix
>> distributions (plural) of free software, where "Unix" refers to
>> containing all the core command-line Unix tools that Unix developers
>> know and love, and distribution is defined as a substantial body of
>> software beyond those core tools that is built with a consistent set
>> of (Unix) build tools.
>
> Thanks to Virtual Box (and others like it), they do have such access.
> Windows users can install any Linux distribution they want into a VM on
> top of Windows...

Sure, there are all sorts of way users can obtain Unix access, and
that is great.  But my point was it is worthwhile to provide the Unix
free software alternative directly on Windows without worrying about
the Linux kernel (which is the only unique extra provided by a VM, by
multi-booting, or by just using an alternate Linux box).

> The thing I will never understand is people's refusal to learn how to
> use the tools at their disposal. If you're on Windows, learn how to use
> the tools that work on Windows. Don't be all crippled without your
> usual toolset: learn something new!

I get what you are saying about learning being good, but given I have
considerable Unix skills learned over 25 years, and Unix is available
on all platforms of interest to me (including the direct Unix
available on Windows via Cygwin, Mingw/MSYS, and Mingw-w64/MSYS2) why
should I bother learning something that feels second-rate to me (and
which would likely feel second rate to me until I get years of
experience with it).

Note, I am not demanding everyone has to learn Unix.  All I am saying
is it is perfect for _my_ needs.  Furthermore, over the years I have
implemented a series of bash scripts to test PLplot, and it is good to
know that anybody can run those scripts on the direct Unix Windows
alternatives without anything more than the knowledge required to run
an exactly specified command on bash (e.g., "make
test_noninteractive") that they can cut and paste.  Why go out of my
way to implement two separate test systems (one based on bash, one
based on Windows batch files) if the bash version does the job?

>> If you accept that premise...
>
> I don't. I completely disagree. Windows is Windows. If you don't like
> it, don't use it.

OK, that is where we differ. I don't think you would quarrel with
populating the Windows ecosystem with readily accessible free software
such as CMake. So we simply differ in how far we would go with
invading that ecosystem. I wouldn't stop at CMake and other bits and
pieces.  Instead, I think it is a good idea to make all free software
including Unix readily accessible on Windows.  Those 3 alternatives I
mentioned already do that to various extents (with Cygwin being the
most comprehensive, MinGW-w64/MSYS2 being less comprehensive, and
MinGW/MSYS being the least comprehensive in terms of the size of the
consistent set of free software libraries they provide), but I would
welcome further Windows distributions of free software as well to give
those 3 direct Unix Windows alternatives some much needed competition.
Linux has literally thousands of non-commercial distributions made by
interested and quite knowledgeable amateurs. So there is no intrinsic
reason why there cannot be more than 3 free software distros for
Windows once you get knowledgeable amateurs involved and excited about
the possibilities for populating the Windows ecosystem with Unix and
and other free software gems such as CMake.

>
>
>> ... then Cygwin is a really important example
>> of such a Unix distribution, and the only other competitors for it
>> that I am aware of at the present moment on Windows platforms are (1)
>> MinGW+MSYS (a much simplified fork of an ancient Cygwin version) and
>> (2) MinGW_w64+MSYS2 (a much simplified fork of modern Cygwin).
>
> I have msys Git installed, and in its bash prompt, I have every Unix-y
> tool I ever use on Windows. Mostly just grep really. And I wouldn't
> even have that installed except for requiring access to git repos.

grep is good. find is pretty awesome as well, and the combination of
the two with xargs in a pipeline is amazing for quickly digging out
what you need from a source tree.  In other words, Unix is great, but
I digress.... :-)

>
>
>> My opinion is that MinGW+MSYS days are numbered because
>> MinGW_w64+MSYS2 reportedly fixes bugs much quicker...
>
> But isn't MSYS2 really the evolution of MSYS? (i.e. shouldn't MSYS days
> be numbered if there's an MSYS2? CMake 2.8's days are numbered as well,
> now that CMake 3 is out...)

No. For your information MinGW-w64 is a completely independent
development from MinGW and MSYS2 is a completely independent
development from MSYS.  There are entirely different sets of
developers (with some free software political tensions between them so
there is little chance they will merge together), different automatic
install tools, MSYS2 is based on modern Cygwin while MSYS is based on
an ancient Cygwin version, etc. Last year I would not have been even
mentioning the MinGW-w64/MSYS2 alternative because I was unaware of it
(and I think MSYS2 didn't even exist at that time).  However, my
impression is that MinGW-w64/MSYS2 is coming on quite strongly now
because of the advantages I mentioned over MinGW/MSYS (fewer bugs and
more libraries while still keeping everything as simple as the
MinGW/MSYS case) so if current trends continue (a big if, of course)
in a few years time we will likely not be mentioning MinGW/MSYS at all
when discussing direct Unix alternatives on Windows.

I am sure you will reply to some of my points, but I would like to say
in advance that I appreciate your different point of view even though I
might not always agree with it, and I am sure vice versa.

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