anchor.diff:  [[cpp:cached_compilation]]
   == Cached Compilation
   
  -Gradle uses the inputs to a compilation task to calculate a build cache key. This key uniquely identifies the output of the compilation task. When the <<build_cache.adoc#build_cache,build cache>> is enabled, Gradle will first check for a match of the build cache key in a local or remote cache. When there is a hit, Gradle extracts the compilation output into the expected location. 
  +Gradle uses the inputs to a compilation task to calculate a build cache key. This key uniquely identifies the output of the compilation task. When the <<build_cache.adoc#build_cache,build cache>> is enabled, Gradle will first check for a match of the build cache key in a local or remote cache. When there is a hit, Gradle extracts the compilation output into the expected location.
   
   The build cache key takes into consideration:
   
  
positive.code: [[cpp_plugin]]
  = Building C++ applications and libraries
  
  
  [NOTE]
  ====
  
  Please be aware that the DSL and APIs may change in later Gradle versions as we add new features with respect to our <<feature_lifecycle.adoc#feature_lifecycle,incubating feature lifecycle>>.
  
  ====
  
  Gradle's C\++ plugins add support for building applications and libraries written in C++. These plugins were https://blog.gradle.org/introducing-the-new-cpp-plugins[introduced in 2018] and we recommend new projects to use these plugins over <<native_software.adoc#native_binaries,the older Native plugins>>. This chapter makes heavy use of a https://github.com/gradle/native-samples[large collection of samples].
  
  [[cpp:features]]
  
negative.code: * Any macros or compiler arguments
  * Contents of the source files
  * Contents of the header files
  * Transitive headers _used_ by the source or header files
  * Version of Gradle
  
  
  [[cpp:tool-chain-support]]
  == Tool chain support
  