Alexander Neundorf wrote:
CMake has some of that.
It has for OS:
UNIX
APPLE
WIN32
CYGWIN
MINGW
Cygwin is not an OS, it's a compiler.
The Bash that comes with Cygwin provides a filesystem environment.
Oftentimes when people compile on Windows in open source land, what they
really want / need to know is the difference between various shells. Is
it Cygwin Bash, MSYS Bash, straight Windows Command Prompt, or something
else?
And for the compilers:
Not sure it has GCC, but at least it has CMAKE_COMPILER_IS_GNUCXX
BORLAND
MSVC
For the Intel Compiler in KDE we currently check using
if(CMAKE_C_COMPILER MATCHES "icc")
So there is room for improvement.
There's coverage, it's just ad hoc, not canonized, and has an
inconsistent interface. At present this doesn't trouble me, personally.
I think mainly some of the cmake files in Modules/ and Modules/Platforms/ would have to be
extended. For compatibility reasons I'm not sure new prefixes like "OS_" and
"CC_" would be a good idea.
It would also be good to look at other canonical (OS compiler library
etc.) specifiers before deciding on such a thing. Like the Boost
conventions, for instance. I do think any canonization should include
space for a shell specifier, and I don't think any extant canonization
does that. Shells are *exceedingly* problematic for builds. Can't tell
you how much time I've lost to backslash, escaped whitespace, and double
quoting issues.
You know already which sentence follows next... ;-)
Feel free to send a patch :-)
Or at least just file a feature request.
Cheers,
Brandon Van Every
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake