소스 검색

BUG: prevent segfault when no sources provided for lib

Ken Martin 20 년 전
부모
커밋
4ff9d1eae3
1개의 변경된 파일12개의 추가작업 그리고 3개의 파일을 삭제
  1. 12 3
      Source/cmLocalUnixMakefileGenerator3.cxx

+ 12 - 3
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -1448,7 +1448,10 @@ cmLocalUnixMakefileGenerator3
   const char* linkLanguage =
   const char* linkLanguage =
     target.GetLinkerLanguage(this->GetGlobalGenerator());
     target.GetLinkerLanguage(this->GetGlobalGenerator());
   std::string linkRuleVar = "CMAKE_";
   std::string linkRuleVar = "CMAKE_";
-  linkRuleVar += linkLanguage;
+  if (linkLanguage)
+    {
+    linkRuleVar += linkLanguage;
+    }
   linkRuleVar += "_CREATE_STATIC_LIBRARY";
   linkRuleVar += "_CREATE_STATIC_LIBRARY";
 
 
   std::string extraFlags;
   std::string extraFlags;
@@ -1471,7 +1474,10 @@ cmLocalUnixMakefileGenerator3
   const char* linkLanguage =
   const char* linkLanguage =
     target.GetLinkerLanguage(this->GetGlobalGenerator());
     target.GetLinkerLanguage(this->GetGlobalGenerator());
   std::string linkRuleVar = "CMAKE_";
   std::string linkRuleVar = "CMAKE_";
-  linkRuleVar += linkLanguage;
+  if (linkLanguage)
+    {
+    linkRuleVar += linkLanguage;
+    }
   linkRuleVar += "_CREATE_SHARED_LIBRARY";
   linkRuleVar += "_CREATE_SHARED_LIBRARY";
 
 
   std::string extraFlags;
   std::string extraFlags;
@@ -1510,7 +1516,10 @@ cmLocalUnixMakefileGenerator3
   const char* linkLanguage =
   const char* linkLanguage =
     target.GetLinkerLanguage(this->GetGlobalGenerator());
     target.GetLinkerLanguage(this->GetGlobalGenerator());
   std::string linkRuleVar = "CMAKE_";
   std::string linkRuleVar = "CMAKE_";
-  linkRuleVar += linkLanguage;
+  if (linkLanguage)
+    {
+    linkRuleVar += linkLanguage;
+    }
   linkRuleVar += "_CREATE_SHARED_MODULE";
   linkRuleVar += "_CREATE_SHARED_MODULE";
 
 
   std::string extraFlags;
   std::string extraFlags;