Move GetLocationForBuild to cmGeneratorTarget.
This commit is contained in:
parent
9f2dca805c
commit
dfb025bf12
|
@ -539,6 +539,41 @@ bool cmGeneratorTarget::IsImported() const
|
||||||
return this->Target->IsImported();
|
return this->Target->IsImported();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
const char* cmGeneratorTarget::GetLocationForBuild() const
|
||||||
|
{
|
||||||
|
static std::string location;
|
||||||
|
if(this->IsImported())
|
||||||
|
{
|
||||||
|
location = this->Target->ImportedGetFullPath("", false);
|
||||||
|
return location.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now handle the deprecated build-time configuration location.
|
||||||
|
location = this->Target->GetDirectory();
|
||||||
|
const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
|
||||||
|
if(cfgid && strcmp(cfgid, ".") != 0)
|
||||||
|
{
|
||||||
|
location += "/";
|
||||||
|
location += cfgid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this->Target->IsAppBundleOnApple())
|
||||||
|
{
|
||||||
|
std::string macdir = this->Target->BuildMacContentDirectory("", "",
|
||||||
|
false);
|
||||||
|
if(!macdir.empty())
|
||||||
|
{
|
||||||
|
location += "/";
|
||||||
|
location += macdir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
location += "/";
|
||||||
|
location += this->Target->GetFullName("", false);
|
||||||
|
return location.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool cmGeneratorTarget::IsSystemIncludeDirectory(const std::string& dir,
|
bool cmGeneratorTarget::IsSystemIncludeDirectory(const std::string& dir,
|
||||||
const std::string& config) const
|
const std::string& config) const
|
||||||
|
@ -867,7 +902,7 @@ bool cmTargetTraceDependencies::IsUtility(std::string const& dep)
|
||||||
{
|
{
|
||||||
// This is really only for compatibility so we do not need to
|
// This is really only for compatibility so we do not need to
|
||||||
// worry about configuration names and output names.
|
// worry about configuration names and output names.
|
||||||
std::string tLocation = t->Target->GetLocationForBuild();
|
std::string tLocation = t->GetLocationForBuild();
|
||||||
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
||||||
std::string depLocation = cmSystemTools::GetFilenamePath(dep);
|
std::string depLocation = cmSystemTools::GetFilenamePath(dep);
|
||||||
depLocation = cmSystemTools::CollapseFullPath(depLocation);
|
depLocation = cmSystemTools::CollapseFullPath(depLocation);
|
||||||
|
|
|
@ -31,6 +31,11 @@ public:
|
||||||
bool IsImported() const;
|
bool IsImported() const;
|
||||||
const char *GetLocation(const std::string& config) const;
|
const char *GetLocation(const std::string& config) const;
|
||||||
|
|
||||||
|
/** Get the location of the target in the build tree with a placeholder
|
||||||
|
referencing the configuration in the native build system. This
|
||||||
|
location is suitable for use as the LOCATION target property. */
|
||||||
|
const char* GetLocationForBuild() const;
|
||||||
|
|
||||||
int GetType() const;
|
int GetType() const;
|
||||||
std::string GetName() const;
|
std::string GetName() const;
|
||||||
const char *GetProperty(const std::string& prop) const;
|
const char *GetProperty(const std::string& prop) const;
|
||||||
|
|
|
@ -2747,39 +2747,6 @@ const char* cmTarget::ImportedGetLocation(const std::string& config) const
|
||||||
return location.c_str();
|
return location.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
const char* cmTarget::GetLocationForBuild() const
|
|
||||||
{
|
|
||||||
static std::string location;
|
|
||||||
if(this->IsImported())
|
|
||||||
{
|
|
||||||
location = this->ImportedGetFullPath("", false);
|
|
||||||
return location.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now handle the deprecated build-time configuration location.
|
|
||||||
location = this->GetDirectory();
|
|
||||||
const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
|
|
||||||
if(cfgid && strcmp(cfgid, ".") != 0)
|
|
||||||
{
|
|
||||||
location += "/";
|
|
||||||
location += cfgid;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this->IsAppBundleOnApple())
|
|
||||||
{
|
|
||||||
std::string macdir = this->BuildMacContentDirectory("", "", false);
|
|
||||||
if(!macdir.empty())
|
|
||||||
{
|
|
||||||
location += "/";
|
|
||||||
location += macdir;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
location += "/";
|
|
||||||
location += this->GetFullName("", false);
|
|
||||||
return location.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmTarget::GetTargetVersion(int& major, int& minor) const
|
void cmTarget::GetTargetVersion(int& major, int& minor) const
|
||||||
{
|
{
|
||||||
|
@ -2922,8 +2889,11 @@ const char *cmTarget::GetProperty(const std::string& prop,
|
||||||
// cannot take into account the per-configuration name of the
|
// cannot take into account the per-configuration name of the
|
||||||
// target because the configuration type may not be known at
|
// target because the configuration type may not be known at
|
||||||
// CMake time.
|
// CMake time.
|
||||||
this->Properties.SetProperty(
|
cmGlobalGenerator* gg = this->Makefile->GetGlobalGenerator();
|
||||||
propLOCATION, this->GetLocationForBuild());
|
gg->CreateGenerationObjects();
|
||||||
|
cmGeneratorTarget* gt = gg->GetGeneratorTarget(this);
|
||||||
|
this->Properties.SetProperty(propLOCATION,
|
||||||
|
gt->GetLocationForBuild());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,11 +376,6 @@ public:
|
||||||
|
|
||||||
const char* ImportedGetLocation(const std::string& config) const;
|
const char* ImportedGetLocation(const std::string& config) const;
|
||||||
|
|
||||||
/** Get the location of the target in the build tree with a placeholder
|
|
||||||
referencing the configuration in the native build system. This
|
|
||||||
location is suitable for use as the LOCATION target property. */
|
|
||||||
const char* GetLocationForBuild() const;
|
|
||||||
|
|
||||||
/** Get the target major and minor version numbers interpreted from
|
/** Get the target major and minor version numbers interpreted from
|
||||||
the VERSION property. Version 0 is returned if the property is
|
the VERSION property. Version 0 is returned if the property is
|
||||||
not set or cannot be parsed. */
|
not set or cannot be parsed. */
|
||||||
|
|
Loading…
Reference in New Issue