浏览代码

Merge topic 'defer-native-tool'

f8cb9944 Find native build tool after determining the target system

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1317
Brad King 8 年之前
父节点
当前提交
e182ba735e
共有 1 个文件被更改,包括 11 次插入9 次删除
  1. 11 9
      Source/cmGlobalGenerator.cxx

+ 11 - 9
Source/cmGlobalGenerator.cxx

@@ -447,15 +447,6 @@ void cmGlobalGenerator::EnableLanguage(
       "Platform information initialized", cmStateEnums::INTERNAL);
       "Platform information initialized", cmStateEnums::INTERNAL);
   }
   }
 
 
-  // find and make sure CMAKE_MAKE_PROGRAM is defined
-  if (!this->FindMakeProgram(mf)) {
-    return;
-  }
-
-  if (!this->CheckLanguages(languages, mf)) {
-    return;
-  }
-
   // try and load the CMakeSystem.cmake if it is there
   // try and load the CMakeSystem.cmake if it is there
   std::string fpath = rootBin;
   std::string fpath = rootBin;
   bool const readCMakeSystem = !mf->GetDefinition("CMAKE_SYSTEM_LOADED");
   bool const readCMakeSystem = !mf->GetDefinition("CMAKE_SYSTEM_LOADED");
@@ -500,6 +491,11 @@ void cmGlobalGenerator::EnableLanguage(
   }
   }
 
 
   if (readCMakeSystem) {
   if (readCMakeSystem) {
+    // Find the native build tool for this generator.
+    if (!this->FindMakeProgram(mf)) {
+      return;
+    }
+
     // Tell the generator about the target system.
     // Tell the generator about the target system.
     std::string system = mf->GetSafeDefinition("CMAKE_SYSTEM_NAME");
     std::string system = mf->GetSafeDefinition("CMAKE_SYSTEM_NAME");
     if (!this->SetSystemName(system, mf)) {
     if (!this->SetSystemName(system, mf)) {
@@ -522,6 +518,12 @@ void cmGlobalGenerator::EnableLanguage(
     }
     }
   }
   }
 
 
+  // Check that the languages are supported by the generator and its
+  // native build tool found above.
+  if (!this->CheckLanguages(languages, mf)) {
+    return;
+  }
+
   // **** Load the system specific initialization if not yet loaded
   // **** Load the system specific initialization if not yet loaded
   if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED")) {
   if (!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INITIALIZE_LOADED")) {
     fpath = mf->GetModulesFile("CMakeSystemSpecificInitialize.cmake");
     fpath = mf->GetModulesFile("CMakeSystemSpecificInitialize.cmake");