Merge topic 'ADDITIONAL_MAKE_CLEAN_FILES-genex'
d26594f Genex: Evaluate genexes for additional make clean files.
This commit is contained in:
commit
f4acef500b
@ -21,6 +21,7 @@
|
|||||||
#include "cmTarget.h"
|
#include "cmTarget.h"
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
#include "cmComputeLinkInformation.h"
|
#include "cmComputeLinkInformation.h"
|
||||||
|
#include "cmGeneratorExpression.h"
|
||||||
|
|
||||||
#include "cmMakefileExecutableTargetGenerator.h"
|
#include "cmMakefileExecutableTargetGenerator.h"
|
||||||
#include "cmMakefileLibraryTargetGenerator.h"
|
#include "cmMakefileLibraryTargetGenerator.h"
|
||||||
@ -131,7 +132,14 @@ void cmMakefileTargetGenerator::WriteTargetBuildRules()
|
|||||||
this->Makefile->GetProperty
|
this->Makefile->GetProperty
|
||||||
("ADDITIONAL_MAKE_CLEAN_FILES"))
|
("ADDITIONAL_MAKE_CLEAN_FILES"))
|
||||||
{
|
{
|
||||||
cmSystemTools::ExpandListArgument(additional_clean_files,
|
const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE");
|
||||||
|
cmListFileBacktrace lfbt;
|
||||||
|
cmGeneratorExpression ge(lfbt);
|
||||||
|
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
|
||||||
|
ge.Parse(additional_clean_files);
|
||||||
|
|
||||||
|
cmSystemTools::ExpandListArgument(cge->Evaluate(this->Makefile, config,
|
||||||
|
false, this->Target, 0, 0),
|
||||||
this->CleanFiles);
|
this->CleanFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,18 @@ add_custom_command(OUTPUT ${ToClean_BINARY_DIR}/generated.txt
|
|||||||
add_custom_target(generate ALL DEPENDS ${ToClean_BINARY_DIR}/generated.txt)
|
add_custom_target(generate ALL DEPENDS ${ToClean_BINARY_DIR}/generated.txt)
|
||||||
set(TOCLEAN_FILES ${TOCLEAN_FILES} "${ToClean_BINARY_DIR}/generated.txt")
|
set(TOCLEAN_FILES ${TOCLEAN_FILES} "${ToClean_BINARY_DIR}/generated.txt")
|
||||||
|
|
||||||
|
# Create a custom command whose output should be cleaned, but whose name
|
||||||
|
# is not known until generate-time
|
||||||
|
set(copied_exe "$<TARGET_FILE_DIR:toclean>/toclean_copy${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
add_custom_command(TARGET toclean POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
ARGS -E copy $<TARGET_FILE:toclean>
|
||||||
|
${copied_exe}
|
||||||
|
)
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY
|
||||||
|
ADDITIONAL_MAKE_CLEAN_FILES ${copied_exe})
|
||||||
|
list(APPEND TOCLEAN_FILES "${ToClean_BINARY_DIR}/toclean_copy${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
|
||||||
# Configure a file listing these build-time-generated files.
|
# Configure a file listing these build-time-generated files.
|
||||||
configure_file(${ToClean_SOURCE_DIR}/ToCleanFiles.cmake.in
|
configure_file(${ToClean_SOURCE_DIR}/ToCleanFiles.cmake.in
|
||||||
${ToClean_BINARY_DIR}/ToCleanFiles.cmake @ONLY IMMEDIATE)
|
${ToClean_BINARY_DIR}/ToCleanFiles.cmake @ONLY IMMEDIATE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user