Ninja: Use forward slashes for any GCC on Windows (#15439)
Any GCC compiler on a Windows host needs forward slashes, not just those built for MinGW.
This commit is contained in:
parent
378c2a0e86
commit
b3de0dfe93
|
@ -96,7 +96,7 @@ std::string cmGlobalNinjaGenerator::EncodePath(const std::string &path)
|
||||||
{
|
{
|
||||||
std::string result = path;
|
std::string result = path;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (this->IsMinGW())
|
if (this->IsGCCOnWindows())
|
||||||
cmSystemTools::ReplaceString(result, "\\", "/");
|
cmSystemTools::ReplaceString(result, "\\", "/");
|
||||||
else
|
else
|
||||||
cmSystemTools::ReplaceString(result, "/", "\\");
|
cmSystemTools::ReplaceString(result, "/", "\\");
|
||||||
|
@ -484,7 +484,7 @@ cmGlobalNinjaGenerator::cmGlobalNinjaGenerator()
|
||||||
, CompileCommandsStream(0)
|
, CompileCommandsStream(0)
|
||||||
, Rules()
|
, Rules()
|
||||||
, AllDependencies()
|
, AllDependencies()
|
||||||
, UsingMinGW(false)
|
, UsingGCCOnWindows(false)
|
||||||
, ComputingUnknownDependencies(false)
|
, ComputingUnknownDependencies(false)
|
||||||
, PolicyCMP0058(cmPolicies::WARN)
|
, PolicyCMP0058(cmPolicies::WARN)
|
||||||
{
|
{
|
||||||
|
@ -565,9 +565,13 @@ void cmGlobalNinjaGenerator
|
||||||
this->ResolveLanguageCompiler(*l, mf, optional);
|
this->ResolveLanguageCompiler(*l, mf, optional);
|
||||||
}
|
}
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (mf->IsOn("CMAKE_COMPILER_IS_MINGW"))
|
if (mf->IsOn("CMAKE_COMPILER_IS_MINGW") ||
|
||||||
|
strcmp(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID"), "GNU") == 0 ||
|
||||||
|
strcmp(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID"), "GNU") == 0 ||
|
||||||
|
strcmp(mf->GetSafeDefinition("CMAKE_C_SIMULATE_ID"), "GNU") == 0 ||
|
||||||
|
strcmp(mf->GetSafeDefinition("CMAKE_CXX_SIMULATE_ID"), "GNU") == 0)
|
||||||
{
|
{
|
||||||
this->UsingMinGW = true;
|
this->UsingGCCOnWindows = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -155,7 +155,7 @@ public:
|
||||||
const cmNinjaDeps& targets,
|
const cmNinjaDeps& targets,
|
||||||
const std::string& comment = "");
|
const std::string& comment = "");
|
||||||
|
|
||||||
bool IsMinGW() const { return this->UsingMinGW; }
|
bool IsGCCOnWindows() const { return UsingGCCOnWindows; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
|
@ -360,7 +360,7 @@ private:
|
||||||
/// The set of dependencies to add to the "all" target.
|
/// The set of dependencies to add to the "all" target.
|
||||||
cmNinjaDeps AllDependencies;
|
cmNinjaDeps AllDependencies;
|
||||||
|
|
||||||
bool UsingMinGW;
|
bool UsingGCCOnWindows;
|
||||||
|
|
||||||
/// The set of custom commands we have seen.
|
/// The set of custom commands we have seen.
|
||||||
std::set<cmCustomCommand const*> CustomCommands;
|
std::set<cmCustomCommand const*> CustomCommands;
|
||||||
|
|
|
@ -175,7 +175,7 @@ cmNinjaTargetGenerator::ComputeFlagsForObject(cmSourceFile const* source,
|
||||||
// needed by cmcldeps
|
// needed by cmcldeps
|
||||||
false,
|
false,
|
||||||
this->GetConfigName());
|
this->GetConfigName());
|
||||||
if (this->GetGlobalGenerator()->IsMinGW())
|
if (this->GetGlobalGenerator()->IsGCCOnWindows())
|
||||||
cmSystemTools::ReplaceString(includeFlags, "\\", "/");
|
cmSystemTools::ReplaceString(includeFlags, "\\", "/");
|
||||||
|
|
||||||
this->LocalGenerator->AppendFlags(languageFlags, includeFlags);
|
this->LocalGenerator->AppendFlags(languageFlags, includeFlags);
|
||||||
|
|
Loading…
Reference in New Issue