diff options
author | Brad King <brad.king@kitware.com> | 2013-10-29 13:45:45 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2013-10-29 13:45:45 (GMT) |
commit | 8f80eaf98175f9a60089f8146d4c9281e72d72f4 (patch) | |
tree | 080f0832163b1ae3cdca86cb9596df4e7086e7b0 | |
parent | afe6adfabaabab8808ff441172319cf357b30886 (diff) | |
parent | f037b9b72644f150c136540b990774a3b32d39cf (diff) | |
download | CMake-8f80eaf98175f9a60089f8146d4c9281e72d72f4.zip CMake-8f80eaf98175f9a60089f8146d4c9281e72d72f4.tar.gz CMake-8f80eaf98175f9a60089f8146d4c9281e72d72f4.tar.bz2 |
Merge topic 'fix-custom-source-with-flags-crash'
f037b9b Generators: don't append sources from utility targets to objectSources
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 9 | ||||
-rw-r--r-- | Tests/CustomCommand/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Tests/CustomCommand/source_in_custom_target.cpp | 0 |
3 files changed, 15 insertions, 1 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 62ac263..511ae8a 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -114,7 +114,10 @@ std::vector<cmSourceFile*> const& cmGeneratorTarget::GetSourceFiles() void cmGeneratorTarget::ClassifySources() { cmsys::RegularExpression header(CM_HEADER_REGEX); - bool isObjLib = this->Target->GetType() == cmTarget::OBJECT_LIBRARY; + + cmTarget::TargetType targetType = this->Target->GetType(); + bool isObjLib = targetType == cmTarget::OBJECT_LIBRARY; + std::vector<cmSourceFile*> badObjLib; std::vector<cmSourceFile*> const& sources = this->Target->GetSourceFiles(); for(std::vector<cmSourceFile*>::const_iterator si = sources.begin(); @@ -126,6 +129,10 @@ void cmGeneratorTarget::ClassifySources() { this->CustomCommands.push_back(sf); } + else if(targetType == cmTarget::UTILITY) + { + this->ExtraSources.push_back(sf); + } else if(sf->GetPropertyAsBool("HEADER_FILE_ONLY")) { this->HeaderSources.push_back(sf); diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt index 30daa7d..ff96add 100644 --- a/Tests/CustomCommand/CMakeLists.txt +++ b/Tests/CustomCommand/CMakeLists.txt @@ -449,3 +449,10 @@ set_property(SOURCE perconfig.out PROPERTY SYMBOLIC 1) add_custom_target(perconfig_target ALL COMMAND ${CMAKE_COMMAND} -E echo "perconfig=$<TARGET_FILE:perconfig>" "config=$<CONFIGURATION>" DEPENDS perconfig.out) + +# Test SOURCES in add_custom_target() with COMPILE_DEFINITIONS +# which previously caused a crash in the makefile generators. +add_custom_target(source_in_custom_target SOURCES source_in_custom_target.cpp) +set_property(SOURCE source_in_custom_target + PROPERTY COMPILE_DEFINITIONS "TEST" +) diff --git a/Tests/CustomCommand/source_in_custom_target.cpp b/Tests/CustomCommand/source_in_custom_target.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Tests/CustomCommand/source_in_custom_target.cpp |