[Cmake-commits] CMake branch, next, updated. v2.8.12-4655-g43cd041

Stephen Kelly steveire at gmail.com
Wed Oct 30 11:22:32 EDT 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  43cd0418cafaf5675f0dcbfe73fa9bce8a7fc87d (commit)
       via  8c850e1e79b3d22b8a6e06afaea085a1bb3e16ca (commit)
      from  e8831f225a5d840cd805f7e33433e0d0c3b91c35 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=43cd0418cafaf5675f0dcbfe73fa9bce8a7fc87d
commit 43cd0418cafaf5675f0dcbfe73fa9bce8a7fc87d
Merge: e8831f2 8c850e1
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Oct 30 11:22:27 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Oct 30 11:22:27 2013 -0400

    Merge topic 'target_compiler_features' into next
    
    8c850e1 Revert topic target_compiler_features


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c850e1e79b3d22b8a6e06afaea085a1bb3e16ca
commit 8c850e1e79b3d22b8a6e06afaea085a1bb3e16ca
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Oct 30 16:20:47 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Oct 30 16:21:18 2013 +0100

    Revert topic target_compiler_features

diff --git a/Help/command/target_compiler_features.rst b/Help/command/target_compiler_features.rst
deleted file mode 100644
index ade0310..0000000
--- a/Help/command/target_compiler_features.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-target_compiler_features
-------------------------
-
-Add expected compiler features to a target.
-
-::
-
-  target_compiler_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])
-
-Specify compiler features required when compiling a given target.  If the
-feature is not listed in the :variable:`CMAKE_CXX_COMPILER_FEATURES` variable,
-then an error will be reported by CMake.  If the use of the feature requires
-an additional compiler flag, such as --std=c++11, the flag will be added
-automatically.
-
-The INTERFACE, PUBLIC and PRIVATE keywords are required to specify the
-scope of the features.  PRIVATE and PUBLIC items will
-populate the :prop_tgt:`COMPILER_FEATURES` property of <target>.  PUBLIC and
-INTERFACE items will populate the :prop_tgt:`INTERFACE_COMPILER_FEATURES` property
-of <target>.  Repeated calls for the same <target> append items in the order called.
-
-The named <target> must have been created by a command such as
-add_executable or add_library and must not be an IMPORTED target.
-
-Arguments to target_compiler_features may use "generator expressions"
-with the syntax "$<...>".
-See the :manual:`cmake-generator-expressions(7)` manual for available
-expressions.
diff --git a/Help/manual/cmake-commands.7.rst b/Help/manual/cmake-commands.7.rst
index 0484739..71d7375 100644
--- a/Help/manual/cmake-commands.7.rst
+++ b/Help/manual/cmake-commands.7.rst
@@ -88,7 +88,6 @@ These commands may be used freely in CMake projects.
    /command/string
    /command/target_compile_definitions
    /command/target_compile_options
-   /command/target_compiler_features
    /command/target_include_directories
    /command/target_link_libraries
    /command/try_compile
diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 59bef5c..6fbde74 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -88,11 +88,8 @@ Properties on Targets
    /prop_tgt/COMPILE_DEFINITIONS
    /prop_tgt/COMPILE_FLAGS
    /prop_tgt/COMPILE_OPTIONS
-   /prop_tgt/COMPILER_FEATURES
    /prop_tgt/CONFIG_OUTPUT_NAME
    /prop_tgt/CONFIG_POSTFIX
-   /prop_tgt/CXX_STANDARD
-   /prop_tgt/CXX_EXTENSIONS
    /prop_tgt/DEBUG_POSTFIX
    /prop_tgt/DEFINE_SYMBOL
    /prop_tgt/EchoString
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 903df2b..22a1c4d 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -207,9 +207,6 @@ Variables for Languages
 
 .. toctree::
    /variable/CMAKE_COMPILER_IS_GNULANG
-   /variable/CMAKE_CXX_COMPILER_FEATURES
-   /variable/CMAKE_CXX_KNOWN_FEATURES
-   /variable/CMAKE_CXX_STANDARD
    /variable/CMAKE_Fortran_MODDIR_DEFAULT
    /variable/CMAKE_Fortran_MODDIR_FLAG
    /variable/CMAKE_Fortran_MODOUT_FLAG
