On 08/15/2013 08:37 AM, Stephen Kelly wrote:
>  target_compiler_feature(<target> <PUBLIC|PRIVATE>
>    REQUIRED <feature1> [<feature2> ...])
>  target_compiler_feature(<target> <PUBLIC|PRIVATE>
>    OPTIONAL <feature> DEFINE <define_name>)

Doesn't this require the language (CXX) to be specified somewhere?
Perhaps the feature names should start with <lang>_ e.g. CXX_final.

> This is better in many noteworthy ways to the cxx11 topic in the stage.
> 
> Brad, do you have any response to any part of anything I wrote about that 
> topic?

The detection of features available for a given compiler and the
usage requirements to require/enable them are orthogonal issues
on the implementation side but may overlap in the CMake interface.

I like your proposed target_compiler_feature feature for the latter.

As for detection, I like that Eike's solution will work without
hard-coding knowledge for every compiler.  I also like hard-coding
the answers for known compilers whose id/version can be reliably
detected to avoid needless try_compile calls on every project.
Furthermore, your argument about partial implementations of features
versus the documented later version introducing them is important.

It is also nice to have it builtin to the platform information
modules for use with target_compiler_feature.  I'd like to see a
solution that hard-codes the answers when known but also knows when
it does not know and can run a detection step.  This will be tricky
because the platform files are too early to use try_compile so some
kind of on-demand check may be needed.  Ideas?

I think Eike's topic will be a fantastic reference for the test
case code and the expected results and will be useful for you to
write a more complete solution.  I like the target_compiler_feature
syntax better than find_package(CXXFeatures), but something like the
latter may be needed to make CMake-time decisions based on available
features rather than waiting until preprocessing time.

-Brad
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to