anchor.diff:  [[cpp:unit_test]]
   == Unit Testing support
   
  -Unit testing support is very limited right now. Gradle makes no assumptions about the type of unit testing framework being used. 
  +Unit testing support is very limited right now. Gradle makes no assumptions about the type of unit testing framework being used. Gradle automatically links the test executable with the object files produced for the development binary.  If the binary is an executable, Gradle will relocate the `main` symbol so you can test code in an application without conflicting with the test executable's `main` symbol.
   
   In the future, Gradle make come with support out-of-the-box for a particular testing framework or make it easier to integrate your own.
   
   https://github.com/gradle/native-samples/tree/master/cpp/library-with-tests[See a sample].
  +
  +[[cpp:tool-chain-support]]
  +== Tool chain support
  +
  +Gradle offers the ability to execute the same build using different tool chains. When you build a native binary, Gradle will attempt to locate a tool chain installed on your machine that can build the binary. 
  +
  +The following tool chains are supported:
  +
  +[%header%autowidth,compact]
  +|===
  +| Operating System | Tool Chain | Notes
  +
  +| Linux
  +| http://gcc.gnu.org/[GCC]
  +|
  +
  +| Linux
  +| http://clang.llvm.org[Clang]
  +|
  +
  +| macOS
  +| XCode
  +| Uses the Clang tool chain bundled with XCode.
  +
  +| Windows
  +| https://visualstudio.microsoft.com/[Visual C++]
  +| Windows XP and later, Visual C++ 2010 to 2017.
  +
  +| Windows
  +| http://gcc.gnu.org/[GCC] with http://cygwin.com[Cygwin 32 and Cygwin 64]
  +| Windows XP and later.
  +
  +| Windows
  +| http://gcc.gnu.org/[GCC] with http://www.mingw.org/[MinGW] and https://mingw-w64.org/doku.php[MinGW64]
  +| Windows XP and later.
  +|===
  +
  +
  +[[cpp:tool_chain_installation]]
  +=== Tool chain installation
  +
  +To build C++ projects, you will need to have a compatible tool chain installed:
  +
  +==== Windows
  +
  +To build on Windows, install a compatible version of Visual Studio. The C++ plugins will discover the Visual Studio installations and select the latest version. There is no need to mess around with environment variables or batch scripts. This works fine from a Cygwin shell or the Windows command-line.
  +
  +Alternatively, you can install Cygwin with GCC or MinGW. Clang is currently not supported.
  +
  +==== macOS
  +
  +To build on macOS, you should install XCode. The C++ plugins will discover the XCode installation using the system PATH.
  +
  +The native plugins also work with GCC and Clang bundled with Macports. To use one of the Macports tool chains, you will need to make the tool chain the default using the `port select` command and add Macports to the system PATH.
  +
  +==== Linux
  +
  +To build on Linux, install a compatible version of GCC or Clang. The C++ plugins will discover GCC or Clang using the system PATH.
   
   [[cpp:limitations]]
   == Limitations
  
positive.code: 
  https://github.com/gradle/native-samples/tree/master/cpp/binary-dependencies[See a sample].
  
  [[cpp:external_dependencies]]
  === Publishing 
  
  [NOTE]
  
negative.code: https://github.com/gradle/native-samples/tree/master/cpp/simple-library[See a sample].
  
  [[cpp:variants]]
  == Configure for different targets
  
  From a C++ library or application, Gradle generates what we call a binary.  This binary is a variant of a component which has been assigned a particular build type (e.g., debug) and target machine (e.g., 32-bit Windows). Only binaries that may be built on the current host are generated by Gradle.
  
  