diff --git a/Help/prop_tgt/COMPILER_FEATURES.rst b/Help/prop_tgt/COMPILER_FEATURES.rst
deleted file mode 100644
index 38c49e2..0000000
--- a/Help/prop_tgt/COMPILER_FEATURES.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILER_FEATURES
------------------
-
-Compiler features enabled for this target.
-
-The list of features in this property are a subset of the features listed
-in the :variable:`CMAKE_CXX_COMPILER_FEATURES` variable.
-
-Contents of COMPILER_FEATURES may use "generator expressions" with the
-syntax "$<...>".  See the :manual:`cmake-generator-expressions(7)` manual for
-available expressions.
diff --git a/Help/prop_tgt/CXX_EXTENSIONS.rst b/Help/prop_tgt/CXX_EXTENSIONS.rst
deleted file mode 100644
index 329e2c9..0000000
--- a/Help/prop_tgt/CXX_EXTENSIONS.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CXX_EXTENSIONS
---------------
-
-Boolean specifying whether compiler specific extensions are requested.
-
-This property specifies whether compiler specific extensions should be
-used.  For some compilers, this results in adding a flag such as -std=gnu++11
-instead of -std=c++11 to the compile line.
diff --git a/Help/prop_tgt/CXX_STANDARD.rst b/Help/prop_tgt/CXX_STANDARD.rst
deleted file mode 100644
index c3cd486..0000000
--- a/Help/prop_tgt/CXX_STANDARD.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-CXX_STANDARD
-------------
-
-The C++ standard whose features are required to build this target.
-
-This property specifies the C++ standard whose features are required
-to build this target.  For some compilers, this results in adding a
-flag such as -std=c++11 to the compile line.
-
-Supported values are 98 and 11.
-
-This property is initialized by the value of the :variable:`CMAKE_CXX_STANDARD`
-variable if it is set when a target is created.
diff --git a/Help/variable/CMAKE_CXX_COMPILER_FEATURES.rst b/Help/variable/CMAKE_CXX_COMPILER_FEATURES.rst
deleted file mode 100644
index dbe7bd8..0000000
--- a/Help/variable/CMAKE_CXX_COMPILER_FEATURES.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CMAKE_CXX_COMPILER_FEATURES
----------------------------
-
-List of features known to the C++ compiler
-
-These features are known to be available for use with the C++ compiler. This
-list is a subset of the features listed in the :variable:`CMAKE_CXX_KNOWN_FEATURES`
-variable.
-
-The features listed here may be used with the :command:`target_compiler_features`
-command.
diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
deleted file mode 100644
index 4062e18..0000000
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-CMAKE_CXX_KNOWN_FEATURES
-------------------------
-
-List of C++ features known to this version of CMake.
-
-The features listed in this variable may be known to be available to the C++
-compiler.  If the feature is available with the C++ compiler, it will be
-listed in the :variable:`CMAKE_CXX_COMPILER_FEATURES` variable.
-
-The features known to this version of CMake are:
-
-cxx_delegating_constructors
-  Delegating constructors, as defined in N1986_.
-
-.. _N1986: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
diff --git a/Help/variable/CMAKE_CXX_STANDARD.rst b/Help/variable/CMAKE_CXX_STANDARD.rst
deleted file mode 100644
index 87c00c8..0000000
--- a/Help/variable/CMAKE_CXX_STANDARD.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CMAKE_CXX_STANDARD
-------------------
-
-Default value for CXX_STANDARD property of targets.
-
-This variable is used to initialize the :prop_tgt:`CXX_STANDARD`
-property on all targets.  See that target property for additional
-information.
diff --git a/Modules/Compiler/Clang-CXX-FeatureTests.cmake b/Modules/Compiler/Clang-CXX-FeatureTests.cmake
deleted file mode 100644
index b71b127..0000000
--- a/Modules/Compiler/Clang-CXX-FeatureTests.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-
-set(testable_features
-  cxx_delegating_constructors
-)
-foreach(feature ${testable_features})
-  set(_cmake_feature_test_${feature} "__has_extension(${feature})")
-endforeach()
diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake
index 456f684..0372e18 100644
--- a/Modules/Compiler/Clang-CXX.cmake
+++ b/Modules/Compiler/Clang-CXX.cmake
@@ -4,34 +4,3 @@ __compiler_clang(CXX)
 if(NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
   set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
 endif()
-
-set(CMAKE_CXX11_COMPILER_FEATURES)
-
-include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
-macro(_get_clang_features std_version list)
-  record_compiler_features(CXX "-std=${std_version}" ${list})
-endmacro()
-
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
-  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
-
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
-
-  _get_clang_features(c++0x CMAKE_CXX11_COMPILER_FEATURES)
-endif()
-
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-
-  _get_clang_features(c++11 CMAKE_CXX11_COMPILER_FEATURES)
-endif()
-
-unset(testable_features)
-
-set(CMAKE_CXX_COMPILER_FEATURES
-  ${CMAKE_CXX11_COMPILER_FEATURES}
-)
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
deleted file mode 100644
index 7da0563..0000000
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-
-set(_cmake_feature_test_cxx_delegating_constructors "(__GNUC__ * 100 + __GNUC_MINOR__) >= 407")
diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
index 38812cc..33d6093 100644
--- a/Modules/Compiler/GNU-CXX.cmake
+++ b/Modules/Compiler/GNU-CXX.cmake
@@ -10,33 +10,3 @@ else()
     set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
   endif()
 endif()
-
-set(CMAKE_CXX11_COMPILER_FEATURES)
-
-include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
-macro(_get_gcc_features std_version list)
-  record_compiler_features(CXX "-std=${std_version}" ${list})
-endmacro()
-
-# Appropriate version?
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)
-  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
-endif()
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-
-  _get_gcc_features(c++11 CMAKE_CXX11_COMPILER_FEATURES)
-elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
-
-  _get_gcc_features(c++0x CMAKE_CXX11_COMPILER_FEATURES)
-endif()
-
-set(CMAKE_CXX_COMPILER_FEATURES
-  ${CMAKE_CXX11_COMPILER_FEATURES}
-)
diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
index 0eb64be..504704d 100644
--- a/Modules/Compiler/GNU.cmake
+++ b/Modules/Compiler/GNU.cmake
@@ -51,7 +51,6 @@ macro(__compiler_gnu lang)
   set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
   set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
   set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-  set(_CMAKE_${lang}_CREATE_OBJECT_FILE "${CMAKE_${lang}_COMPILER};<FLAGS>;-c;<SOURCE>")
   if(NOT APPLE)
     set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
   endif()
diff --git a/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/Modules/Compiler/Intel-CXX-FeatureTests.cmake
deleted file mode 100644
index ab90206..0000000
--- a/Modules/Compiler/Intel-CXX-FeatureTests.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-
-set(_cmake_feature_test_cxx_delegating_constructors "__INTEL_COMPILER >= 1400")
diff --git a/Modules/Compiler/Intel-CXX.cmake b/Modules/Compiler/Intel-CXX.cmake
index 8a37954..35bb3ec 100644
--- a/Modules/Compiler/Intel-CXX.cmake
+++ b/Modules/Compiler/Intel-CXX.cmake
@@ -12,31 +12,3 @@ endif()
 
 set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
 set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-set(_CMAKE_CXX_CREATE_OBJECT_FILE "${CMAKE_CXX_COMPILER};<FLAGS>;-c;<SOURCE>")
