anchor.diff:  [[sec:cpp_source_sets]]
   == Declaring your source files
   
  -Gradle’s C++ support uses a `ConfigurableFileCollection` directly from the link:{groovyDslPath}/org.gradle.language.cpp.CppApplication.html[application] or link:{groovyDslPath}/org.gradle.language.cpp.CppLibrary.html[library] script block to configure the set of sources to compile.
  +Gradle’s {cpp} support uses a `ConfigurableFileCollection` directly from the link:{groovyDslPath}/org.gradle.language.cpp.CppApplication.html[application] or link:{groovyDslPath}/org.gradle.language.cpp.CppLibrary.html[library] script block to configure the set of sources to compile.
   
   Libraries make a distinction between private (implementation details) and public (exported to consumer) headers. 
   
   You can also configure sources for each binary build for those cases where sources are compiled only on certain target machines.
   
  -.Sources and C++ compilation
  +.Sources and {cpp} compilation
   image::cpp-sourcesets-compilation.png[]
   
  -Test sources are configured on each test suite script block. See <<cpp_testing.adoc#,Testing C++ projects>> chapter.
  +Test sources are configured on each test suite script block. See <<cpp_testing.adoc#,Testing {cpp} projects>> chapter.
   
   [[sec:cpp_dependency_management_overview]]
   == Managing your dependencies
   
   The vast majority of projects rely on other projects, so managing your project's dependencies is an important part of building any project.
  -Dependency management is a big topic, so we will only focus on the basics for C++ projects here.
  +Dependency management is a big topic, so we will only focus on the basics for {cpp} projects here.
   If you’d like to dive into the details, check out the <<introduction_dependency_management.adoc#introduction_dependency_management,introduction to dependency management>>.
   
   Gradle provides support for consuming pre-built binaries from Maven repositories published by Gradle footnote:[Unfortunately, Conan and Nuget repositories aren’t yet support as core features]. 
   
   We will cover how to add dependencies between projects within a multi-build project.
   
  -Specifying dependencies for your C++ project requires two pieces of information:
  +Specifying dependencies for your {cpp} project requires two pieces of information:
   
    * Identifying information for the dependency (project path, Maven GAV)
    * What it’s needed for, e.g. compilation, linking, runtime or all of the above.
   
  -This information is specified in a `dependencies {}` block of the C++ `application` or `library` script block.
  +This information is specified in a `dependencies {}` block of the {cpp} `application` or `library` script block.
   For example, to tell Gradle that your project requires library `common` to compile and link your production code, you can use the following fragment:
   
   .Declaring dependencies
  
positive.code: 
  For example, if you want to change the warning level generated by the compiler for all variants, you can use this configuration:
  
  .Setting C++ compiler options for all variants
  ====
  include::sample[dir="userguide/cpp/basic/groovy",files="build.gradle[tags=cpp-compiler-options-all-variants]"]
  include::sample[dir="userguide/cpp/basic/kotlin",files="build.gradle.kts[tags=cpp-compiler-options-all-variants]"]
  
negative.code: 
  It’s also possible to find the instance for a specific variant through the `BinaryCollection` on the `application` or `library` script block:
  
  .Setting {cpp} compiler options per variant
  ====
  include::sample[dir="userguide/cpp/basic/groovy",files="build.gradle[tags=cpp-compiler-options-per-variants]"]
  include::sample[dir="userguide/cpp/basic/kotlin",files="build.gradle.kts[tags=cpp-compiler-options-per-variants]"]
  