[CMake] Suggestion for CMake platform/compiler detection

Brandon J. Van Every bvanevery at gmail.com
Thu Nov 16 22:51:08 EST 2006


Alan W. Irwin wrote:
> On 2006-11-16 13:00-0800 Brandon J. Van Every wrote:
>
>> Bill Hoffman wrote:
>>> The problem with the shell, is that you can run cmake, then run make 
>>> from a different shell....
>>> For the most part that works on unix.   zsh, bash, sh, csh basically 
>>> work the same.   The trouble shows up
>>> on windows. 
>>
>> Yep, open source on Windows is nothing but TROUBLE.  It doesn't get 
>> the testing, consistency, or packaging of the Linux universe.  Really 
>> only the Cygwin stuff is reliable for prime time, and with that you 
>> get shafted with the GPL, typically.
>
> The subscribers to this mailing list are a mixture of windows and Linux
> developers who normally get along wonderfully well.  We each have 
> different
> belief systems though, so could you please turn down the off-topic 
> rhetoric
> that is offensive to one side?

What I have stated above is not rhetoric, it is fact.  You may not like 
value laden words such as "shafted," but if you're not looking to take 
offense, it's not terribly offensive.  I build software in the real 
world on multiple platforms, as do many around here.  I highlight the 
real world issues so that people know why certain things might indeed be 
valuable.  I have met FAR too many people whose idea of a build system 
is "works on my box."  That's Microsoft corporate jargon for a person 
who can't make their build work on anything but their own workstation, 
yet acts like things are fine.  A lot of open source developers, of 
whatever licensing stripe, are only slightly better.  They can only get 
things to build on their own box, and they really don't care about 
anything other than their favorite OS.  That is to say, cross-platform 
culture is *quite distinct* from open source culture.

>
> There is nothing wrong with saying Cygwin has a lot of GPLed packages 
> (like
> Linux itself), but to go beyond that with your opinion about the GPL is
> off-topic.

Quote me my opinion about the GPL.  I said that if you use Cygwin, you 
get shafted with it in practice.  I didn't say how wonderful or onerous 
that is, although you can certainly deduce that I don't think it's a 
feature.

>
> I have no windows experience so I try not to say much about it, but from
> what the PLplot windows developers tell me there are problems in building
> and finding the appropriate versions of all libraries required by PLplot
> (and presumably other Linux software as well which tends like PLplot 
> to use
> a wide variety of libraries).  So I will go along with your first 
> sentence
> quoted above to that limited extent.  

Yep.  As I said.


> I presume though that as cmake becomes
> more ubiquitous in the Linux world (and from all I can tell that is
> happening fast) there will be a concerted effort to port more of our 
> useful
> libraries to windows,and the problem of library availability on 
> windows for
> software that originated on the Linux platform should be greatly 
> reduced in
> consequence. 

If you mean PLplot libraries, then, whatever you say.  You have some 
control over that.

If you mean Linux oriented libraries in general; nope!  Cygwin works ok, 
but I've certainly run into enough build problems to notice it's a 
second class citizen.  MinGW / MSYS is always broken, it's the black 
sheep of the open source world.  We've all had all the prerequisite 
build tools to move all the Linux stuff to Windows for several years 
now.  What's actually gotten done, is what you actually see today.  
CMake isn't going to change this landscape significantly.  There are 
always fundamental OS differences that create labor that people don't 
want to deal with.

You might theorize that CMake is *so much less painful* than GNU 
Autoconf, that developers will achieve an order of magnitude more build 
efficiency, and thereby port lots more stuff.  But having spent 1 year 
taking Chicken Scheme from weak to solid on MinGW, I don't believe it.  
People can't typically dump their old build systems at the drop of a 
hat, and migration is a lot of work.  I don't think anyone does it 
unless they're so fed up with Autohell, that any semi-sane build system 
would be welcomed as an alternative, warts and all.

So, you give me a list of all the open source Linux guys who hate the 
hell out of Autoconf, and that's the list of guys who *might* port their 
stuff to Windows via CMake sooner rather than later.  Emphasis on 
*might*.  Just because they hate Autoconf doesn't mean they want to port 
their stuff to Windows.

People who feel neutral about Autoconf, or who are in fact pleased with 
it, aren't going to up and do anything for Windows anytime soon.  For 
those people, it will take a *long* time for migrations to happen via 
CMake.  Strategically, on the order of say 10 years, it may happen.  
Tactically, forget it.  Don't expect some renaissance of open source 
development on Windows 2 years from now just because of CMake.  That 
could jolly well have happened already if it was going to.

I've done open source on Windows for 3 years, and I'm broke from it.  I 
have a very solid idea why it hasn't gotten very far.  Basically, for 
most of it there's no business model.  The economics are really driven 
by particular large open source projects, such as Apache server or MySQL 
or whatever else appears in the want ads.  So if you want to see a CMake 
impact, convert BIG projects.

I wonder what it would take for Windows to grow *its own* open source 
culture, and just dump the stuff that comes out of the Linux world.  
Probably can't happen without a fundamental corporate change at 
Microsoft.  I don't believe that the recent MS-Novell deal about Linux 
compatibility is a sign of that.  I think it's just Microsoft creating 
an alliance they can wreck later.  Establishing dependencies and then 
nukeing them is part of how they retain control over other companies.


Cheers,
Brandon Van Every



More information about the CMake mailing list