# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
-# TODO: Documentation.
-
import feature ;
+#| tag::doc[]
+
+[[bbv2.builtin.features.tag]]`tag`::
+Used to customize the name of the generated files. The value should have the
+form:
++
+----
+@rulename
+----
++
+where _rulename_ should be a name of a rule with the following signature:
++
+----
+rule tag ( name : type ? : property-set )
+----
++
+The rule will be called for each target with the default name computed by
+B2, the type of the target, and property set. The rule can either
+return a string that must be used as the name of the target, or an empty
+string, in which case the default name will be used.
++
+Most typical use of the `tag` feature is to encode build properties, or library
+version in library target names. You should take care to return non-empty
+string from the tag rule only for types you care about -- otherwise, you might
+end up modifying names of object files, generated header file and other targets
+for which changing names does not make sense.
+
+|# # end::doc[]
+
feature.feature tag
:
: free ;