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;
|
std::set<std::string> defines;
|
||||||
const char *lang = l.c_str();
|
const char *lang = l.c_str();
|
||||||
// Add the export symbol definition for shared library objects.
|
// 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);
|
this->LocalGenerator->AppendDefines(defines, exportMacro);
|
||||||
}
|
}
|
||||||
|
@ -427,7 +427,7 @@ ComputeDefines(cmSourceFile *source, cmLocalGenerator* lg,
|
|||||||
const std::string& config = makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
|
const std::string& config = makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
|
||||||
|
|
||||||
// Add the export symbol definition for shared library objects.
|
// 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);
|
lg->AppendDefines(defines, exportMacro);
|
||||||
}
|
}
|
||||||
|
@ -1708,6 +1708,32 @@ cmListFileBacktrace cmGeneratorTarget::GetBacktrace() const
|
|||||||
return this->Target->GetBacktrace();
|
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
|
class cmTargetCollectLinkLanguages
|
||||||
{
|
{
|
||||||
|
@ -168,6 +168,10 @@ public:
|
|||||||
|
|
||||||
cmListFileBacktrace GetBacktrace() const;
|
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. */
|
/** Get the soname of the target. Allowed only for a shared library. */
|
||||||
std::string GetSOName(const std::string& config) const;
|
std::string GetSOName(const std::string& config) const;
|
||||||
|
|
||||||
@ -487,6 +491,8 @@ private:
|
|||||||
std::set<cmSourceFile const*> ExplicitObjectName;
|
std::set<cmSourceFile const*> ExplicitObjectName;
|
||||||
mutable std::map<std::string, std::vector<std::string> > SystemIncludesCache;
|
mutable std::map<std::string, std::vector<std::string> > SystemIncludesCache;
|
||||||
|
|
||||||
|
mutable std::string ExportMacro;
|
||||||
|
|
||||||
void ConstructSourceFileFlags() const;
|
void ConstructSourceFileFlags() const;
|
||||||
mutable bool SourceFileFlagsConstructed;
|
mutable bool SourceFileFlagsConstructed;
|
||||||
mutable std::map<cmSourceFile const*, SourceFileFlags> SourceFlagsMap;
|
mutable std::map<cmSourceFile const*, SourceFileFlags> SourceFlagsMap;
|
||||||
|
@ -297,7 +297,7 @@ std::string cmGhsMultiTargetGenerator::GetDefines(const std::string &language,
|
|||||||
std::set<std::string> defines;
|
std::set<std::string> defines;
|
||||||
const char *lang = language.c_str();
|
const char *lang = language.c_str();
|
||||||
// Add the export symbol definition for shared library objects.
|
// 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);
|
this->LocalGenerator->AppendDefines(defines, exportMacro);
|
||||||
}
|
}
|
||||||
|
@ -1848,7 +1848,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
|||||||
this->AppendDefines(ppDefs,
|
this->AppendDefines(ppDefs,
|
||||||
"CMAKE_INTDIR=\"$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\"");
|
"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.
|
// Add the export symbol definition for shared library objects.
|
||||||
this->AppendDefines(ppDefs, exportMacro);
|
this->AppendDefines(ppDefs, exportMacro);
|
||||||
|
@ -1543,7 +1543,7 @@ void cmLocalVisualStudio6Generator
|
|||||||
|
|
||||||
// Add the export symbol definition for shared library objects.
|
// Add the export symbol definition for shared library objects.
|
||||||
std::string exportSymbol;
|
std::string exportSymbol;
|
||||||
if(const char* exportMacro = target.GetExportMacro())
|
if(const char* exportMacro = gt->GetExportMacro())
|
||||||
{
|
{
|
||||||
exportSymbol = exportMacro;
|
exportSymbol = exportMacro;
|
||||||
}
|
}
|
||||||
|
@ -777,7 +777,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
|
|||||||
targetOptions.AddDefine(configDefine);
|
targetOptions.AddDefine(configDefine);
|
||||||
|
|
||||||
// Add the export symbol definition for shared library objects.
|
// Add the export symbol definition for shared library objects.
|
||||||
if(const char* exportMacro = target.GetExportMacro())
|
if(const char* exportMacro = gt->GetExportMacro())
|
||||||
{
|
{
|
||||||
targetOptions.AddDefine(exportMacro);
|
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,
|
bool cmTarget::GetMappedConfig(std::string const& desired_config,
|
||||||
const char** loc,
|
const char** loc,
|
||||||
const char** imp,
|
const char** imp,
|
||||||
|
@ -220,10 +220,6 @@ public:
|
|||||||
const char** imp,
|
const char** imp,
|
||||||
std::string& suffix) const;
|
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
|
/** Return whether this target is an executable with symbol exports
|
||||||
enabled. */
|
enabled. */
|
||||||
bool IsExecutableWithExports() const;
|
bool IsExecutableWithExports() const;
|
||||||
@ -369,7 +365,6 @@ private:
|
|||||||
std::string Name;
|
std::string Name;
|
||||||
std::string InstallPath;
|
std::string InstallPath;
|
||||||
std::string RuntimeInstallPath;
|
std::string RuntimeInstallPath;
|
||||||
mutable std::string ExportMacro;
|
|
||||||
std::vector<std::string> LinkDirectories;
|
std::vector<std::string> LinkDirectories;
|
||||||
std::vector<cmCustomCommand> PreBuildCommands;
|
std::vector<cmCustomCommand> PreBuildCommands;
|
||||||
std::vector<cmCustomCommand> PreLinkCommands;
|
std::vector<cmCustomCommand> PreLinkCommands;
|
||||||
|
@ -1961,7 +1961,8 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
|
|||||||
configDefine += configName;
|
configDefine += configName;
|
||||||
configDefine += "\"";
|
configDefine += "\"";
|
||||||
clOptions.AddDefine(configDefine);
|
clOptions.AddDefine(configDefine);
|
||||||
if(const char* exportMacro = this->Target->GetExportMacro())
|
if(const char* exportMacro =
|
||||||
|
this->GeneratorTarget->GetExportMacro())
|
||||||
{
|
{
|
||||||
clOptions.AddDefine(exportMacro);
|
clOptions.AddDefine(exportMacro);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user