Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test case

This commit is contained in:
Peter Collingbourne 2012-03-17 20:49:36 +00:00
parent 48eb7fc7d7
commit df847671b4
2 changed files with 13 additions and 1 deletions

View File

@ -475,6 +475,17 @@ cmNinjaTargetGenerator
emptyDeps,
orderOnlyDeps,
vars);
if(const char* objectOutputs = source->GetProperty("OBJECT_OUTPUTS")) {
std::vector<std::string> outputList;
cmSystemTools::ExpandListArgument(objectOutputs, outputList);
std::transform(outputList.begin(), outputList.end(), outputList.begin(),
MapToNinjaPath());
cmGlobalNinjaGenerator::WritePhonyBuild(this->GetBuildFileStream(),
"Additional output files.",
outputList,
outputs);
}
}
//----------------------------------------------------------------------------

View File

@ -47,7 +47,8 @@ SET_SOURCE_FILES_PROPERTIES(foo_precompile.c PROPERTIES
# Setup dependencies for precompiled header creation and use. The VS
# IDE takes care of this automatically.
IF("${CMAKE_GENERATOR}" MATCHES "Makefile")
IF("${CMAKE_GENERATOR}" MATCHES "Makefile" OR
"${CMAKE_GENERATOR}" MATCHES "Ninja")
# This source file creates the precompiled header as a side-effect.
SET_SOURCE_FILES_PROPERTIES(foo_precompile.c PROPERTIES
OBJECT_OUTPUTS "${PCH_DIR}/foo_precompiled.pch")