diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 555c43763..62598f439 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -275,6 +275,8 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg) this->LocalGenerator = lg; this->GlobalGenerator = this->LocalGenerator->GetGlobalGenerator(); + this->GlobalGenerator->ComputeTargetObjectDirectory(this); + CreatePropertyGeneratorExpressions( t->GetIncludeDirectoriesEntries(), t->GetIncludeDirectoriesBacktraces(), diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 540bd0132..4a48b5d0b 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1263,8 +1263,6 @@ bool cmGlobalGenerator::Compute() this->LocalGenerators[i]->AddHelperCommands(); } - this->InitGeneratorTargets(); - #ifdef CMAKE_BUILD_WITH_CMAKE for (std::vector::iterator it = autogenTargets.begin(); it != autogenTargets.end(); ++it) @@ -1557,19 +1555,6 @@ void cmGlobalGenerator::CreateGeneratorTargets(TargetTypes targetTypes, mf->SetGeneratorTargets(generatorTargets); } -//---------------------------------------------------------------------------- -void cmGlobalGenerator::InitGeneratorTargets() -{ - for(cmGeneratorTargetsType::iterator ti = - this->GeneratorTargets.begin(); ti != this->GeneratorTargets.end(); ++ti) - { - if (!ti->second->Target->IsImported()) - { - this->ComputeTargetObjectDirectory(ti->second); - } - } -} - //---------------------------------------------------------------------------- void cmGlobalGenerator::CreateGeneratorTargets(TargetTypes targetTypes) { diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 88a03cacb..ba74c9e65 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -480,7 +480,6 @@ private: cmGeneratorTargetsType GeneratorTargets; friend class cmake; void CreateGeneratorTargets(TargetTypes targetTypes, cmLocalGenerator* lg); - void InitGeneratorTargets(); void CreateGeneratorTargets(TargetTypes targetTypes); void ClearGeneratorMembers(); diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index ebcfc0fc8..d5aca55c7 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -101,7 +101,14 @@ add_executable(QtAutogen main.cpp calwidget.cpp second_widget.cpp foo.cpp blub.c ) set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h") -set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE) +add_executable(targetObjectsTest targetObjectsTest.cpp $) +target_link_libraries(targetObjectsTest ${QT_LIBRARIES}) + +set_target_properties( + QtAutogen codeeditorLib privateSlot targetObjectsTest + PROPERTIES + AUTOMOC TRUE +) include(GenerateExportHeader) # The order is relevant here. B depends on A, and B headers depend on A diff --git a/Tests/QtAutogen/targetObjectsTest.cpp b/Tests/QtAutogen/targetObjectsTest.cpp new file mode 100644 index 000000000..766b7751b --- /dev/null +++ b/Tests/QtAutogen/targetObjectsTest.cpp @@ -0,0 +1,5 @@ + +int main() +{ + return 0; +}