[cmake-developers] Please review CXXFeatures.cmake
Stephen Kelly
steveire at gmail.com
Mon Aug 5 13:39:38 EDT 2013
Rolf Eike Beer wrote:
>> Given that you're gathering the versions of each feature availability
>> anyway, and given that boost.config and qcompilerdetection.h have the
>> same information, there is no need for all users of the module to run all
>> these try_compiles for all projects. Think of the energy waste :)!
>>
>> I suggest you use CMAKE_CXX_COMPILER_ID and CMAKE_CXX_COMPILER_VERSION to
>> hardcode the features. You could even do so for known compilers, and
>> leave the try_compile stuff for not-known compilers if you really want
>> to, but I don't think that's worthwhile maintenance.
>
> We already found out that this is a bad idea for Apple,
No we didn't :).
The AppleClang vs VanillaClang version issue is something that needs to be
solved anyway.
> I still don't
> completely get it right for g++ and XL, and it isn't the way that CMake
> works for other things (I'm thinking of e.g. OpenMP).
> And
> qcompilerdetection.h is a good example of how I would not want it, last
> time I looked they just deactivated every feature on Clang.
I don't know what you're talking about, but I am certain you're mistaken in
a simple interpretation of what you wrote.
> The idea I
> have about CMake is that it would check for stuff on any compiler I throw
> on it, so it would just report correct results for this that haven't been
> tested before (PGI? MipsPro? gcc 2?).
...
Stephen Kelly wrote:
> I suggest you use CMAKE_CXX_COMPILER_ID and CMAKE_CXX_COMPILER_VERSION to
> hardcode the features. You could even do so for known compilers, and leave
> the try_compile stuff for not-known compilers if you really want to, but I
> don't think that's worthwhile maintenance.
...
>> 4)
>>
>> The COMPILE_OPTIONS for clang+apple might have to include -stdlib=libc++
>> for binary compatibility reasons if any of the dependencies use c++11 std
>> library API in their interface and use libc++.
>>
>> See what I wrote about that here:
>>
>> http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/5813
>
> I don't see how this is different with and without C++11, so how does it
> affect this module in a way that would not affect the user anyway?
You might have to investigate, for example, how system c++ libraries are
compiled. I'm not familiar enough with APPLE to know what kind of c++
libraries it comes with.
Thanks,
Steve.
More information about the cmake-developers
mailing list