[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