[CMake] Good work
Brandon J. Van Every
bvanevery at gmail.com
Sun Dec 11 20:09:45 EST 2005
sidibé soro wrote:
>
> Hil all
> Very good work
> But i still am searching the magic
>tool able to translate an entire project built with the gnu autoconf
>autotool system to a visual c++ project
> This will be a real cross platform system
>
> CMAKE can do it when it will be able to import an existing Makefile or able to read a Makefile.am file
>
>
As a recent convert to CMake, who has chewed on his share of GNU
Autoconf woe over the years, here is my comment. CMake offers a similar
model of functionality as GNU Autoconf. CMake actually works as
advertized, i.e. it is truly cross-platform, handles both GCC and VC++
gracefully, etc. The GNU Autoconf guys will never, ever enable this.
At least 2 different open source solutions exist to provide an Autoconf
frontend for VC++. I offered to collect those up and make 'em workable;
the GNU guys refused. They do not want cross-platform to work, they
want Windows to wither away and die for lack of support. They
explicitly stated in their responses that my suggestions and offers
"would harm the GNU mission." I really didn't realize what zealots the
FSF are, until I got on the Autoconf mailing list and got a first hand
education in it.
So, CMake and GNU Autoconf do not have identical models of operation.
They will *NEVER* have identical models of operation, because their core
political philosophies are different. Given this, I see no reason why
CMake should struggle to be plug-n-play compatible with GNU Autoconf.
This is rather much like trying to chase Microsoft APIs; Microsoft will
deliberately try to break you. It suffices that, once one has gone up
the CMake learning curve, porting from Autoconf builds to CMake builds
is fairly straightforward. There are a few paradigmatic differences to
overcome, but not many. Such is the burden of truly cross-platform
support, i.e. you can't make a silk purse out of an Autoconf sow's ear.
I feel, frankly, that what CMake really needs is more marketing.
Despite being a proven tool, it is very much in the "CMake? I think
I've vaguely heard of that" stage. The marketing effort also needs to
educate, so that people like yourself come to understand the goals of
CMake, the benefits, and the realities of cross-platform support.
Nobody said that CMake takes Makefiles and turns them into Visual Studio
files. Even Microsoft doesn't do that anymore, for a long time now.
The paradigms are different, and it takes programmer decisions to patch
over what's different. Trying to do it automagically is hard, and not
worth the industrial effort, especially since various powers-that-be
will try to ruin your work. CMake does an excellent job of providing a
common format; it should be recognized and praised for what it is.
I am willing to participate in CMake marketing efforts. That is, trying
to create awareness, materials, organization, and documentation
necessary for that, etc. I'm not willing to lead such things, but I'm
willing to plug myself into whatever is already going on. Currently I
work on CMake builds for Chicken Scheme and hopefully we'll soon have
that in first class shape.
In the past I've tried to make such efforts in the Python and OCaml
communities, in conjunction with others. Unfortunately, in both cases
we ran into people who didn't understand the value of marketing, nor the
dimensions of necessary work. This is typical among hardcore techies,
who are better versed in code innards than visual art, writing, or
sociological manipulation. And so Python and OCaml will continue to
grow in "techie meritocracy" fashion for the forseeable future. It is
particularly frustrating in the case of Python because it's been ready
to hit the bigtime for a few years now. If you contemplate the
aesthetics of http://www.python.org, you will realize what an
unfortuante state Python marketing efforts are in.
Cheers,
Brandon Van Every
RTFM ISA PITA
More information about the CMake
mailing list