Stephen Kelly
205215fb8a
cmTarget: Add CXX_STANDARD_REQUIRED to control decay.
2014-05-07 12:17:49 +02:00
Stephen Kelly
3fdfa5d3fc
Features: Make CMAKE_CXX_KNOWN_FEATURES a property.
...
As a 'built-in' variable it imposes a cost on all variable lookups
and it is expected to be rarely used.
2014-05-02 10:18:16 +02:00
Stephen Kelly
a36b957fc4
Features: Add cxx_template_template_parameters.
...
Extend the existing feature infrastructure as needed to support
both C++11 and C++98 features.
2014-04-16 15:16:23 +02:00
Stephen Kelly
60c0d2dd81
Features: Add cxx_defaulted_move_initializers.
2014-04-08 11:05:58 +02:00
Stephen Kelly
c4e672358c
Features: Add cxx_long_long_type.
2014-04-08 11:05:58 +02:00
Stephen Kelly
dcaafada0e
Features: Add cxx_func_identifier.
2014-04-08 11:05:57 +02:00
Stephen Kelly
251a1f02a0
Features: Add cxx_local_type_template_args.
2014-04-08 11:05:57 +02:00
Stephen Kelly
53fe7773e6
Features: Add cxx_extended_friend_declarations.
2014-04-08 11:05:57 +02:00
Stephen Kelly
16603f7cdb
Features: Add cxx_enum_forward_declarations.
2014-04-08 11:05:57 +02:00
Stephen Kelly
adf22f611e
Features: Add cxx_default_function_template_args.
2014-04-08 11:05:57 +02:00
Stephen Kelly
7b3e8a0534
Features: Add cxx_right_angle_brackets.
2014-04-08 11:05:57 +02:00
Stephen Kelly
9a49fd21be
Features: Add cxx_decltype_incomplete_return_types.
2014-04-08 11:05:57 +02:00
Stephen Kelly
1889045ca6
Features: Add cxx_sizeof_member.
2014-04-08 11:05:57 +02:00
Stephen Kelly
ab455ebafd
Features: Add cxx_thread_local.
2014-04-08 11:05:57 +02:00
Stephen Kelly
300ce2481e
Features: Add cxx_inline_namespaces.
2014-04-08 11:05:57 +02:00
Stephen Kelly
f9d04a96b5
Features: Add cxx_variadic_macros.
2014-04-08 11:05:57 +02:00
Stephen Kelly
3d76656fb3
Features: Add cxx_uniform_initialization.
2014-04-08 11:05:56 +02:00
Stephen Kelly
e74b216c90
Features: Add cxx_generalized_initializers.
2014-04-08 11:05:56 +02:00
Stephen Kelly
ff80c3b420
Features: Add cxx_attributes.
2014-04-08 11:05:56 +02:00
Stephen Kelly
7605fee593
Features: Add cxx_alignof.
2014-04-08 11:05:56 +02:00
Stephen Kelly
e7d6e1f44f
Features: Add cxx_alignas.
...
cxx_alignof will be a separate feature known to CMake, because
both can be implemented with separate backward compatibility
versions.
2014-04-08 11:05:56 +02:00
Stephen Kelly
32c2acd65c
Features: Add cxx_extern_templates.
2014-04-08 11:05:56 +02:00
Stephen Kelly
9064f78b0c
Features: Add cxx_unrestricted_unions.
2014-04-08 11:05:56 +02:00
Stephen Kelly
3322b393a2
Features: Add cxx_unicode_literals.
2014-04-08 11:05:56 +02:00
Stephen Kelly
04c5b99f38
Features: Add cxx_user_literals.
2014-04-08 11:05:56 +02:00
Stephen Kelly
e1e292cd06
Features: Add cxx_alias_templates.
2014-04-08 11:05:56 +02:00
Stephen Kelly
3300f78310
Features: Add cxx_rvalue_references.
2014-04-08 11:05:55 +02:00
Stephen Kelly
b1c5bd5314
Features: Add cxx_reference_qualified_functions.
2014-04-08 11:05:55 +02:00
Stephen Kelly
ea9c445f06
Features: Add cxx_raw_string_literals.
2014-04-08 11:05:55 +02:00
Stephen Kelly
735adf2c94
Features: Add cxx_range_for.
2014-04-08 11:05:55 +02:00
Stephen Kelly
0fa9bbf1fa
Features: Add cxx_nullptr.
2014-04-08 11:05:55 +02:00
Stephen Kelly
8149fc909f
Features: Add cxx_noexcept.
2014-04-08 11:05:55 +02:00
Stephen Kelly
bd2a025eb0
Features: Add cxx_nonstatic_member_init.
2014-04-08 11:05:55 +02:00
Stephen Kelly
15cdf6f51d
Features: Add cxx_lambdas.
2014-04-08 11:05:55 +02:00
Stephen Kelly
a579a0aab4
Features: Add cxx_inheriting_constructors.
2014-04-08 11:05:55 +02:00
Stephen Kelly
ebab2015f9
Features: Add cxx_explicit_conversions.
2014-04-08 11:05:55 +02:00
Stephen Kelly
ac3a1b14c0
Features: Add cxx_deleted_functions.
2014-04-08 11:05:55 +02:00
Stephen Kelly
91f3699000
Features: Add cxx_defaulted_functions.
2014-04-08 11:05:54 +02:00
Stephen Kelly
7e748417bc
Features: Add cxx_decltype.
2014-04-08 11:05:54 +02:00
Stephen Kelly
8d3467636c
Features: Add cxx_strong_enums.
2014-04-08 11:05:54 +02:00
Stephen Kelly
0caf08e43e
Features: Add cxx_auto_function.
2014-04-08 11:05:54 +02:00
Stephen Kelly
0685ac6edc
Features: Add cxx_override.
2014-04-08 11:05:54 +02:00
Stephen Kelly
57ac6a905c
Features: Add cxx_final.
2014-04-08 11:05:54 +02:00
Stephen Kelly
88542a6101
Features: Add cxx_static_assert.
2014-04-08 11:05:54 +02:00
Stephen Kelly
91289312fa
Features: Add cxx_constexpr.
2014-04-08 11:05:54 +02:00
Stephen Kelly
10f33eee1d
Features: Add cxx_variadic_templates.
...
Expect cxx_variadic_templates to implement N2555.
N2555 is essentially a bugfix and predates most compiler releases which
aimed to experimentally support variadic templates.
2014-04-08 11:05:54 +02:00
Stephen Kelly
750dfee29c
Features: Add cxx_delegating_constructors.
2014-04-08 11:05:54 +02:00
Stephen Kelly
8ed59fc207
Add target_compile_features command.
...
This can be used to set the compiler features required by particular
targets. An error is issued at CMake time if the compiler does not
support the required feature. If a language dialect flag is required
by the features used, that will be added automatically.
Base the target_compile_features command on cmTargetPropCommandBase. This
gives us 'free' handling of IMPORTED, ALIAS, INTERFACE, non-compilable
and missing targets.
2014-04-07 18:11:18 +02:00
Stephen Kelly
5412deded1
cmTarget: Transitively evaluate compiler features.
...
Extend the interface of the target_compile_features command with
PUBLIC and INTERFACE keywords. Populate the INTERFACE_COMPILER_FEATURES
target property if they are set. Consume the INTERFACE_COMPILER_FEATURES
target property from linked dependent targets to determine the final
required compiler features and the compile flag, if needed.
Use the same pattern of origin-debugging which is used for other
build properties.
2014-04-07 18:11:18 +02:00
Stephen Kelly
f97bf4370c
Features: Add cxx_auto_type.
...
Record the availability of this feature for GNU 4.8 on (UNIX AND
NOT APPLE) only. In the future, availability can be recorded for
earlier GNU, for other platforms and for other compilers. Initially
the affected configurations are as restricted as possible to allow
for easy testing while extending the features vector in only one
dimension.
The error message when using the set_property API directly is not
very good, but follow up commits will provide origin debugging of
the property and a target_compile_features command which will
provide a configure-time backtrace when possible.
2014-04-07 18:11:18 +02:00