Ninja: Eclipse and KDevelop fixes for ninja
Thx to Claus Klein
This commit is contained in:
parent
518c06585b
commit
2fb07fc44c
|
@ -33,6 +33,9 @@ cmExtraEclipseCDT4Generator
|
||||||
this->SupportedGlobalGenerators.push_back("NMake Makefiles");
|
this->SupportedGlobalGenerators.push_back("NMake Makefiles");
|
||||||
this->SupportedGlobalGenerators.push_back("MinGW Makefiles");
|
this->SupportedGlobalGenerators.push_back("MinGW Makefiles");
|
||||||
// this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
|
// this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
|
||||||
|
#endif
|
||||||
|
#ifdef CMAKE_USE_NINJA
|
||||||
|
this->SupportedGlobalGenerators.push_back("Ninja");
|
||||||
#endif
|
#endif
|
||||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||||
|
|
||||||
|
@ -1067,9 +1070,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
|
||||||
}
|
}
|
||||||
|
|
||||||
//insert rules for compiling, preprocessing and assembling individual files
|
//insert rules for compiling, preprocessing and assembling individual files
|
||||||
cmLocalUnixMakefileGenerator3* lumg=(cmLocalUnixMakefileGenerator3*)*it;
|
|
||||||
std::vector<std::string> objectFileTargets;
|
std::vector<std::string> objectFileTargets;
|
||||||
lumg->GetIndividualFileTargets(objectFileTargets);
|
(*it)->GetIndividualFileTargets(objectFileTargets);
|
||||||
for(std::vector<std::string>::const_iterator fit=objectFileTargets.begin();
|
for(std::vector<std::string>::const_iterator fit=objectFileTargets.begin();
|
||||||
fit != objectFileTargets.end();
|
fit != objectFileTargets.end();
|
||||||
++fit)
|
++fit)
|
||||||
|
|
|
@ -44,6 +44,9 @@ cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator()
|
||||||
:cmExternalMakefileProjectGenerator()
|
:cmExternalMakefileProjectGenerator()
|
||||||
{
|
{
|
||||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||||
|
#ifdef CMAKE_USE_NINJA
|
||||||
|
this->SupportedGlobalGenerators.push_back("Ninja");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmGlobalKdevelopGenerator::Generate()
|
void cmGlobalKdevelopGenerator::Generate()
|
||||||
|
|
|
@ -928,11 +928,22 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
||||||
cmNinjaDeps());
|
cmNinjaDeps());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string cmGlobalNinjaGenerator::ninjaCmd() const
|
||||||
|
{
|
||||||
|
cmLocalGenerator* lgen = this->LocalGenerators[0];
|
||||||
|
if (lgen) {
|
||||||
|
return lgen->ConvertToOutputFormat(
|
||||||
|
lgen->GetMakefile()->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"),
|
||||||
|
cmLocalGenerator::SHELL);
|
||||||
|
}
|
||||||
|
return "ninja";
|
||||||
|
}
|
||||||
|
|
||||||
void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
|
void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
|
||||||
{
|
{
|
||||||
WriteRule(*this->RulesFileStream,
|
WriteRule(*this->RulesFileStream,
|
||||||
"CLEAN",
|
"CLEAN",
|
||||||
"ninja -t clean",
|
(ninjaCmd() + " -t clean").c_str(),
|
||||||
"Cleaning all built files...",
|
"Cleaning all built files...",
|
||||||
"Rule for cleaning all built files.",
|
"Rule for cleaning all built files.",
|
||||||
/*depfile=*/ "",
|
/*depfile=*/ "",
|
||||||
|
@ -953,7 +964,7 @@ void cmGlobalNinjaGenerator::WriteTargetHelp(std::ostream& os)
|
||||||
{
|
{
|
||||||
WriteRule(*this->RulesFileStream,
|
WriteRule(*this->RulesFileStream,
|
||||||
"HELP",
|
"HELP",
|
||||||
"ninja -t targets",
|
(ninjaCmd() + " -t tagets").c_str(),
|
||||||
"All primary targets available:",
|
"All primary targets available:",
|
||||||
"Rule for printing all primary targets available.",
|
"Rule for printing all primary targets available.",
|
||||||
/*depfile=*/ "",
|
/*depfile=*/ "",
|
||||||
|
|
|
@ -317,6 +317,8 @@ private:
|
||||||
ASD.insert(deps.begin(), deps.end());
|
ASD.insert(deps.begin(), deps.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string cmGlobalNinjaGenerator::ninjaCmd() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// The file containing the build statement. (the relation ship of the
|
/// The file containing the build statement. (the relation ship of the
|
||||||
/// compilation DAG).
|
/// compilation DAG).
|
||||||
|
|
|
@ -204,6 +204,10 @@ public:
|
||||||
/** Compute the language used to compile the given source file. */
|
/** Compute the language used to compile the given source file. */
|
||||||
const char* GetSourceFileLanguage(const cmSourceFile& source);
|
const char* GetSourceFileLanguage(const cmSourceFile& source);
|
||||||
|
|
||||||
|
// Fill the vector with the target names for the object files,
|
||||||
|
// preprocessed files and assembly files.
|
||||||
|
virtual void GetIndividualFileTargets(std::vector<std::string>& targets) {}
|
||||||
|
|
||||||
// Create a struct to hold the varibles passed into
|
// Create a struct to hold the varibles passed into
|
||||||
// ExpandRuleVariables
|
// ExpandRuleVariables
|
||||||
struct RuleVariables
|
struct RuleVariables
|
||||||
|
|
Loading…
Reference in New Issue