public override string GetCompilerArguments(IStandardProject superProject, IStandardProject project, ISourceFile file)
{
var result = string.Empty;
result += "-Wall -c -g ";
// toolchain includes
// Referenced includes
var referencedIncludes = project.GetReferencedIncludes();
foreach (var include in referencedIncludes)
{
result += string.Format("-I\"{0}\" ", Path.Combine(project.CurrentDirectory, include));
}
// global includes
var globalIncludes = superProject.GetGlobalIncludes();
foreach (var include in globalIncludes)
{
result += string.Format("-I\"{0}\" ", include);
}
// public includes
foreach (var include in project.PublicIncludes)
{
result += string.Format("-I\"{0}\" ", Path.Combine(project.CurrentDirectory, include));
}
// includes
foreach (var include in project.Includes)
{
result += string.Format("-I\"{0}\" ", Path.Combine(project.CurrentDirectory, include.Value));
}
foreach (var define in superProject.Defines)
{
result += string.Format("-D{0} ", define);
}
foreach (var arg in superProject.ToolChainArguments)
{
result += string.Format(" {0}", arg);
}
foreach (var arg in superProject.CompilerArguments)
{
result += string.Format(" {0}", arg);
}
switch (file.Extension)
{
case ".c":
{
foreach (var arg in superProject.CCompilerArguments)
{
result += string.Format(" {0}", arg);
}
}
break;
case ".cpp":
{
foreach (var arg in superProject.CppCompilerArguments)
{
result += string.Format(" {0}", arg);
}
}
break;
}
return result;
}