Преглед изворни кода

cmGeneratorTarget: Move IsDLLPlatform from cmTarget.

Stephen Kelly пре 10 година
родитељ
комит
6d94078e62
4 измењених фајлова са 16 додато и 6 уклоњено
  1. 1 1
      Source/cmGeneratorExpressionNode.cxx
  2. 11 2
      Source/cmGeneratorTarget.cxx
  3. 4 0
      Source/cmGeneratorTarget.h
  4. 0 3
      Source/cmTarget.h

+ 1 - 1
Source/cmGeneratorExpressionNode.cxx

@@ -1579,7 +1579,7 @@ struct TargetFilesystemArtifactResultCreator<ArtifactSonameTag>
                             const GeneratorExpressionContent *content)
   {
     // The target soname file (.so.1).
-    if(target->Target->IsDLLPlatform())
+    if(target->IsDLLPlatform())
       {
       ::reportError(context, content->GetOriginalExpression(),
                     "TARGET_SONAME_FILE is not allowed "

+ 11 - 2
Source/cmGeneratorTarget.cxx

@@ -304,6 +304,10 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg)
         t->GetSourceEntries(),
         t->GetSourceBacktraces(),
         this->SourceEntries, true);
+
+  this->DLLPlatform = (this->Makefile->IsOn("WIN32") ||
+                       this->Makefile->IsOn("CYGWIN") ||
+                       this->Makefile->IsOn("MINGW"));
 }
 
 cmGeneratorTarget::~cmGeneratorTarget()
@@ -366,7 +370,7 @@ const char* cmGeneratorTarget::GetOutputTargetType(bool implib) const
   switch(this->GetType())
     {
     case cmState::SHARED_LIBRARY:
-      if(this->Target->IsDLLPlatform())
+      if(this->IsDLLPlatform())
         {
         if(implib)
           {
@@ -2058,6 +2062,11 @@ cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const
   return data;
 }
 
+bool cmGeneratorTarget::IsDLLPlatform() const
+{
+  return this->DLLPlatform;
+}
+
 //----------------------------------------------------------------------------
 void
 cmGeneratorTarget::UseObjectLibraries(std::vector<std::string>& objs,
@@ -5964,7 +5973,7 @@ bool cmGeneratorTarget::IsExecutableWithExports() const
 //----------------------------------------------------------------------------
 bool cmGeneratorTarget::HasImportLibrary() const
 {
-  return (this->Target->IsDLLPlatform() &&
+  return (this->IsDLLPlatform() &&
           (this->GetType() == cmState::SHARED_LIBRARY ||
            this->IsExecutableWithExports()));
 }

+ 4 - 0
Source/cmGeneratorTarget.h

@@ -196,6 +196,9 @@ public:
 
   std::string GetModuleDefinitionFile(const std::string& config) const;
 
+  /** Return whether or not the target is for a DLL platform.  */
+  bool IsDLLPlatform() const;
+
   /** @return whether this target have a well defined output file name. */
   bool HaveWellDefinedOutputFiles() const;
 
@@ -646,6 +649,7 @@ private:
   mutable bool DebugSourcesDone;
   mutable bool LinkImplementationLanguageIsContextDependent;
   mutable bool UtilityItemsDone;
+  bool DLLPlatform;
 
   bool ComputePDBOutputDir(const std::string& kind, const std::string& config,
                            std::string& out) const;

+ 0 - 3
Source/cmTarget.h

@@ -224,9 +224,6 @@ public:
       enabled.  */
   bool IsExecutableWithExports() const;
 
-  /** Return whether or not the target is for a DLL platform.  */
-  bool IsDLLPlatform() const { return this->DLLPlatform; }
-
   /** Return whether this target is a shared library Framework on
       Apple.  */
   bool IsFrameworkOnApple() const;