[CMake] Suggestion for CMake platform/compiler detection

Brandon J. Van Every bvanevery at gmail.com
Sun Nov 19 01:13:45 EST 2006


Alan W. Irwin wrote:
> Our windows platform is
> still not completely full-featured, but it has many more features 
> (plotting
> devices, language front-ends, etc.) than it did before on windows 
> which is
> why we are making a development release a week from today. 


It sounds like Chicken and PLplot were at comparable levels of Windows 
support when they each started switching to CMake.  Unix-oriented, hand 
crafted builds exist for Windows, they sorta work but tend to break, not 
all features available on the Windows side.

>
> it will probably take at least several more months to complete our 
> feature
> set on windows.


I'm guessing your initial snowball is a function of project size.  More 
developers, so if more people get "turned on" to CMake, they can do 
more.  Smaller projects only end up with 1 guy doing most of the work.  
This is also true of larger projects when political buy-in is absent.

Anyways, I hope you can maintain momentum with CMake and Windows as you 
*finish* the cross-platform unification.  I've done it; I have the 
perspective of having done it.  I wonder if projects like yours will 
tend to chug through to the end, or whether they'll encounter late-term 
frustrations that slow or halt the progress.  A lot of this is 
application dependent; if there had been much more to fix in Chicken, I 
may have given up. 

Political difficulties also ensue in the end game.  At that point, 
development shouldn't be driven by Autoconf anymore.  But, the Autoconf 
guys are used to their standard drill, and they persist.  Similarly, the 
Linux guys are used to their Linux drill and not the newfangled Windows 
stuff.  In the worst case, the "old guard" drives the old system 
forwards with lots of new features, making more bugs for CMake and / or 
Windows than you can fix.  At that point, one puts one's foot down and 
says, "Are you moving on with the new CMake build or not?"  It worked 
out ok in Chicken's case, but for a time I was worried that the work 
could end up being all for nothing. 


>
> I guess the real reason the CMake has worked out so well on PLplot is we
> have a mix of developers who are extremely encouraging and tolerant about
> each other's (Linux or Mac OS X or windows) platform needs.  I don't 
> think
> our attitude is particularly unique in the free software world.  For
> example, I presume this attitude is also the norm for the KDE project. In
> our own case, I belong to a very small minority of developers in the 
> world
> who have never had any windows experience (moved to Unix in the 80's, and
> Linux in the 90's with no MS detours), but I was fully aware of our 
> windows
> developer's long-term difficulties with improving our home-brew windows
> build system. Thus, one of my motivations for giving CMake a try in 
> July was
> it had potential to solve the windows build limitations that existed back
> then. The rest is history; our windows developers have taken great 
> advantage
> of that opportunity as I have cheered them on from the sidelines.


Helps also to have multiple motivated Windows developers.  In Chicken's 
case I was the only one.  John Cowan came along later, but he guns on 
Cygwin, and I don't feel that exactly counts.  Porting to native Windows 
means getting things to work on MSVC and MinGW.  That said, his Cygwin 
testing definitely improved the CMake build, so the Cygwin aficionados 
are definitely useful to the overall enterprise.  Also, he was useful 
for advocating *CMake*, whether or not he cared about native Windows 
stuff.  The two problems, Autoconf --> CMake and Unix --> Windows are 
entwined in each other, but they are also distinct.


Cheers,
Brandon Van Every






More information about the CMake mailing list