On Jul 5, 2010, at 1:23 AM, Michael Wild wrote: > > On 5. Jul, 2010, at 7:46 , Todd Gamblin wrote: > >> The documentation here: >> >> >> http://*www.*cmake.org/cmake/help/cmake2.6docs.html#variable:CMAKE_COMPILER_IS_GNULANG >> >> is in conflict with the documentation here: >> >> http://*www.*cmake.org/Wiki/CMake_Useful_Variables >> >> And this thread (though it's from 2008) seems to imply that the second link >> above is right, even though the first is more current: >> >> http://*www.*mail-archive.com/cmake@cmake.org/msg16863.html >> >> >> I'm using CMake 2.8.2, and I'm noticing that CMAKE_COMPILER_IS_GNUC is >> empty, which conflicts with the latest documentation on the wiki. This >> makes it hard to do things like this: >> >>> for (lang C CXX Fortran) >>> if (CMAKE_COMPILER_IS_GNU${lang}) >>> ... >>> endif() >>> endfor() >> >> Looking through the CMake source, it doesn't look like >> CMAKE_COMPILER_IS_GNUFortran is used anywhere. I tested it, and it looks >> like it's empty too. Would it be possible to add CMAKE_COMPILER_IS_GNUC and >> CMAKE_COMPILER_IS_GNUFortran so that they actually work? I think this would >> be more consistent than the current setup. >> >> These issues are coming up in the platform files I'm making for BlueGeneP. >> I think writing things like this would be easier if this were more >> consistent. >> >> -Todd > > The variables are called CMAKE_COMPILER_IS_GNUC, CMAKE_COMPILER_IS_GNUCXX and > CMAKE_COMPILER_IS_GNUG77 (the latter is admittedly weird)
I don't think this is correct, at least not in the platform files in CMake 2.8.2. If I look at the value of CMAKE_COMPILER_IS_GNUC, it's empty. If I look at CMAKE_COMPILER_IS_GNUCC, it's getting set to what I'd expect. Is CMAKE_COMPILER_IS_GNUC set somewhere else, after the platform file gets included? G77 is weird, since as far as I can tell it's "Fortran" for all the other variables. Like I said, that really precludes you from doing something like this, especially if you try to set something inside the loop: for (lang C CXX Fortran) if (CMAKE_COMPILER_IS_GNU${lang}) set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") endif() endfor() Since now ${lang} needs to be something different in all those places. > > Michael _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake