summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmExtraEclipseCDT4Generator.cxx23
-rw-r--r--Source/cmExtraEclipseCDT4Generator.h3
2 files changed, 21 insertions, 5 deletions
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 713aeb9..aba15d6 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -699,7 +699,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
"</storageModule>\n"
;
- this->AppendStorageScanners(fout);
+ this->AppendStorageScanners(fout, *mf);
fout << "</cconfiguration>\n"
"</storageModule>\n"
@@ -810,8 +810,23 @@ std::string cmExtraEclipseCDT4Generator::EscapeForXML(const std::string& value)
// Helper functions
//----------------------------------------------------------------------------
void cmExtraEclipseCDT4Generator
-::AppendStorageScanners(cmGeneratedFileStream& fout)
+::AppendStorageScanners(cmGeneratedFileStream& fout,
+ const cmMakefile& makefile)
{
+ // we need the "make" and the C (or C++) compiler which are used, Alex
+ std::string make = makefile.GetRequiredDefinition("CMAKE_MAKE_PROGRAM");
+ std::string compiler = makefile.GetSafeDefinition("CMAKE_C_COMPILER");
+ if (compiler.empty())
+ {
+ compiler = makefile.GetSafeDefinition("CMAKE_CXX_COMPILER");
+ }
+ if (compiler.empty()) //Hmm, what to do now ?
+ {
+ compiler = "gcc";
+ }
+
+
+ // the following right now hardcodes gcc behaviour :-/
fout <<
"<storageModule moduleId=\"scannerConfiguration\">\n"
"<autodiscovery enabled=\"true\" problemReportingEnabled=\"true\""
@@ -822,12 +837,12 @@ void cmExtraEclipseCDT4Generator
"org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile",
true, "", true, "specsFile",
"-E -P -v -dD ${plugin_state_location}/${specs_file}",
- "gcc", true, true);
+ compiler, true, true);
cmExtraEclipseCDT4Generator::AppendScannerProfile(fout,
"org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile",
true, "", true, "makefileGenerator",
"-f ${project_name}_scd.mk",
- "make", true, true);
+ make, true, true);
fout << "</storageModule>\n";
}
diff --git a/Source/cmExtraEclipseCDT4Generator.h b/Source/cmExtraEclipseCDT4Generator.h
index 349156a..76079c8 100644
--- a/Source/cmExtraEclipseCDT4Generator.h
+++ b/Source/cmExtraEclipseCDT4Generator.h
@@ -87,7 +87,8 @@ private:
static std::string EscapeForXML(const std::string& value);
// Helper functions
- static void AppendStorageScanners(cmGeneratedFileStream& fout);
+ static void AppendStorageScanners(cmGeneratedFileStream& fout,
+ const cmMakefile& makefile);
static void AppendTarget (cmGeneratedFileStream& fout,
const std::string& target,
const std::string& make);