diff options
author | Brad King <brad.king@kitware.com> | 2007-03-28 03:13:25 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-03-28 03:13:25 (GMT) |
commit | af95f61d76f2a9e86aed35adae5302c8c60fdb35 (patch) | |
tree | 7ca8e89bb2b0f6d634f4858890041e9480fa67e8 /Source/cmTarget.cxx | |
parent | 341853c887bcf54a5476bec71216ef34dd5b9295 (diff) | |
download | CMake-af95f61d76f2a9e86aed35adae5302c8c60fdb35.zip CMake-af95f61d76f2a9e86aed35adae5302c8c60fdb35.tar.gz CMake-af95f61d76f2a9e86aed35adae5302c8c60fdb35.tar.bz2 |
ENH: Created method cmTarget::GetExportMacro to centralize computation of the export symbol name. This removes duplicate code from all the generators. Also enabled the export definition for executable targets with the ENABLE_EXPORTS property set.
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r-- | Source/cmTarget.cxx | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 441269c..c4dc29e 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -2157,3 +2157,30 @@ const char* cmTarget::GetOutputDir(bool implib) return out.c_str(); } + +//---------------------------------------------------------------------------- +const char* cmTarget::GetExportMacro() +{ + // Define the symbol for targets that export symbols. + if(this->GetType() == cmTarget::SHARED_LIBRARY || + this->GetType() == cmTarget::MODULE_LIBRARY || + this->GetType() == cmTarget::EXECUTABLE && + this->GetPropertyAsBool("ENABLE_EXPORTS")) + { + 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.c_str()); + } + return this->ExportMacro.c_str(); + } + else + { + return 0; + } +} |