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

Reply via email to