summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-07-15 16:47:27 (GMT)
committerBrad King <brad.king@kitware.com>2013-07-15 17:17:29 (GMT)
commit4bb6e24809df6b6443895a5a5c12cb264f5f1489 (patch)
tree7703f7db6532c02606515e49888cb4c863d6b249 /Source
parentb5dd80105f79c5296f222368b85d3d211a509b1f (diff)
downloadCMake-4bb6e24809df6b6443895a5a5c12cb264f5f1489.zip
CMake-4bb6e24809df6b6443895a5a5c12cb264f5f1489.tar.gz
CMake-4bb6e24809df6b6443895a5a5c12cb264f5f1489.tar.bz2
VS,Xcode: Drop incorrect legacy dependency trace (#14291)
Drop the "vsProjectFile" argument from cmTarget::TraceDependencies. It appears to be the modern equivalent to a hunk added in commit ba68f771 (...added new custom command support, 2003-06-03): + name = libName; + name += ".dsp.cmake"; + srcFilesToProcess.push(name); but was broken by refactoring at some point. The current behavior tries to trace dependencies on a source file named the same as a target, which makes no sense. Furthermore, in code of the form add_executable(foo foo.c) add_custom_command(OUTPUT "${somewhere}/foo" ... DEPENDS foo) the "vsProjectFile" value "foo" matches source "${somewhere}/foo.rule" generated to hold the custom command and causes the command to be added to the "foo" target incorrectly. Simply drop the incorrect source file trace and supporting logic.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmLocalGenerator.cxx8
-rw-r--r--Source/cmLocalGenerator.h2
-rw-r--r--Source/cmLocalNinjaGenerator.cxx1
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx1
-rw-r--r--Source/cmTarget.cxx17
-rw-r--r--Source/cmTarget.h2
6 files changed, 6 insertions, 25 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 00846d5..dd9909b 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -55,7 +55,6 @@ cmLocalGenerator::cmLocalGenerator()
this->UseRelativePaths = false;
this->Configured = false;
this->EmitUniversalBinaryFlags = true;
- this->IsMakefileGenerator = false;
this->RelativePathsConfigured = false;
this->PathConversionsSetup = false;
this->BackwardsCompatibility = 0;
@@ -260,12 +259,7 @@ void cmLocalGenerator::TraceDependencies()
cmTargets& targets = this->Makefile->GetTargets();
for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t)
{
- const char* projectFilename = 0;
- if (this->IsMakefileGenerator == false) // only use of this variable
- {
- projectFilename = t->second.GetName();
- }
- t->second.TraceDependencies(projectFilename);
+ t->second.TraceDependencies();
}
}
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index f35ef8e..0bd1853 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -435,8 +435,6 @@ protected:
bool IgnoreLibPrefix;
bool Configured;
bool EmitUniversalBinaryFlags;
- // A type flag is not nice. It's used only in TraceDependencies().
- bool IsMakefileGenerator;
// Hack for ExpandRuleVariable until object-oriented version is
// committed.
std::string TargetImplib;
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index bdc3d80..a522e37 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -27,7 +27,6 @@ cmLocalNinjaGenerator::cmLocalNinjaGenerator()
, ConfigName("")
, HomeRelativeOutputPath("")
{
- this->IsMakefileGenerator = true;
#ifdef _WIN32
this->WindowsShell = true;
#endif
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 78a70f8..5966900 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -92,7 +92,6 @@ cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3()
this->SkipPreprocessedSourceRules = false;
this->SkipAssemblySourceRules = false;
this->MakeCommandEscapeTargetTwice = false;
- this->IsMakefileGenerator = true;
this->BorlandMakeCurlyHack = false;
}
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index a90fa74..1ffca97 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1789,8 +1789,7 @@ bool cmTarget::IsBundleOnApple()
class cmTargetTraceDependencies
{
public:
- cmTargetTraceDependencies(cmTarget* target, cmTargetInternals* internal,
- const char* vsProjectFile);
+ cmTargetTraceDependencies(cmTarget* target, cmTargetInternals* internal);
void Trace();
private:
cmTarget* Target;
@@ -1814,8 +1813,7 @@ private:
//----------------------------------------------------------------------------
cmTargetTraceDependencies
-::cmTargetTraceDependencies(cmTarget* target, cmTargetInternals* internal,
- const char* vsProjectFile):
+::cmTargetTraceDependencies(cmTarget* target, cmTargetInternals* internal):
Target(target), Internal(internal)
{
// Convenience.
@@ -1832,13 +1830,6 @@ cmTargetTraceDependencies
this->QueueSource(*si);
}
- // Queue the VS project file to check dependencies on the rule to
- // generate it.
- if(vsProjectFile)
- {
- this->FollowName(vsProjectFile);
- }
-
// Queue pre-build, pre-link, and post-build rule dependencies.
this->CheckCustomCommands(this->Target->GetPreBuildCommands());
this->CheckCustomCommands(this->Target->GetPreLinkCommands());
@@ -2057,7 +2048,7 @@ cmTargetTraceDependencies
}
//----------------------------------------------------------------------------
-void cmTarget::TraceDependencies(const char* vsProjectFile)
+void cmTarget::TraceDependencies()
{
// CMake-generated targets have no dependencies to trace. Normally tracing
// would find nothing anyway, but when building CMake itself the "install"
@@ -2069,7 +2060,7 @@ void cmTarget::TraceDependencies(const char* vsProjectFile)
}
// Use a helper object to trace the dependencies.
- cmTargetTraceDependencies tracer(this, this->Internal.Get(), vsProjectFile);
+ cmTargetTraceDependencies tracer(this, this->Internal.Get());
tracer.Trace();
}
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 3bc0ab2..62d9fb1 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -341,7 +341,7 @@ public:
* Trace through the source files in this target and add al source files
* that they depend on, used by all generators
*/
- void TraceDependencies(const char* vsProjectFile);
+ void TraceDependencies();
/**
* Make sure the full path to all source files is known.