Browse Source

Reference libraries from Booc.rsp automatically.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@654 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
741ebfee07
  1. 24
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs
  2. 8
      src/Main/Base/Project/Src/Project/MSBuildEngine.cs

24
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs

@ -18,6 +18,7 @@ namespace Grunwald.BooBinding @@ -18,6 +18,7 @@ namespace Grunwald.BooBinding
public class BooProject : MSBuildProject
{
static bool initialized = false;
public static readonly string BooBinPath = Path.GetDirectoryName(typeof(BooProject).Assembly.Location);
void Init()
{
@ -26,7 +27,7 @@ namespace Grunwald.BooBinding @@ -26,7 +27,7 @@ namespace Grunwald.BooBinding
if (!initialized) {
initialized = true;
MSBuildEngine.CompileTaskNames.Add("booc");
MSBuildEngine.MsBuildProperties.Add("BooBinPath", Path.GetDirectoryName(typeof(BooProject).Assembly.Location));
MSBuildEngine.MSBuildProperties.Add("BooBinPath", BooBinPath);
}
}
@ -42,9 +43,30 @@ namespace Grunwald.BooBinding @@ -42,9 +43,30 @@ namespace Grunwald.BooBinding
{
Init();
Create(info);
string rspFile = Path.Combine(BooBinPath, "booc.rsp");
if (File.Exists(rspFile)) {
using (StreamReader r = new StreamReader(rspFile)) {
string line;
while ((line = r.ReadLine()) != null) {
line = line.Trim();
if (line.StartsWith("-r:")) {
AddReference(line.Substring(3));
}
}
}
}
imports.Add("$(BooBinPath)\\Boo.Microsoft.Build.targets");
}
void AddReference(string assembly)
{
foreach (ProjectItem item in this.Items) {
if (item.ItemType == ItemType.Reference && item.Include == assembly)
return;
}
Items.Add(new ReferenceProjectItem(this, assembly));
}
public override bool CanCompile(string fileName)
{
return new BooLanguageBinding().CanCompile(fileName);

8
src/Main/Base/Project/Src/Project/MSBuildEngine.cs

@ -35,13 +35,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -35,13 +35,13 @@ namespace ICSharpCode.SharpDevelop.Project
/// <summary>
/// Gets a list where addins can add additional properties for use in MsBuild.
/// </summary>
public static readonly SortedList<string, string> MsBuildProperties;
public static readonly SortedList<string, string> MSBuildProperties;
static MSBuildEngine()
{
CompileTaskNames = new List<string>(new string[] {"csc", "vbc", "ilasm"});
MsBuildProperties = new SortedList<string, string>();
MsBuildProperties.Add("SharpDevelopBinPath", Path.GetDirectoryName(typeof(MSBuildEngine).Assembly.Location));
MSBuildProperties = new SortedList<string, string>();
MSBuildProperties.Add("SharpDevelopBinPath", Path.GetDirectoryName(typeof(MSBuildEngine).Assembly.Location));
}
MessageViewCategory messageView;
@ -108,7 +108,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -108,7 +108,7 @@ namespace ICSharpCode.SharpDevelop.Project
LoggingService.Debug("Run MSBuild on " + buildFile);
Engine engine = new Engine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory());
foreach (KeyValuePair<string, string> entry in MsBuildProperties) {
foreach (KeyValuePair<string, string> entry in MSBuildProperties) {
engine.GlobalProperties.SetProperty(entry.Key, entry.Value);
}

Loading…
Cancel
Save