cmGeneratorTarget: Move GetExportMacro from cmTarget.
This commit is contained in:
parent
215cd21a02
commit
311018e5ad
|
@ -349,7 +349,8 @@ std::string cmCommonTargetGenerator::GetDefines(const std::string &l)
|
|||
std::set<std::string> defines;
|
||||
const char *lang = l.c_str();
|
||||
// Add the export symbol definition for shared library objects.
|
||||
if(const char* exportMacro = this->Target->GetExportMacro())
|
||||
if(const char* exportMacro =
|
||||
this->GeneratorTarget->GetExportMacro())
|
||||
{
|
||||
this->LocalGenerator->AppendDefines(defines, exportMacro);
|
||||
}
|
||||
|
|
|
@ -427,7 +427,7 @@ ComputeDefines(cmSourceFile *source, cmLocalGenerator* lg,
|
|||
const std::string& config = makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
|
||||
|
||||
// Add the export symbol definition for shared library objects.
|
||||
if(const char* exportMacro = target->Target->GetExportMacro())
|
||||
if(const char* exportMacro = target->GetExportMacro())
|
||||
{
|
||||
lg->AppendDefines(defines, exportMacro);
|
||||
}
|
||||
|
|
|
@ -1708,6 +1708,32 @@ cmListFileBacktrace cmGeneratorTarget::GetBacktrace() const
|
|||
return this->Target->GetBacktrace();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmGeneratorTarget::GetExportMacro() const
|
||||
{
|
||||
// Define the symbol for targets that export symbols.
|
||||
if(this->GetType() == cmState::SHARED_LIBRARY ||
|
||||
this->GetType() == cmState::MODULE_LIBRARY ||
|
||||
this->IsExecutableWithExports())
|
||||
{
|
||||
if(const char* custom_export_name = this->GetProperty("DEFINE_SYMBOL"))
|
||||
{
|
||||
this->ExportMacro = custom_export_name;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string in = this->GetName();
|
||||
in += "_EXPORTS";
|
||||
this->ExportMacro = cmSystemTools::MakeCidentifier(in);
|
||||
}
|
||||
return this->ExportMacro.c_str();
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
class cmTargetCollectLinkLanguages
|
||||
{
|
||||
|
|
|
@ -168,6 +168,10 @@ public:
|
|||
|
||||
cmListFileBacktrace GetBacktrace() const;
|
||||
|
||||
/** Get the macro to define when building sources in this target.
|
||||
If no macro should be defined null is returned. */
|
||||
const char* GetExportMacro() const;
|
||||
|
||||
/** Get the soname of the target. Allowed only for a shared library. */
|
||||
std::string GetSOName(const std::string& config) const;
|
||||
|
||||
|
@ -487,6 +491,8 @@ private:
|
|||
std::set<cmSourceFile const*> ExplicitObjectName;
|
||||
mutable std::map<std::string, std::vector<std::string> > SystemIncludesCache;
|
||||
|
||||
mutable std::string ExportMacro;
|
||||
|
||||
void ConstructSourceFileFlags() const;
|
||||
mutable bool SourceFileFlagsConstructed;
|
||||
mutable std::map<cmSourceFile const*, SourceFileFlags> SourceFlagsMap;
|
||||
|
|
|
@ -297,7 +297,7 @@ std::string cmGhsMultiTargetGenerator::GetDefines(const std::string &language,
|
|||
std::set<std::string> defines;
|
||||
const char *lang = language.c_str();
|
||||
// Add the export symbol definition for shared library objects.
|
||||
if (const char *exportMacro = this->Target->GetExportMacro())
|
||||
if (const char *exportMacro = this->GeneratorTarget->GetExportMacro())
|
||||
{
|
||||
this->LocalGenerator->AppendDefines(defines, exportMacro);
|
||||
}
|
||||
|
|
|
@ -1848,7 +1848,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
|||
this->AppendDefines(ppDefs,
|
||||
"CMAKE_INTDIR=\"$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\"");
|
||||
}
|
||||
if(const char* exportMacro = target.GetExportMacro())
|
||||
if(const char* exportMacro = gtgt->GetExportMacro())
|
||||
{
|
||||
// Add the export symbol definition for shared library objects.
|
||||
this->AppendDefines(ppDefs, exportMacro);
|
||||
|
|
|
@ -1543,7 +1543,7 @@ void cmLocalVisualStudio6Generator
|
|||
|
||||
// Add the export symbol definition for shared library objects.
|
||||
std::string exportSymbol;
|
||||
if(const char* exportMacro = target.GetExportMacro())
|
||||
if(const char* exportMacro = gt->GetExportMacro())
|
||||
{
|
||||
exportSymbol = exportMacro;
|
||||
}
|
||||
|
|
|
@ -777,7 +777,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
|
|||
targetOptions.AddDefine(configDefine);
|
||||
|
||||
// Add the export symbol definition for shared library objects.
|
||||
if(const char* exportMacro = target.GetExportMacro())
|
||||
if(const char* exportMacro = gt->GetExportMacro())
|
||||
{
|
||||
targetOptions.AddDefine(exportMacro);
|
||||
}
|
||||
|
|
|
@ -2109,32 +2109,6 @@ std::string cmTarget::GetFrameworkVersion() const
|
|||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetExportMacro() const
|
||||
{
|
||||
// Define the symbol for targets that export symbols.
|
||||
if(this->GetType() == cmState::SHARED_LIBRARY ||
|
||||
this->GetType() == cmState::MODULE_LIBRARY ||
|
||||
this->IsExecutableWithExports())
|
||||
{
|
||||
if(const char* custom_export_name = this->GetProperty("DEFINE_SYMBOL"))
|
||||
{
|
||||
this->ExportMacro = custom_export_name;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string in = this->GetName();
|
||||
in += "_EXPORTS";
|
||||
this->ExportMacro = cmSystemTools::MakeCindentifier(in);
|
||||
}
|
||||
return this->ExportMacro.c_str();
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool cmTarget::GetMappedConfig(std::string const& desired_config,
|
||||
const char** loc,
|
||||
const char** imp,
|
||||
|
|
|
@ -220,10 +220,6 @@ public:
|
|||
const char** imp,
|
||||
std::string& suffix) const;
|
||||
|
||||
/** Get the macro to define when building sources in this target.
|
||||
If no macro should be defined null is returned. */
|
||||
const char* GetExportMacro() const;
|
||||
|
||||
/** Return whether this target is an executable with symbol exports
|
||||
enabled. */
|
||||
bool IsExecutableWithExports() const;
|
||||
|
@ -369,7 +365,6 @@ private:
|
|||
std::string Name;
|
||||
std::string InstallPath;
|
||||
std::string RuntimeInstallPath;
|
||||
mutable std::string ExportMacro;
|
||||
std::vector<std::string> LinkDirectories;
|
||||
std::vector<cmCustomCommand> PreBuildCommands;
|
||||
std::vector<cmCustomCommand> PreLinkCommands;
|
||||
|
|
|
@ -1961,7 +1961,8 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
|
|||
configDefine += configName;
|
||||
configDefine += "\"";
|
||||
clOptions.AddDefine(configDefine);
|
||||
if(const char* exportMacro = this->Target->GetExportMacro())
|
||||
if(const char* exportMacro =
|
||||
this->GeneratorTarget->GetExportMacro())
|
||||
{
|
||||
clOptions.AddDefine(exportMacro);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue