Просмотр исходного кода

determine CMAKE_MAKE_PROGRAM in EnableLanguage

Bill Hoffman 23 лет назад
Родитель
Сommit
e2d1104881

+ 3 - 0
Modules/CMakeBorlandFindMake.cmake

@@ -0,0 +1,3 @@
+SET (CMAKE_MAKE_PROGRAM "make" CACHE STRING
+     "Program used to build from makefiles.")
+MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)

+ 3 - 0
Modules/CMakeNMakeFindMake.cmake

@@ -0,0 +1,3 @@
+SET (CMAKE_MAKE_PROGRAM "nmake" CACHE STRING
+     "Program used to build from makefiles.")
+MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)

+ 0 - 2
Modules/CMakeSystemSpecificInformation.cmake

@@ -143,8 +143,6 @@ IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
    INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE})
 ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE)
 
-FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES nmake gmake make )
-
 SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make.  This is useful for debugging only.")
 # default build type is none
 SET (CMAKE_BUILD_TYPE "" CACHE STRING 

+ 2 - 0
Modules/CMakeUnixFindMake.cmake

@@ -0,0 +1,2 @@
+FIND_PROGRAM(CMAKE_MAKE_PROGRAM gmake make )
+MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)

+ 0 - 1
Modules/Platform/CYGWIN.cmake

@@ -6,4 +6,3 @@ SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
 SET(CMAKE_SHARED_LIBRARY_C_FLAGS "")
 SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "")
 INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake)
-FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES gmake make )

+ 1 - 2
Modules/Platform/Windows-bcc32.cmake

@@ -96,6 +96,5 @@ SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO ${CMAKE_EXE_LINKER_FLAGS_RELWITHDE
 SET (CMAKE_STANDARD_LIBRARIES "import32.lib" CACHE STRING 
      "Libraries linked by defalut with all applications.")
 
-FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES make )
-MARK_AS_ADVANCED(CMAKE_STANDARD_LIBRARIES CMAKE_MAKE_PROGRAM)
+MARK_AS_ADVANCED(CMAKE_STANDARD_LIBRARIES)
 

+ 0 - 3
Modules/Platform/Windows-cl.cmake

@@ -65,9 +65,6 @@ SET (CMAKE_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib co
      "Libraries linked by defalut with all applications.")
 MARK_AS_ADVANCED(CMAKE_STANDARD_LIBRARIES)
 
-FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES nmake )
-
-
 # executable linker flags
 SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
 SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /machine:I386 /INCREMENTAL:YES")

+ 5 - 0
Source/cmGlobalBorlandMakefileGenerator.cxx

@@ -40,6 +40,11 @@ void cmGlobalBorlandMakefileGenerator::EnableLanguage(const char* l,
   mf->AddDefinition("BORLAND", "1");
   mf->AddDefinition("CMAKE_GENERATOR_CC", "bcc32");
   mf->AddDefinition("CMAKE_GENERATOR_CXX", "bcc32");
+  std::string setMakeProgram = mf->GetDefinition("CMAKE_ROOT");
+  setMakeProgram += "/Modules/CMakeBorlandFindMake.cmake";
+  mf->ReadListFile(0, setMakeProgram.c_str());
+  mf->AddDefinition("CMAKE_MAKE_PROGRAM", "make");
+  
   
   this->cmGlobalUnixMakefileGenerator::EnableLanguage(l, mf);
 }

+ 4 - 1
Source/cmGlobalNMakeMakefileGenerator.cxx

@@ -24,7 +24,10 @@ void cmGlobalNMakeMakefileGenerator::EnableLanguage(const char* l,
   // pick a default 
   mf->AddDefinition("CMAKE_GENERATOR_CC", "cl");
   mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl");
-  
+  std::string setMakeProgram = mf->GetDefinition("CMAKE_ROOT");
+  setMakeProgram += "/Modules/CMakeNMakeFindMake.cmake";
+  mf->ReadListFile(0, setMakeProgram.c_str());
+
   this->cmGlobalUnixMakefileGenerator::EnableLanguage(l, mf);
 }
 

+ 7 - 2
Source/cmGlobalUnixMakefileGenerator.cxx

@@ -23,14 +23,19 @@
 void cmGlobalUnixMakefileGenerator::EnableLanguage(const char* lang, 
                                                    cmMakefile *mf)
 {
+  if(!mf->GetDefinition("CMAKE_MAKE_PROGRAM"))
+    {
+    std::string setMakeProgram = mf->GetDefinition("CMAKE_ROOT");
+    setMakeProgram += "/Modules/CMakeUnixFindMake.cmake";
+    mf->ReadListFile(0, setMakeProgram.c_str());
+    }
+  
   bool isLocal = m_CMakeInstance->GetLocal();
   // if no lang specified use CXX
   if(!lang )
     {
     lang = "CXX";
     }
-  //std::string root 
-  //  = cmSystemTools::ConvertToOutputPath(mf->GetDefinition("CMAKE_ROOT"));
   std::string root = mf->GetDefinition("CMAKE_ROOT");
   std::string rootBin = mf->GetHomeOutputDirectory();
   if(m_ConfiguredFilesPath.size())