[CMake] attempt to summarize
Alexander Neundorf
a.neundorf-work at gmx.net
Tue Dec 18 16:08:04 EST 2007
Hi,
there were a lot of emails, I'll try to make a summary.
So what is needed to get a big "market share" for cmake and what seems to be
required in cmake features.
This is not intended to be a task list for Kitware, e.g. ant and the support
for languages would be nice as contributions from somebody who actually uses
that stuff.
------------------------------------
Support for the major build systems:
------------------------------------
Supported: make, MSVC, XCode, Eclipse, KDevelop, CodeBlocks
Missing:
-ant: I think having an ant generator might be nice (I don't know that much
about ant). It will be nice for Java people, and it may be as powerful (if
not more) and maybe cleaner than makefiles. Maybe people who don't like java
could write an ant implementation in another language, maybe also as a
library so IDEs could use it directly ? It would also mean that CMake
generates ("modern") XML files instead of ("old fashioned") Makefiles.
-any others ?
----------------------
Support for languages
----------------------
Fully supported:
C, C++
Support not that mature as for C/C++:
C# - not documented, but I think Kitware has some projects using C#,
I guess cmake is used for them ?
Java - I think I heard there are some issues with files in subdirectories ?
Fortran - AFAIK some dependency scanner issues, is being worked on
Assembler - is there, but almost no feedback
Ada - Alan has files for that, not (yet) in cvs
Not supported:
Objective C - used on the Mac, would probably be good if it was supported
OCaml - really strange to build, may be problematic, not that many users
Pascal - may be not that hard to add, maybe less users than OCaml ?
------------------
Operating systems
------------------
Supported: all except the ones listed below
needs improvements: OpenBSD, shared library versioning scheme
not supported: VMS, OS/2, DOS, others ?
------------------------
CMake features
------------------------
parentheses in conditions: if((a OR b) AND (c OR d))
I guess square brackets would be acceptable too (just in case this would
easier for the parser): if( [a OR b] AND [c OR d] )
some way to define custom command line arguments
fine grained flags (per source etc.), AFAIK is being worked on
something like BREAK and/or RETURN to break from loops, makros, functions and
files. This should make some code easier to read and write.
better regexps wouldn't hurt
abstraction of compiler flags (being worked on ?)
I could create a wiki page "TODO items" so interested people may pick
something to work on.
Comments ?
Alex
More information about the CMake
mailing list