Browse Source

BUG: <CONFIG>_LOCATION property should use the config name in the directory and not $(OutDir). This addresses bug#5363.

Brad King 18 years ago
parent
commit
e0fc8b2995
1 changed files with 11 additions and 5 deletions
  1. 11 5
      Source/cmTarget.cxx

+ 11 - 5
Source/cmTarget.cxx

@@ -1277,16 +1277,22 @@ const char* cmTarget::ImportedGetLocation(const char* config)
 //----------------------------------------------------------------------------
 const char* cmTarget::NormalGetLocation(const char* config)
 {
-  this->Location = this->GetDirectory();
+  this->Location = this->GetDirectory(config);
   if(!this->Location.empty())
     {
     this->Location += "/";
     }
-  const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
-  if(cfgid && strcmp(cfgid, ".") != 0)
+  if(!config)
     {
-    this->Location += cfgid;
-    this->Location += "/";
+    // No specific configuration was given so it will not appear on
+    // the result of GetDirectory.  Add a name here to be replaced at
+    // build time.
+    const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
+    if(cfgid && strcmp(cfgid, ".") != 0)
+      {
+      this->Location += cfgid;
+      this->Location += "/";
+      }
     }
   this->Location += this->GetFullName(config, false);
   return this->Location.c_str();