https://github.com/Kitware/CMake
Revision 0826c20128fad20aafac2006ac0371e381e3cf60 authored by Brad King on 25 April 2018, 14:53:15 UTC, committed by Brad King on 26 April 2018, 12:39:44 UTC
Internally we mark `file(GENERATE)` outputs as `GENERATED` in order
to tell custom command dependency tracing logic not to expect the
files to exist on disk yet.  This is because we do not generate the
files until after that tracing is done.

The Ninja generator also interprets the `GENERATED` property to mean
that it is expected that some build rule will generate the file if
another build rule depends on it.  If the generator does not know of a
custom command that generates the file then it adds an empty one so that
the `ninja` build tool does not complain about a dependency on a file
that does not exist and has no rule to generate it.  However, this step
is not necessary for `file(GENERATE)` outputs because there is no build
rule to generate them and they will exist before `ninja` runs.

Add an additional `__CMAKE_GENERATED_BY_CMAKE` property internally to
tell the Ninja generator that a `GENERATED` file will exist before the
build starts and is not expected to have a build rule producing it.

Fixes: #17942
1 parent fbe6cd1
Raw File
Tip revision: 0826c20128fad20aafac2006ac0371e381e3cf60 authored by Brad King on 25 April 2018, 14:53:15 UTC
Ninja: Do not add empty custom command for file(GENERATE) outputs
Tip revision: 0826c20
configure
#!/bin/sh
cmake_source_dir=`cd "\`dirname \"$0\"\`";pwd`
exec "${cmake_source_dir}/bootstrap" "$@"
back to top