-
-set(CMAKE_CXX11_COMPILER_FEATURES)
-
-include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.1)
-  if (CMAKE_CXX_SIMULATE_ID STREQUAL MSVC)
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "/Qstd=c++0x")
-  else()
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-    record_compiler_features(CXX "-std=c++0x" CMAKE_CXX11_COMPILER_FEATURES)
-    # TODO: Does intel support GNU extensions and -std=gnu++0x etc?
-  endif()
-endif()
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13)
-  if (CMAKE_CXX_SIMULATE_ID STREQUAL MSVC)
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "/Qstd=c++11")
-  else()
-    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-    record_compiler_features(CXX "-std=c++11" CMAKE_CXX11_COMPILER_FEATURES)
-  endif()
-endif()
-
-set(CMAKE_CXX_COMPILER_FEATURES
-  ${CMAKE_CXX11_COMPILER_FEATURES}
-)
diff --git a/Modules/Compiler/XL-CXX-FeatureTests.cmake b/Modules/Compiler/XL-CXX-FeatureTests.cmake
deleted file mode 100644
index 625ff3f..0000000
--- a/Modules/Compiler/XL-CXX-FeatureTests.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-
-set(_cmake_feature_test_cxx_delegating_constructors "__IBMCPP__ >= 1110")
diff --git a/Modules/Compiler/XL-CXX.cmake b/Modules/Compiler/XL-CXX.cmake
index 7b6da1f..6c842cd 100644
--- a/Modules/Compiler/XL-CXX.cmake
+++ b/Modules/Compiler/XL-CXX.cmake
@@ -9,23 +9,3 @@ set(CMAKE_CXX_FLAGS_INIT "-qthreaded -qhalt=e")
 
 set(CMAKE_CXX_COMPILE_OBJECT
   "<CMAKE_CXX_COMPILER> -+ <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-set(_CMAKE_CXX_CREATE_OBJECT_FILE "${CMAKE_CXX_COMPILER};<FLAGS>;-c;<SOURCE>")
-
-set(CMAKE_CXX11_COMPILER_FEATURES)
-
-include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.1)
-   # TODO: See comment 4 here: https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/xlc_compiler_s_c_11_support50?lang=en
-   # http://pic.dhe.ibm.com/infocenter/lnxpcomp/v121v141/index.jsp says c++0x support is experimental and should not be relied upon. Maybe we should not enable it
-   # for this compiler.
-   # http://pic.dhe.ibm.com/infocenter/lnxpcomp/v121v141/index.jsp?topic=%2Fcom.ibm.xlcpp121.linux.doc%2Flanguage_ref%2Fcpp0x_exts.html says that IBM extensions
-   # are enabled by default. We disable that stuff for GNU unless a non-portable feature is used. Do the same here?
-   set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
-   record_compiler_features(CXX "-qlanglvl=extended0x" CMAKE_CXX11_COMPILER_FEATURES)
-endif()
-
-
-set(CMAKE_CXX_COMPILER_FEATURES
-  ${CMAKE_CXX11_COMPILER_FEATURES}
-)
diff --git a/Modules/Internal/FeatureTesting.cmake b/Modules/Internal/FeatureTesting.cmake
deleted file mode 100644
index 50bf84c..0000000
--- a/Modules/Internal/FeatureTesting.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-
-macro(record_compiler_features lang compile_flags feature_list)
-  include("${CMAKE_ROOT}/Modules/Compiler/${CMAKE_${lang}_COMPILER_ID}-${lang}-FeatureTests.cmake" OPTIONAL)
-
-  string(TOLOWER lang_lc ${lang})
-  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/feature_tests.${lang_lc}" "
-  extern const char features[] = {\n")
-  foreach(feature ${CMAKE_${lang}_KNOWN_FEATURES})
-    set(_define_check "\n\"0\"\n")
-    if (_cmake_feature_test_${feature})
-      set(_define_check "#if ${_cmake_feature_test_${feature}}\n\"1\"\n#else${_define_check}#endif\n")
-    endif()
-    file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/feature_tests.${lang_lc}" "\"${lang}_FEATURE:\"\n${_define_check}\"${feature}\\n\"\n")
-  endforeach()
-  file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/feature_tests.${lang_lc}" "\n};\n")
-
-  string(REPLACE "<FLAGS>" "${compile_flags}" _compile_object_command "${_CMAKE_${lang}_CREATE_OBJECT_FILE}" )
-  string(REPLACE "<SOURCE>" "${CMAKE_CURRENT_BINARY_DIR}/feature_tests.${lang_lc}" _compile_object_command "${_compile_object_command}" )
-  execute_process(COMMAND ${_compile_object_command}
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/CMakeFiles"
-    ERROR_VARIABLE _error
-    OUTPUT_VARIABLE _output
-  )
-  # We need to capture these when running the process so that the output does
-  # not leak and confuse unit tests. Clear the variables so they do not leak
-  # to user CMake code either.
-  unset(_error)
-  unset(_output)
-  if (EXISTS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}")
-    file(STRINGS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}"
-      features REGEX "${lang}_FEATURE:.*")
-    foreach(info ${features})
-      string(REPLACE "${lang}_FEATURE:" "" info ${info})
-      string(SUBSTRING ${info} 0 1 has_feature)
-      if(has_feature)
-        string(REGEX REPLACE "^1" "" feature ${info})
-        list(APPEND ${feature_list} ${feature})
-      endif()
-    endforeach()
-  endif()
-endmacro()
diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx
index cd0d723..1e2a85c 100644
--- a/Source/cmCommands.cxx
+++ b/Source/cmCommands.cxx
@@ -32,7 +32,6 @@
 #include "cmSubdirDependsCommand.cxx"
 #include "cmTargetCompileDefinitionsCommand.cxx"
 #include "cmTargetCompileOptionsCommand.cxx"
-#include "cmTargetCompilerFeaturesCommand.cxx"
 #include "cmTargetIncludeDirectoriesCommand.cxx"
 #include "cmTargetPropCommandBase.cxx"
 #include "cmUseMangledMesaCommand.cxx"
@@ -78,7 +77,6 @@ void GetPredefinedCommands(std::list<cmCommand*>&
   commands.push_back(new cmTargetIncludeDirectoriesCommand);
   commands.push_back(new cmTargetCompileDefinitionsCommand);
   commands.push_back(new cmTargetCompileOptionsCommand);
-  commands.push_back(new cmTargetCompilerFeaturesCommand);
   commands.push_back(new cmUseMangledMesaCommand);
   commands.push_back(new cmUtilitySourceCommand);
   commands.push_back(new cmVariableRequiresCommand);
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx
index d139092..92dc054 100644
--- a/Source/cmGeneratorExpressionDAGChecker.cxx
+++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -210,11 +210,3 @@ bool cmGeneratorExpressionDAGChecker::EvaluatingCompileOptions() const
   return (strcmp(prop, "COMPILE_OPTIONS") == 0
        || strcmp(prop, "INTERFACE_COMPILE_OPTIONS") == 0 );
 }
-
-//----------------------------------------------------------------------------
-bool cmGeneratorExpressionDAGChecker::EvaluatingCompilerFeatures() const
-{
-  const char *prop = this->Property.c_str();
-  return (strcmp(prop, "COMPILER_FEATURES") == 0
-       || strcmp(prop, "INTERFACE_COMPILER_FEATURES") == 0);
-}
diff --git a/Source/cmGeneratorExpressionDAGChecker.h b/Source/cmGeneratorExpressionDAGChecker.h
index 52170c2..c8594e7 100644
--- a/Source/cmGeneratorExpressionDAGChecker.h
+++ b/Source/cmGeneratorExpressionDAGChecker.h
@@ -20,15 +20,13 @@
   F(EvaluatingIncludeDirectories) \
   F(EvaluatingSystemIncludeDirectories) \
   F(EvaluatingCompileDefinitions) \
-  F(EvaluatingCompileOptions) \
-  F(EvaluatingCompilerFeatures)
+  F(EvaluatingCompileOptions)
 
 #define CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(F) \
   F(INCLUDE_DIRECTORIES) \
   F(SYSTEM_INCLUDE_DIRECTORIES) \
   F(COMPILE_DEFINITIONS) \
-  F(COMPILE_OPTIONS) \
-  F(COMPILER_FEATURES)
+  F(COMPILE_OPTIONS)
 
 //----------------------------------------------------------------------------
 struct cmGeneratorExpressionDAGChecker
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 6c97c44..d51b5c8 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -893,21 +893,26 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
 
     std::string interfacePropertyName;
 
-#define POPULATE_INTERFACE_PROPERTY_NAME(prop) \
-    if (propertyName == #prop || propertyName == "INTERFACE_" #prop) \
-      { \
-      interfacePropertyName = "INTERFACE_" #prop; \
-      } \
-    else
-
-    CM_FOR_EACH_TRANSITIVE_PROPERTY_NAME(POPULATE_INTERFACE_PROPERTY_NAME)
-      // Note that the above macro terminates with an else
-    /* else */ if (strncmp(propertyName.c_str(),
-                           "COMPILE_DEFINITIONS_", 20) == 0)
+    if (propertyName == "INTERFACE_INCLUDE_DIRECTORIES"
+        || propertyName == "INCLUDE_DIRECTORIES")
+      {
+      interfacePropertyName = "INTERFACE_INCLUDE_DIRECTORIES";
+      }
+    else if (propertyName == "INTERFACE_SYSTEM_INCLUDE_DIRECTORIES")
+      {
+      interfacePropertyName = "INTERFACE_SYSTEM_INCLUDE_DIRECTORIES";
+      }
+    else if (propertyName == "INTERFACE_COMPILE_DEFINITIONS"
+        || propertyName == "COMPILE_DEFINITIONS"
+        || strncmp(propertyName.c_str(), "COMPILE_DEFINITIONS_", 20) == 0)
       {
       interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
       }
-#undef POPULATE_INTERFACE_PROPERTY_NAME
+    else if (propertyName == "INTERFACE_COMPILE_OPTIONS"
+        || propertyName == "COMPILE_OPTIONS")
+      {
+      interfacePropertyName = "INTERFACE_COMPILE_OPTIONS";
+      }
 
     cmTarget *headTarget = context->HeadTarget ? context->HeadTarget : target;
 
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index f343a9e..edf80e6 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1384,7 +1384,6 @@ void cmLocalGenerator::AddCompileOptions(
       this->AppendFlagEscape(flags, i->c_str());
       }
     }
