diff options
-rw-r--r-- | Help/release/dev/mingw-compiler-PATH.rst | 7 | ||||
-rw-r--r-- | Modules/CMakeDetermineCompiler.cmake | 7 | ||||
-rw-r--r-- | Source/cmGlobalMSYSMakefileGenerator.cxx | 12 | ||||
-rw-r--r-- | Source/cmGlobalMinGWMakefileGenerator.cxx | 12 |
4 files changed, 10 insertions, 28 deletions
diff --git a/Help/release/dev/mingw-compiler-PATH.rst b/Help/release/dev/mingw-compiler-PATH.rst new file mode 100644 index 0000000000..7452da0e74 --- /dev/null +++ b/Help/release/dev/mingw-compiler-PATH.rst @@ -0,0 +1,7 @@ +mingw-compiler-PATH +------------------- + +* The :generator:`MSYS Makefiles` and :generator:`MinGW Makefiles` + generators, when a compiler is not explicitly specified, now select + the first compiler (of any name) found in directories listed by the + ``PATH`` environment variable. diff --git a/Modules/CMakeDetermineCompiler.cmake b/Modules/CMakeDetermineCompiler.cmake index ec2a86515f..3156ca9044 100644 --- a/Modules/CMakeDetermineCompiler.cmake +++ b/Modules/CMakeDetermineCompiler.cmake @@ -53,10 +53,9 @@ macro(_cmake_find_compiler lang) NO_DEFAULT_PATH DOC "${lang} compiler") endif() - if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja") - # On Windows command-line builds, the Makefile generators each imply - # a preferred compiler tool. The Ninja generator does not imply a - # compiler tool, so use the compiler that occurs first in PATH. + if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja|MSYS Makefiles|MinGW Makefiles") + # On Windows command-line builds, some generators imply a preferred compiler tool. + # These generators do not, so use the compiler that occurs first in PATH. find_program(CMAKE_${lang}_COMPILER NAMES ${CMAKE_${lang}_COMPILER_LIST} NAMES_PER_DIR diff --git a/Source/cmGlobalMSYSMakefileGenerator.cxx b/Source/cmGlobalMSYSMakefileGenerator.cxx index c8520b835c..cb631102a8 100644 --- a/Source/cmGlobalMSYSMakefileGenerator.cxx +++ b/Source/cmGlobalMSYSMakefileGenerator.cxx @@ -51,24 +51,12 @@ void cmGlobalMSYSMakefileGenerator::EnableLanguage( locations.push_back(makeloc); locations.push_back("/mingw/bin"); locations.push_back("c:/mingw/bin"); - std::string tgcc = cmSystemTools::FindProgram("gcc", locations); - std::string gcc = "gcc.exe"; - if (!tgcc.empty()) { - gcc = tgcc; - } - std::string tgxx = cmSystemTools::FindProgram("g++", locations); - std::string gxx = "g++.exe"; - if (!tgxx.empty()) { - gxx = tgxx; - } std::string trc = cmSystemTools::FindProgram("windres", locations); std::string rc = "windres.exe"; if (!trc.empty()) { rc = trc; } mf->AddDefinition("MSYS", "1"); - mf->AddDefinition("CMAKE_GENERATOR_CC", gcc); - mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx); mf->AddDefinition("CMAKE_GENERATOR_RC", rc); this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); diff --git a/Source/cmGlobalMinGWMakefileGenerator.cxx b/Source/cmGlobalMinGWMakefileGenerator.cxx index 54d048dedf..781912f144 100644 --- a/Source/cmGlobalMinGWMakefileGenerator.cxx +++ b/Source/cmGlobalMinGWMakefileGenerator.cxx @@ -29,23 +29,11 @@ void cmGlobalMinGWMakefileGenerator::EnableLanguage( locations.push_back(cmSystemTools::GetProgramPath(makeProgram)); locations.push_back("/mingw/bin"); locations.push_back("c:/mingw/bin"); - std::string tgcc = cmSystemTools::FindProgram("gcc", locations); - std::string gcc = "gcc.exe"; - if (!tgcc.empty()) { - gcc = tgcc; - } - std::string tgxx = cmSystemTools::FindProgram("g++", locations); - std::string gxx = "g++.exe"; - if (!tgxx.empty()) { - gxx = tgxx; - } std::string trc = cmSystemTools::FindProgram("windres", locations); std::string rc = "windres.exe"; if (!trc.empty()) { rc = trc; } - mf->AddDefinition("CMAKE_GENERATOR_CC", gcc); - mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx); mf->AddDefinition("CMAKE_GENERATOR_RC", rc); this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional); } |