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("MinGW Makefiles");
|
||||
// this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
|
||||
#endif
|
||||
#ifdef CMAKE_USE_NINJA
|
||||
this->SupportedGlobalGenerators.push_back("Ninja");
|
||||
#endif
|
||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||
|
||||
|
@ -1067,9 +1070,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
|
|||
}
|
||||
|
||||
//insert rules for compiling, preprocessing and assembling individual files
|
||||
cmLocalUnixMakefileGenerator3* lumg=(cmLocalUnixMakefileGenerator3*)*it;
|
||||
std::vector<std::string> objectFileTargets;
|
||||
lumg->GetIndividualFileTargets(objectFileTargets);
|
||||
(*it)->GetIndividualFileTargets(objectFileTargets);
|
||||
for(std::vector<std::string>::const_iterator fit=objectFileTargets.begin();
|
||||
fit != objectFileTargets.end();
|
||||
++fit)
|
||||
|
|
|
@ -44,6 +44,9 @@ cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator()
|
|||
:cmExternalMakefileProjectGenerator()
|
||||
{
|
||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||
#ifdef CMAKE_USE_NINJA
|
||||
this->SupportedGlobalGenerators.push_back("Ninja");
|
||||
#endif
|
||||
}
|
||||
|
||||
void cmGlobalKdevelopGenerator::Generate()
|
||||
|
|
|
@ -928,11 +928,22 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
|||
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)
|
||||
{
|
||||
WriteRule(*this->RulesFileStream,
|
||||
"CLEAN",
|
||||
"ninja -t clean",
|
||||
(ninjaCmd() + " -t clean").c_str(),
|
||||
"Cleaning all built files...",
|
||||
"Rule for cleaning all built files.",
|
||||
/*depfile=*/ "",
|
||||
|
@ -953,7 +964,7 @@ void cmGlobalNinjaGenerator::WriteTargetHelp(std::ostream& os)
|
|||
{
|
||||
WriteRule(*this->RulesFileStream,
|
||||
"HELP",
|
||||
"ninja -t targets",
|
||||
(ninjaCmd() + " -t tagets").c_str(),
|
||||
"All primary targets available:",
|
||||
"Rule for printing all primary targets available.",
|
||||
/*depfile=*/ "",
|
||||
|
|
|
@ -317,6 +317,8 @@ private:
|
|||
ASD.insert(deps.begin(), deps.end());
|
||||
}
|
||||
|
||||
std::string cmGlobalNinjaGenerator::ninjaCmd() const;
|
||||
|
||||
private:
|
||||
/// The file containing the build statement. (the relation ship of the
|
||||
/// compilation DAG).
|
||||
|
|
|
@ -204,6 +204,10 @@ public:
|
|||
/** Compute the language used to compile the given source file. */
|
||||
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
|
||||
// ExpandRuleVariables
|
||||
struct RuleVariables
|
||||
|
|
Loading…
Reference in New Issue