<?xml version="1.0"?>
<!--
SPDX-FileCopyrightText: Copyright The SCons Foundation (https://scons.org)
SPDX-License-Identifier: MIT
SPDX-FileType: DOCUMENTATION

This file is processed by the bin/SConsDoc.py module.
-->

<!DOCTYPE sconsdoc [
<!ENTITY % scons SYSTEM '../../doc/scons.mod'>
%scons;
<!ENTITY % builders-mod SYSTEM '../../doc/generated/builders.mod'>
%builders-mod;
<!ENTITY % functions-mod SYSTEM '../../doc/generated/functions.mod'>
%functions-mod;
<!ENTITY % tools-mod SYSTEM '../../doc/generated/tools.mod'>
%tools-mod;
<!ENTITY % variables-mod SYSTEM '../../doc/generated/variables.mod'>
%variables-mod;
]>

<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">

<tool name="cXX">
<summary>
<para>
Sets construction variables for generic POSIX C++ compilers.
</para>
</summary>
<sets>
<item>CXX</item>
<item>CXXFLAGS</item>
<item>CXXCOM</item>
<item>SHCXX</item>
<item>SHCXXFLAGS</item>
<item>SHCXXCOM</item>
<item>CPPDEFPREFIX</item>
<item>CPPDEFSUFFIX</item>
<item>INCPREFIX</item>
<item>INCSUFFIX</item>
<item>SHOBJSUFFIX</item>
<item>OBJSUFFIX</item>
<item><!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME--></item>
<item>CXXFILESUFFIX</item>
</sets>
<uses>
<item>CXXCOMSTR</item>
<item>SHCXXCOMSTR</item>
</uses>
</tool>

<cvar name="CXX">
<summary>
<para>
The C++ compiler.
See also &cv-link-SHCXX; for compiling to shared objects.
</para>
</summary>
</cvar>

<cvar name="CXXCOM">
<summary>
<para>
The command line used to compile a C++ source file to an object file.
Any options specified in the &cv-link-CXXFLAGS; and
&cv-link-CPPFLAGS; construction variables
are included on this command line.
See also &cv-link-SHCXXCOM; for compiling to shared objects.
</para>
</summary>
</cvar>

<cvar name="CXXCOMSTR">
<summary>
<para>
If set, the string displayed when a C++ source file
is compiled to a (static) object file.
If not set, then &cv-link-CXXCOM; (the command line) is displayed.
See also &cv-link-SHCXXCOMSTR; for compiling to shared objects.
</para>

<example_commands>
env = Environment(CXXCOMSTR = "Compiling static object $TARGET")
</example_commands>
</summary>
</cvar>

<cvar name="CXXFLAGS">
<summary>
<para>
General options that are passed to the C++ compiler.
By default, this includes the value of &cv-link-CCFLAGS;,
so that setting &cv-CCFLAGS; affects both C and C++ compilation.
If you want to add C++-specific flags,
you must set or override the value of &cv-link-CXXFLAGS;.
See also &cv-link-SHCXXFLAGS; for compiling to shared objects.
</para>
</summary>
</cvar>

<cvar name="SHCXX">
<summary>
<para>
The C++ compiler used for generating shared-library objects.
See also &cv-link-CXX; for compiling to static objects.
</para>
</summary>
</cvar>

<cvar name="SHCXXCOM">
<summary>
<para>
The command line used to compile a C++ source file
to a shared-library object file.
Any options specified in the &cv-link-SHCXXFLAGS; and
&cv-link-CPPFLAGS; construction variables
are included on this command line.
See also &cv-link-CXXCOM; for compiling to static objects.
</para>
</summary>
</cvar>

<cvar name="SHCXXCOMSTR">
<summary>
<para>
If set, the string displayed when a C++ source file
is compiled to a shared object file.
If not set, then &cv-link-SHCXXCOM; (the command line) is displayed.
See also &cv-link-CXXCOMSTR; for compiling to static objects.
</para>

<example_commands>
env = Environment(SHCXXCOMSTR = "Compiling shared object $TARGET")
</example_commands>
</summary>
</cvar>

<cvar name="SHCXXFLAGS">
<summary>
<para>
Options that are passed to the C++ compiler
to generate shared-library objects.
See also &cv-link-CXXFLAGS; for compiling to static objects.
</para>
</summary>
</cvar>

</sconsdoc>