-  this->AddCompilerRequirementFlag(flags, target, lang);
 }
 
 //----------------------------------------------------------------------------
@@ -2064,36 +2063,6 @@ void cmLocalGenerator::AddSharedFlags(std::string& flags,
     }
 }
 
-//----------------------------------------------------------------------------
-void cmLocalGenerator::
-AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
-                           const char *lang)
-{
-  if (!lang)
-    {
-    return;
-    }
-  std::string l(lang);
-  std::string stdProp = l + "_STANDARD";
-  const char *standard = target->GetProperty(stdProp.c_str());
-  if (!standard)
-    {
-    return;
-    }
-  std::string extProp = l + "_EXTENSIONS";
-  bool ext = target->GetPropertyAsBool(extProp.c_str());
-  std::string type = ext ? "EXTENSION" : "STANDARD";
-
-  std::string compile_option =
-            "CMAKE_" + l + std::string(standard)
-                     + "_" + type + "_COMPILE_OPTION";
-  if (const char *opt =
-                target->GetMakefile()->GetDefinition(compile_option.c_str()))
-    {
-    this->AppendFlags(flags, opt);
-    }
-}
-
 static void AddVisibilityCompileOption(std::string &flags, cmTarget* target,
                                        cmLocalGenerator *lg, const char *lang)
 {
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 4a307f7..21700e9 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -147,8 +147,6 @@ public:
                                 const char *lang);
   void AddConfigVariableFlags(std::string& flags, const char* var,
                               const char* config);
-  void AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
-                                  const char *lang);
   ///! Append flags to a string.
   virtual void AppendFlags(std::string& flags, const char* newFlags);
   virtual void AppendFlagEscape(std::string& flags, const char* rawFlag);
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d746751..c18a7eb 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -41,9 +41,6 @@
 #include <ctype.h> // for isspace
 #include <assert.h>
 
