Add SOURCE_DIR and BINARY_DIR directory properties that return the
absolute paths to the corresponding directories. These correspond
to the target properties of the same names that we already have.
Add a `VS_STARTUP_PROJECT` directory property to specify the project
that should be placed first in the `.sln` file so that it will be
selected as the default startup project.
Co-Author: Taylor Braun-Jones <taylor.braunjones@avigilon.com>
The property cannot be implemented on other generators because the
corresponding native build tools (VS IDE, Xcode, Ninja) all implement
their own `clean` operations that affect all outputs. Document this
limitation.
It costs an extra cmMakefile member and extra code to maintain in
directory property handling. Remove documentation note that it
is read-only and specify high-level command to populate it.
Add policy CMP0059 to cover this change. The property has been
deprecated since CMake 2.4 anyway.
This will help clean up cmMakefile -- the DefineFlagsOrig member should
not need to exist.
Make wording of the directory and target properties more consitent
and complementary. Specify that the value is a ";-list" with a link
to the cmake-language(7) manual section on lists.
Explain that it affects only targets added after the call. Fix the link
to the COMPILE_OPTIONS directory propert documentation. Update the
latter to explain that it is used to initialize the corresponding target
property when a target is created.
Document the COMPILE_DEFINITIONS_<Config> properties as deprecated.
Add new sections for deprecated properties and move POST_INSTALL_SCRIPT
and PRE_INSTALL_SCRIPT there as well.
Define a new 'CMAKE_CONFIGURE_DEPENDS' directory property that projects
can use to specify input files to the CMake configuration process.
Extend the RunCMake.Configure test to verify that the build system
re-runs CMake when this input changes.
Generator expressions are supported in many places and are a distinct
concept worthy of their own manual page. The old builtin documentation
was previously represented by preprocessor macros to generate it into
each place that supports them. Factor out the duplicate content into a
dedicated cmake-generator-expressions manual page and reference it from
each original location.
The COMPILE_DEFINITIONS escaping disclaimer was represented in builtin
documentation using a preprocessor macro. Factor the duplicate content
out into a separate .txt file and include it in each document with the
reStructuredText include directive.