-#define FOR_EACH_CXX_FEATURE(F) \
-  F(cxx_delegating_constructors)
-
 class cmMakefile::Internals
 {
 public:
@@ -2412,19 +2409,6 @@ const char* cmMakefile::GetDefinition(const char* name) const
     {
     this->Internal->VarUsageStack.top().insert(name);
     }
-  if (strcmp(name, "CMAKE_CXX_KNOWN_FEATURES") == 0)
-    {
-#define STRING_LIST_ELEMENT(F) ";" #F
-    return FOR_EACH_CXX_FEATURE(STRING_LIST_ELEMENT) + 1;
-#undef STRING_LIST_ELEMENT
-    }
-#define PP_FEATURE_NAME(F) \
-  if (strcmp(name, "CMAKE_PP_NAME_" #F) == 0) \
-    { \
-    return ("COMPILER_" + cmSystemTools::UpperCase(#F)).c_str(); \
-    }
-  FOR_EACH_CXX_FEATURE(PP_FEATURE_NAME)
-#undef PP_FEATURE_NAME
   const char* def = this->Internal->VarStack.top().Get(name);
   if(!def)
     {
@@ -4437,144 +4421,3 @@ void cmMakefile::RecordPolicies(cmPolicies::PolicyMap& pm)
     pm[pid] = this->GetPolicyStatus(pid);
     }
 }
-
-#define FEATURE_STRING(F) , #F
-
-static const char * const CXX_FEATURES[] = {
-  0
-  FOR_EACH_CXX_FEATURE(FEATURE_STRING)
-};
-
-static const char * const CXX_STANDARDS[] = {
-    "98"
-  , "11"
-};
-
-bool cmMakefile::
-AddRequiredTargetFeature(cmTarget *target, const char *feature) const
-{
-  if (cmGeneratorExpression::Find(feature) != std::string::npos)
-    {
-    target->AppendProperty("COMPILER_FEATURES", feature);
-    return true;
-    }
-  bool isCxxFeature = std::find_if(cmArrayBegin(CXX_FEATURES) + 1,
-              cmArrayEnd(CXX_FEATURES), cmStrCmp(feature))
-              != cmArrayEnd(CXX_FEATURES);
-  if (!isCxxFeature)
-    {
-    return false;
-    }
-
-  const char* featuresKnown =
-    this->GetDefinition("CMAKE_CXX_COMPILER_FEATURES");
-
-  if (!featuresKnown)
-    {
-    cmOStringStream e;
-    e << "The compiler feature \"" << feature
-      << "\" is not known to compiler \""
-      << this->GetDefinition("CMAKE_CXX_COMPILER_ID") << "\".";
-    this->IssueMessage(cmake::FATAL_ERROR, e.str().c_str());
-    return false;
-    }
-
-  std::vector<std::string> availableFeatures;
-  cmSystemTools::ExpandListArgument(featuresKnown, availableFeatures);
-  if (std::find(availableFeatures.begin(),
-                availableFeatures.end(),
-                feature) == availableFeatures.end())
-    {
-    return false;
-    }
-
-  target->AppendProperty("COMPILER_FEATURES", feature);
-
-  bool need98 = true;
-  bool need11 = false;
-  bool needExt = false;
-
-  if (const char *prop98 =
-                        this->GetDefinition("CMAKE_CXX98_COMPILER_FEATURES"))
-    {
-    std::vector<std::string> props;
-    cmSystemTools::ExpandListArgument(prop98, props);
-    need98 = std::find(props.begin(), props.end(), feature) != props.end();
-    }
-  if (const char *prop11 =
-          this->GetDefinition("CMAKE_CXX11_COMPILER_FEATURES"))
-    {
-    std::vector<std::string> props;
-    cmSystemTools::ExpandListArgument(prop11, props);
-    need11 = std::find(props.begin(), props.end(), feature) != props.end();
-    }
-
-  if (const char *prop98ext =
-          this->GetDefinition("CMAKE_CXX98_COMPILER_EXTENSIONS"))
-    {
-    std::vector<std::string> props;
-    cmSystemTools::ExpandListArgument(prop98ext, props);
-    needExt = std::find(props.begin(), props.end(), feature) != props.end();
-    }
-  if (const char *prop11ext =
-          this->GetDefinition("CMAKE_CXX11_COMPILER_EXTENSIONS"))
-    {
-    std::vector<std::string> props;
-    cmSystemTools::ExpandListArgument(prop11ext, props);
-    bool need11Ext = std::find(props.begin(), props.end(), feature)
-                      != props.end();
-    need11 = need11Ext;
-    needExt = needExt || need11Ext;
-    }
-
-  const char *existingStandard = target->GetProperty("CXX_STANDARD");
-  if (existingStandard)
-    {
-    if (std::find_if(cmArrayBegin(CXX_STANDARDS), cmArrayEnd(CXX_STANDARDS),
-                  cmStrCmp(existingStandard)) == cmArrayEnd(CXX_STANDARDS))
-      {
-      cmOStringStream e;
-      e << "The CXX_STANDARD property on target \"" << target->GetName()
-        << "\" contained an invalid value: \"" << existingStandard << "\".";
-      this->IssueMessage(cmake::FATAL_ERROR, e.str().c_str());
-      return false;
-      }
-    }
-  const char * const *existingIt = existingStandard
-                                    ? std::find_if(cmArrayBegin(CXX_STANDARDS),
-                                      cmArrayEnd(CXX_STANDARDS),
-                                      cmStrCmp(existingStandard))
-                                    : cmArrayEnd(CXX_STANDARDS);
-
-  bool set11 = need11 && !existingStandard;
-  bool set98 = need98 && !existingStandard;
-  if (existingStandard && existingIt <
-                                    std::find_if(cmArrayBegin(CXX_STANDARDS),
-                                      cmArrayEnd(CXX_STANDARDS),
-                                      cmStrCmp("11")))
-    {
-    set11 = true;
-    }
-  else if(existingStandard && existingIt <
-                                    std::find_if(cmArrayBegin(CXX_STANDARDS),
-                                      cmArrayEnd(CXX_STANDARDS),
-                                      cmStrCmp("98")))
-    {
-    set98 = true;
-    }
-
-  if (set11)
-    {
-    target->SetProperty("CXX_STANDARD", "11");
-    }
-  else if (set98)
-    {
-    target->SetProperty("CXX_STANDARD", "98");
-    }
-  bool existingExt = target->GetPropertyAsBool("CXX_EXTENSIONS");
-  if (needExt && !existingExt)
-    {
-    target->SetProperty("CXX_EXTENSIONS", "1");
-    }
-  return true;
-}
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 4aeffdf..76958ca 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -883,8 +883,6 @@ public:
   std::set<cmStdString> const & GetSystemIncludeDirectories() const
     { return this->SystemIncludeDirectories; }
 
-  bool AddRequiredTargetFeature(cmTarget *target, const char *feature) const;
-
 protected:
   // add link libraries and directories to the target
   void AddGlobalLinkInformation(const char* name, cmTarget& target);
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 18579f0..59c407b 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -140,7 +140,6 @@ public:
   };
   std::vector<TargetPropertyEntry*> IncludeDirectoriesEntries;
   std::vector<TargetPropertyEntry*> CompileOptionsEntries;
-  std::vector<TargetPropertyEntry*> CompilerFeaturesEntries;
   std::vector<TargetPropertyEntry*> CompileDefinitionsEntries;
   std::vector<cmValueWithOrigin> LinkInterfacePropertyEntries;
 
@@ -149,14 +148,11 @@ public:
   std::map<std::string, std::vector<TargetPropertyEntry*> >
                                 CachedLinkInterfaceCompileOptionsEntries;
   std::map<std::string, std::vector<TargetPropertyEntry*> >
-                                CachedLinkInterfaceCompilerFeaturesEntries;
-  std::map<std::string, std::vector<TargetPropertyEntry*> >
                                 CachedLinkInterfaceCompileDefinitionsEntries;
 
   std::map<std::string, bool> CacheLinkInterfaceIncludeDirectoriesDone;
   std::map<std::string, bool> CacheLinkInterfaceCompileDefinitionsDone;
   std::map<std::string, bool> CacheLinkInterfaceCompileOptionsDone;
-  std::map<std::string, bool> CacheLinkInterfaceCompilerFeaturesDone;
 };
 
 //----------------------------------------------------------------------------
@@ -191,7 +187,6 @@ cmTargetInternals::~cmTargetInternals()
 {
   deleteAndClear(this->CachedLinkInterfaceIncludeDirectoriesEntries);
   deleteAndClear(this->CachedLinkInterfaceCompileOptionsEntries);
-  deleteAndClear(this->CachedLinkInterfaceCompilerFeaturesEntries);
   deleteAndClear(this->CachedLinkInterfaceCompileDefinitionsEntries);
 }
 
@@ -214,7 +209,6 @@ cmTarget::cmTarget()
   this->BuildInterfaceIncludesAppended = false;
   this->DebugIncludesDone = false;
   this->DebugCompileOptionsDone = false;
-  this->DebugCompilerFeaturesDone = false;
   this->DebugCompileDefinitionsDone = false;
 }
 
@@ -291,7 +285,6 @@ void cmTarget::SetMakefile(cmMakefile* mf)
   this->SetPropertyDefault("MACOSX_BUNDLE", 0);
   this->SetPropertyDefault("MACOSX_RPATH", 0);
   this->SetPropertyDefault("NO_SYSTEM_FROM_IMPORTED", 0);
-  this->SetPropertyDefault("CXX_STANDARD", 0);
 
 
   // Collect the set of configuration types.
@@ -1728,17 +1721,6 @@ void cmTarget::SetProperty(const char* prop, const char* value)
                           new cmTargetInternals::TargetPropertyEntry(cge));
     return;
     }
-  if(strcmp(prop,"COMPILER_FEATURES") == 0)
-    {
-    cmListFileBacktrace lfbt;
-    this->Makefile->GetBacktrace(lfbt);
-    cmGeneratorExpression ge(lfbt);
-    deleteAndClear(this->Internal->CompilerFeaturesEntries);
-    cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
-    this->Internal->CompilerFeaturesEntries.push_back(
-                          new cmTargetInternals::TargetPropertyEntry(cge));
-    return;
-    }
   if(strcmp(prop,"COMPILE_DEFINITIONS") == 0)
     {
     cmListFileBacktrace lfbt;
@@ -1804,15 +1786,6 @@ void cmTarget::AppendProperty(const char* prop, const char* value,
               new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
     return;
     }
-  if(strcmp(prop,"COMPILER_FEATURES") == 0)
-    {
-    cmListFileBacktrace lfbt;
-    this->Makefile->GetBacktrace(lfbt);
-    cmGeneratorExpression ge(lfbt);
-    this->Internal->CompilerFeaturesEntries.push_back(
-              new cmTargetInternals::TargetPropertyEntry(ge.Parse(value)));
-    return;
-    }
   if(strcmp(prop,"COMPILE_DEFINITIONS") == 0)
     {
     cmListFileBacktrace lfbt;
@@ -2407,13 +2380,6 @@ void cmTarget::GetCompileOptions(std::vector<std::string> &result,
     {
     this->Internal->CacheLinkInterfaceCompileOptionsDone[configString] = true;
     }
-  std::vector<std::string> features;
-  this->GetCompilerFeatures(features, config);
-  for(std::vector<std::string>::const_iterator it = features.begin();
-      it != features.end(); ++it)
-    {
-    this->Makefile->AddRequiredTargetFeature(this, it->c_str());
-    }
 }
 
 //----------------------------------------------------------------------------
@@ -2547,121 +2513,6 @@ void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
 }
 
 //----------------------------------------------------------------------------
-static void processCompilerFeatures(cmTarget *tgt,
-      const std::vector<cmTargetInternals::TargetPropertyEntry*> &entries,
-      std::vector<std::string> &options,
-      std::set<std::string> &uniqueOptions,
-      cmGeneratorExpressionDAGChecker *dagChecker,
-      const char *config, bool debugOptions)
-{
-  processCompileOptionsInternal(tgt, entries, options, uniqueOptions,
-                                dagChecker, config, debugOptions, "features");
-}
-
-//----------------------------------------------------------------------------
-void cmTarget::GetCompilerFeatures(std::vector<std::string> &result,
-                                 const char *config)
-{
-  std::set<std::string> uniqueFeatures;
-  cmListFileBacktrace lfbt;
-
-  cmGeneratorExpressionDAGChecker dagChecker(lfbt,
-                                             this->GetName(),
-                                             "COMPILER_FEATURES",
-                                             0, 0);
-
-  std::vector<std::string> debugProperties;
-  const char *debugProp =
-              this->Makefile->GetDefinition("CMAKE_DEBUG_TARGET_PROPERTIES");
-  if (debugProp)
-    {
-    cmSystemTools::ExpandListArgument(debugProp, debugProperties);
-    }
-
-  bool debugFeatures = !this->DebugCompilerFeaturesDone
-                    && std::find(debugProperties.begin(),
-                                 debugProperties.end(),
-                                 "COMPILER_FEATURES")
-                        != debugProperties.end();
-
-  if (this->Makefile->IsGeneratingBuildSystem())
-    {
-    this->DebugCompilerFeaturesDone = true;
-    }
-
-  processCompilerFeatures(this,
-                            this->Internal->CompilerFeaturesEntries,
-                            result,
-                            uniqueFeatures,
-                            &dagChecker,
-                            config,
-                            debugFeatures);
-
-  std::string configString = config ? config : "";
-  if (!this->Internal->CacheLinkInterfaceCompilerFeaturesDone[configString])
-    {
-
-    for (std::vector<cmValueWithOrigin>::const_iterator
-        it = this->Internal->LinkInterfacePropertyEntries.begin(),
-        end = this->Internal->LinkInterfacePropertyEntries.end();
-        it != end; ++it)
-      {
-      if (!cmGeneratorExpression::IsValidTargetName(it->Value)
-          && cmGeneratorExpression::Find(it->Value) == std::string::npos)
-        {
-        continue;
-        }
-      {
-      cmGeneratorExpression ge(lfbt);
-      cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
-                                                        ge.Parse(it->Value);
-      std::string targetResult = cge->Evaluate(this->Makefile, config,
-                                        false, this, 0, 0);
-      if (!this->Makefile->FindTargetToUse(targetResult.c_str()))
-        {
-        continue;
-        }
-      }
-      std::string featureGenex = "$<TARGET_PROPERTY:" +
-                              it->Value + ",INTERFACE_COMPILER_FEATURES>";
-      if (cmGeneratorExpression::Find(it->Value) != std::string::npos)
-        {
-        // Because it->Value is a generator expression, ensure that it
-        // evaluates to the non-empty string before being used in the
-        // TARGET_PROPERTY expression.
-        featureGenex = "$<$<BOOL:" + it->Value + ">:" + featureGenex + ">";
-        }
-      cmGeneratorExpression ge(it->Backtrace);
-      cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(
-                                                                featureGenex);
-
-      this->Internal
-        ->CachedLinkInterfaceCompilerFeaturesEntries[configString].push_back(
-                        new cmTargetInternals::TargetPropertyEntry(cge,
-                                                              it->Value));
-      }
-    }
-
-  processCompilerFeatures(this,
-    this->Internal->CachedLinkInterfaceCompilerFeaturesEntries[configString],
-                            result,
-                            uniqueFeatures,
-                            &dagChecker,
-                            config,
-                            debugFeatures);
-
-  if (!this->Makefile->IsGeneratingBuildSystem())
-    {
-    deleteAndClear(this->Internal->CachedLinkInterfaceCompilerFeaturesEntries);
-    }
-  else
-    {
-    this->Internal->CacheLinkInterfaceCompilerFeaturesDone[configString]
-                                                                      = true;
-    }
-}
-
-//----------------------------------------------------------------------------
 void cmTarget::MaybeInvalidatePropertyCache(const char* prop)
 {
   // Wipe out maps caching information affected by this property.
@@ -3116,24 +2967,6 @@ const char *cmTarget::GetProperty(const char* prop,
       }
     return output.c_str();
     }
-  if(strcmp(prop,"COMPILER_FEATURES") == 0)
-    {
-    static std::string output;
-    output = "";
-    std::string sep;
-    typedef cmTargetInternals::TargetPropertyEntry
-                                TargetPropertyEntry;
-    for (std::vector<TargetPropertyEntry*>::const_iterator
-        it = this->Internal->CompilerFeaturesEntries.begin(),
-        end = this->Internal->CompilerFeaturesEntries.end();
-        it != end; ++it)
-      {
-      output += sep;
-      output += (*it)->ge->GetInput();
-      sep = ";";
-      }
-    return output.c_str();
-    }
   if(strcmp(prop,"COMPILE_DEFINITIONS") == 0)
     {
     static std::string output;
@@ -6383,7 +6216,6 @@ cmTargetInternalPointer::~cmTargetInternalPointer()
 {
   deleteAndClear(this->Pointer->IncludeDirectoriesEntries);
   deleteAndClear(this->Pointer->CompileOptionsEntries);
-  deleteAndClear(this->Pointer->CompilerFeaturesEntries);
   deleteAndClear(this->Pointer->CompileDefinitionsEntries);
   delete this->Pointer;
 }
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index c25fa57..9d62f5f 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -530,8 +530,6 @@ public:
 
   void GetCompileOptions(std::vector<std::string> &result,
                          const char *config);
-  void GetCompilerFeatures(std::vector<std::string> &result,
-                           const char *config);
 
   bool IsNullImpliedByLinkLibraries(const std::string &p);
   bool IsLinkInterfaceDependentBoolProperty(const std::string &p,
@@ -690,7 +688,6 @@ private:
   bool IsImportedTarget;
   bool DebugIncludesDone;
   bool DebugCompileOptionsDone;
-  bool DebugCompilerFeaturesDone;
   bool DebugCompileDefinitionsDone;
   mutable std::set<std::string> LinkImplicitNullProperties;
   bool BuildInterfaceIncludesAppended;
diff --git a/Source/cmTargetCompilerFeaturesCommand.cxx b/Source/cmTargetCompilerFeaturesCommand.cxx
deleted file mode 100644
index 7a77aac..0000000
--- a/Source/cmTargetCompilerFeaturesCommand.cxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*============================================================================
-  CMake - Cross Platform Makefile Generator
-  Copyright 2013 Stephen Kelly <steveire at gmail.com>
-
-  Distributed under the OSI-approved BSD License (the "License");
-  see accompanying file Copyright.txt for details.
-
-  This software is distributed WITHOUT ANY WARRANTY; without even the
-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the License for more information.
-============================================================================*/
-#include "cmTargetCompilerFeaturesCommand.h"
-
-bool cmTargetCompilerFeaturesCommand::InitialPass(
-  std::vector<std::string> const& args,
-  cmExecutionStatus &)
-{
-  if (args.size() < 3)
-    {
-      this->SetError("called with wrong number of arguments.");
-      return false;
-    }
-  cmTarget *target = this->Makefile->FindTargetToUse(args[0].c_str());
-
-  if(!target)
-    {
-    this->SetError("specified invalid target.");
-    return false;
-    }
-
-  if(target->IsImported())
-    {
-    this->SetError("may not be used with an IMPORTED target.");
-    return false;
-    }
-
-  const bool interfaceOnly = args[1] == "INTERFACE";
-  if(args[1] != "PRIVATE" && args[1] != "PUBLIC" && !interfaceOnly)
-    {
-    this->SetError("called with invalid arguments.");
-    return false;
-    }
-
-  for (size_t i = 2; i < args.size(); ++i)
-    {
-    std::string feature = args[i];
-
-    if (!interfaceOnly)
-      {
-      bool result = this->Makefile->AddRequiredTargetFeature(target,
-                                                            feature.c_str());
-
-      if (!result)
-        {
-        this->SetError("specified unknown feature.");
-        return false;
-        }
-      }
-    if (interfaceOnly || args[1] == "PUBLIC")
-      {
-      target->AppendProperty("INTERFACE_COMPILER_FEATURES", feature.c_str());
-      }
-    }
-  return true;
-}
diff --git a/Source/cmTargetCompilerFeaturesCommand.h b/Source/cmTargetCompilerFeaturesCommand.h
deleted file mode 100644
index c20c8ea..0000000
--- a/Source/cmTargetCompilerFeaturesCommand.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*============================================================================
-  CMake - Cross Platform Makefile Generator
-  Copyright 2013 Stephen Kelly <steveire at gmail.com>
-
-  Distributed under the OSI-approved BSD License (the "License");
-  see accompanying file Copyright.txt for details.
-
-  This software is distributed WITHOUT ANY WARRANTY; without even the
-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-  See the License for more information.
-============================================================================*/
-#ifndef cmTargetCompileFeaturesCommand_h
-#define cmTargetCompileFeaturesCommand_h
-
-#include "cmCommand.h"
-
-class cmTargetCompilerFeaturesCommand : public cmCommand
-{
-  virtual cmCommand* Clone()
-    {
-    return new cmTargetCompilerFeaturesCommand;
-    }
-
-  virtual bool InitialPass(std::vector<std::string> const& args,
-                           cmExecutionStatus &status);
-
-  virtual const char* GetName() const { return "target_compiler_features";}
-
-  cmTypeMacro(cmTargetCompilerFeaturesCommand, cmCommand);
-};
-
-#endif
diff --git a/Tests/CMakeCommands/target_compiler_features/CMakeLists.txt b/Tests/CMakeCommands/target_compiler_features/CMakeLists.txt
deleted file mode 100644
index d643107..0000000
--- a/Tests/CMakeCommands/target_compiler_features/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-project(target_compiler_features)
-
-if (NOT ";${CMAKE_CXX_COMPILER_FEATURES};" MATCHES ";cxx_delegating_constructors;")
-  add_executable(target_compiler_features dummy.cpp)
-  return()
-endif()
-
-add_executable(target_compiler_features main.cpp)
-target_compiler_features(target_compiler_features
-  PRIVATE cxx_delegating_constructors
-)
-
-add_library(lib_delegating_constructors lib_delegating_constructors.cpp)
-target_compiler_features(lib_delegating_constructors
-  PUBLIC cxx_delegating_constructors
-)
-
-add_executable(lib_user lib_user.cpp)
-target_link_libraries(lib_user lib_delegating_constructors)
diff --git a/Tests/CMakeCommands/target_compiler_features/dummy.cpp b/Tests/CMakeCommands/target_compiler_features/dummy.cpp
deleted file mode 100644
index 341aaaf..0000000
--- a/Tests/CMakeCommands/target_compiler_features/dummy.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-
-int main(int, char **)
-{
-  return 0;
-}
diff --git a/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.cpp b/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.cpp
deleted file mode 100644
index e597acd..0000000
--- a/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#include "lib_delegating_constructors.h"
-
-Foo::Foo(int i)
-  : m_i(i)
-{
-
-}
diff --git a/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.h b/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.h
deleted file mode 100644
index 75be701..0000000
--- a/Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.h
+++ /dev/null
@@ -1,17 +0,0 @@
-
-#include <cstring>
-
-class Foo
-{
-public:
-  Foo(int i);
-
-  Foo(const char *a)
-    : Foo(strlen(a))
-  {
-
-  }
-
-private:
-  int m_i;
-};
diff --git a/Tests/CMakeCommands/target_compiler_features/lib_user.cpp b/Tests/CMakeCommands/target_compiler_features/lib_user.cpp
deleted file mode 100644
index 83ad51e..0000000
--- a/Tests/CMakeCommands/target_compiler_features/lib_user.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#include "lib_delegating_constructors.h"
-
-class Bar
-{
-  Bar(int i)
-    :m_i(i)
-  {
-
-  }
-
-  Bar(const char *a)
-    : Bar(strlen(a))
-  {
-
-  }
-
-private:
-  int m_i;
-};
-
-int main(int argc, char **argv)
-{
-  Foo f("hello");
-  Foo b("world");
-  return 0;
-}
diff --git a/Tests/CMakeCommands/target_compiler_features/main.cpp b/Tests/CMakeCommands/target_compiler_features/main.cpp
deleted file mode 100644
index 77671b0..0000000
--- a/Tests/CMakeCommands/target_compiler_features/main.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#include <cstring>
-
-class Foo
-{
-  Foo(int i)
-    :m_i(i)
-  {
-
-  }
-
-  Foo(const char *a)
-    : Foo(strlen(a))
-  {
-
-  }
-
-private:
-  int m_i;
-};
-
-int main(int, char **)
-{
-  return 0;
-}
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index d0567b8..4b08c88 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -247,12 +247,6 @@ if(BUILD_TESTING)
   ADD_TEST_MACRO(CompatibleInterface CompatibleInterface)
   ADD_TEST_MACRO(AliasTarget AliasTarget)
   ADD_TEST_MACRO(InterfaceLibrary InterfaceLibrary)
-  if((CMAKE_CXX_COMPILER_ID STREQUAL GNU
-        AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.6)
-      OR (CMAKE_CXX_COMPILER_ID STREQUAL Clang
-        AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.9))
-    ADD_TEST_MACRO(CxxDialect CxxDialect)
-  endif()
   set_tests_properties(EmptyLibrary PROPERTIES
     PASS_REGULAR_EXPRESSION "CMake Error: CMake can not determine linker language for target: test")
   ADD_TEST_MACRO(CrossCompile CrossCompile)
@@ -2082,7 +2076,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
   ADD_TEST_MACRO(CMakeCommands.target_include_directories target_include_directories)
   ADD_TEST_MACRO(CMakeCommands.target_compile_definitions target_compile_definitions)
   ADD_TEST_MACRO(CMakeCommands.target_compile_options target_compile_options)
-  ADD_TEST_MACRO(CMakeCommands.target_compiler_features target_compiler_features)
 
   configure_file(
     "${CMake_SOURCE_DIR}/Tests/CTestTestCrash/test.cmake.in"
diff --git a/Tests/CxxDialect/CMakeLists.txt b/Tests/CxxDialect/CMakeLists.txt
deleted file mode 100644
index c55f838..0000000
--- a/Tests/CxxDialect/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-project(CxxDialect)
-
-add_executable(use_typeof use_typeof.cxx)
-set_property(TARGET use_typeof PROPERTY CXX_STANDARD 98)
-set_property(TARGET use_typeof PROPERTY CXX_EXTENSIONS TRUE)
-
-add_executable(use_constexpr use_constexpr.cxx)
-set_property(TARGET use_constexpr PROPERTY CXX_STANDARD 11)
-
-add_executable(CxxDialect use_constexpr_and_typeof.cxx)
-set_property(TARGET CxxDialect PROPERTY CXX_STANDARD 11)
-set_property(TARGET CxxDialect PROPERTY CXX_EXTENSIONS TRUE)
diff --git a/Tests/CxxDialect/use_constexpr.cxx b/Tests/CxxDialect/use_constexpr.cxx
deleted file mode 100644
index 30ccc4c..0000000
--- a/Tests/CxxDialect/use_constexpr.cxx
+++ /dev/null
@@ -1,10 +0,0 @@
-
-constexpr int foo()
-{
-  return 0;
-}
-
-int main(int argc, char**)
-{
-  return foo();
-}
diff --git a/Tests/CxxDialect/use_constexpr_and_typeof.cxx b/Tests/CxxDialect/use_constexpr_and_typeof.cxx
deleted file mode 100644
index af217b6..0000000
--- a/Tests/CxxDialect/use_constexpr_and_typeof.cxx
+++ /dev/null
@@ -1,11 +0,0 @@
-
-constexpr int foo()
-{
-  return 0;
-}
-
-int main(int argc, char**)
-{
-  typeof(argc) ret = foo();
-  return ret;
-}
diff --git a/Tests/CxxDialect/use_typeof.cxx b/Tests/CxxDialect/use_typeof.cxx
deleted file mode 100644
index dabb61f..0000000
--- a/Tests/CxxDialect/use_typeof.cxx
+++ /dev/null
@@ -1,6 +0,0 @@
-
-int main(int argc, char**)
-{
-  typeof(argc) ret = 0;
-  return ret;
-}

-----------------------------------------------------------------------

Summary of changes:
 Help/command/target_compiler_features.rst          |   28 ----
 Help/manual/cmake-commands.7.rst                   |    1 -
 Help/manual/cmake-properties.7.rst                 |    3 -
 Help/manual/cmake-variables.7.rst                  |    3 -
 Help/prop_tgt/COMPILER_FEATURES.rst                |   11 --
 Help/prop_tgt/CXX_EXTENSIONS.rst                   |    8 -
 Help/prop_tgt/CXX_STANDARD.rst                     |   13 --
 Help/variable/CMAKE_CXX_COMPILER_FEATURES.rst      |   11 --
 Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst         |   15 --
 Help/variable/CMAKE_CXX_STANDARD.rst               |    8 -
 Modules/Compiler/Clang-CXX-FeatureTests.cmake      |    7 -
 Modules/Compiler/Clang-CXX.cmake                   |   31 ----
 Modules/Compiler/GNU-CXX-FeatureTests.cmake        |    2 -
 Modules/Compiler/GNU-CXX.cmake                     |   30 ----
 Modules/Compiler/GNU.cmake                         |    1 -
 Modules/Compiler/Intel-CXX-FeatureTests.cmake      |    2 -
 Modules/Compiler/Intel-CXX.cmake                   |   28 ----
 Modules/Compiler/XL-CXX-FeatureTests.cmake         |    2 -
 Modules/Compiler/XL-CXX.cmake                      |   20 ---
 Modules/Internal/FeatureTesting.cmake              |   41 -----
 Source/cmCommands.cxx                              |    2 -
 Source/cmGeneratorExpressionDAGChecker.cxx         |    8 -
 Source/cmGeneratorExpressionDAGChecker.h           |    6 +-
 Source/cmGeneratorExpressionEvaluator.cxx          |   29 ++--
 Source/cmLocalGenerator.cxx                        |   31 ----
 Source/cmLocalGenerator.h                          |    2 -
 Source/cmMakefile.cxx                              |  157 ------------------
 Source/cmMakefile.h                                |    2 -
 Source/cmTarget.cxx                                |  168 --------------------
 Source/cmTarget.h                                  |    3 -
 Source/cmTargetCompilerFeaturesCommand.cxx         |   65 --------
 Source/cmTargetCompilerFeaturesCommand.h           |   32 ----
 .../target_compiler_features/CMakeLists.txt        |   21 ---
 .../target_compiler_features/dummy.cpp             |    5 -
 .../lib_delegating_constructors.cpp                |    8 -
 .../lib_delegating_constructors.h                  |   17 --
 .../target_compiler_features/lib_user.cpp          |   27 ---
 .../target_compiler_features/main.cpp              |   25 ---
 Tests/CMakeLists.txt                               |    7 -
 Tests/CxxDialect/CMakeLists.txt                    |   12 --
 Tests/CxxDialect/use_constexpr.cxx                 |   10 --
 Tests/CxxDialect/use_constexpr_and_typeof.cxx      |   11 --
 Tests/CxxDialect/use_typeof.cxx                    |    6 -
 43 files changed, 19 insertions(+), 900 deletions(-)
 delete mode 100644 Help/command/target_compiler_features.rst
 delete mode 100644 Help/prop_tgt/COMPILER_FEATURES.rst
 delete mode 100644 Help/prop_tgt/CXX_EXTENSIONS.rst
 delete mode 100644 Help/prop_tgt/CXX_STANDARD.rst
 delete mode 100644 Help/variable/CMAKE_CXX_COMPILER_FEATURES.rst
 delete mode 100644 Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
 delete mode 100644 Help/variable/CMAKE_CXX_STANDARD.rst
 delete mode 100644 Modules/Compiler/Clang-CXX-FeatureTests.cmake
 delete mode 100644 Modules/Compiler/GNU-CXX-FeatureTests.cmake
 delete mode 100644 Modules/Compiler/Intel-CXX-FeatureTests.cmake
 delete mode 100644 Modules/Compiler/XL-CXX-FeatureTests.cmake
 delete mode 100644 Modules/Internal/FeatureTesting.cmake
 delete mode 100644 Source/cmTargetCompilerFeaturesCommand.cxx
 delete mode 100644 Source/cmTargetCompilerFeaturesCommand.h
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/CMakeLists.txt
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/dummy.cpp
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.cpp
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/lib_delegating_constructors.h
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/lib_user.cpp
 delete mode 100644 Tests/CMakeCommands/target_compiler_features/main.cpp
 delete mode 100644 Tests/CxxDialect/CMakeLists.txt
 delete mode 100644 Tests/CxxDialect/use_constexpr.cxx
 delete mode 100644 Tests/CxxDialect/use_constexpr_and_typeof.cxx
 delete mode 100644 Tests/CxxDialect/use_typeof.cxx


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list