Browse Source

Fixed SD2-750: Project templates should be able to include external files

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1276 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
dd68c9529f
  1. 3
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
  2. 26
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/DefaultAssemblyInfo.boo
  3. 30
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
  4. 30
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt
  5. 13
      src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs
  6. 2
      src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
  7. 14
      src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs
  8. 4
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
  9. 6
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs

3
src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj

@ -83,6 +83,9 @@ @@ -83,6 +83,9 @@
<Compile Include="Src\ConvertProject.cs" />
<EmbeddedResource Include="Resources\BuildOptions.xfrm" />
<Compile Include="Src\BuildOptions.cs" />
<None Include="Templates\DefaultAssemblyInfo.boo">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="BooBinding.addin">

26
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/DefaultAssemblyInfo.boo

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
import System.Reflection
import System.Runtime.CompilerServices
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle('')]
[assembly: AssemblyDescription('')]
[assembly: AssemblyConfiguration('')]
[assembly: AssemblyCompany('')]
[assembly: AssemblyProduct('')]
[assembly: AssemblyCopyright('')]
[assembly: AssemblyTrademark('')]
[assembly: AssemblyCulture('')]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.0.0")]

30
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt

@ -70,35 +70,7 @@ partial class MainForm(System.Windows.Forms.Form): @@ -70,35 +70,7 @@ partial class MainForm(System.Windows.Forms.Form):
self.Name = 'MainForm'
]]></File>
<File name="AssemblyInfo.boo">
<![CDATA[import System.Reflection
import System.Runtime.CompilerServices
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle('')]
[assembly: AssemblyDescription('')]
[assembly: AssemblyConfiguration('')]
[assembly: AssemblyCompany('')]
[assembly: AssemblyProduct('')]
[assembly: AssemblyCopyright('')]
[assembly: AssemblyTrademark('')]
[assembly: AssemblyCulture('')]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.0.0")]
]]></File>
<File name="AssemblyInfo.boo" src="DefaultAssemblyInfo.boo"/>
</Files>
</Project>
</Combine>

30
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt

@ -38,35 +38,7 @@ class MyClass: @@ -38,35 +38,7 @@ class MyClass:
pass
]]></File>
<File name="AssemblyInfo.boo">
<![CDATA[import System.Reflection
import System.Runtime.CompilerServices
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle('')]
[assembly: AssemblyDescription('')]
[assembly: AssemblyConfiguration('')]
[assembly: AssemblyCompany('')]
[assembly: AssemblyProduct('')]
[assembly: AssemblyCopyright('')]
[assembly: AssemblyTrademark('')]
[assembly: AssemblyCulture('')]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.0.0")]
]]></File>
<File name="AssemblyInfo.boo" src="DefaultAssemblyInfo.boo"/>
</Files>
</Project>
</Combine>

13
src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
public FileDescriptionTemplate(XmlElement xml)
public FileDescriptionTemplate(XmlElement xml, string hintPath)
{
name = xml.GetAttribute("name");
language = xml.GetAttribute("language");
@ -39,7 +39,16 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -39,7 +39,16 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
copyToOutputDirectory = xml.GetAttribute("copyToOutputDirectory");
dependentUpon = xml.GetAttribute("dependentUpon");
subType = xml.GetAttribute("subType");
content = xml.InnerText;
if (xml.HasAttribute("src")) {
try {
content = File.ReadAllText(Path.Combine(hintPath, xml.GetAttribute("src")));
} catch (Exception e) {
content = "Error reading content from " + Path.Combine(hintPath, xml.GetAttribute("src")) + ":\n" + e.ToString();
LoggingService.Warn(content);
}
} else {
content = xml.InnerText;
}
}
/// <summary>

2
src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs

@ -311,7 +311,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -311,7 +311,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
XmlNodeList nodes = files.ChildNodes;
foreach (XmlNode filenode in nodes) {
if (filenode is XmlElement) {
this.files.Add(new FileDescriptionTemplate((XmlElement)filenode));
this.files.Add(new FileDescriptionTemplate((XmlElement)filenode, Path.GetDirectoryName(filename)));
}
}

14
src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs

@ -28,17 +28,17 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -28,17 +28,17 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
internal List<ProjectDescriptor> projectDescriptors = new List<ProjectDescriptor>();
internal List<SolutionFolderDescriptor> solutionFoldersDescriptors = new List<SolutionFolderDescriptor>();
internal void Read(XmlElement element)
internal void Read(XmlElement element, string hintPath)
{
name = element.GetAttribute("name");
foreach (XmlNode node in element.ChildNodes) {
if (node != null) {
switch (node.Name) {
case "Project":
projectDescriptors.Add(ProjectDescriptor.CreateProjectDescriptor((XmlElement)node));
projectDescriptors.Add(ProjectDescriptor.CreateProjectDescriptor((XmlElement)node, hintPath));
break;
case "SolutionFolder":
solutionFoldersDescriptors.Add(new SolutionFolderDescriptor((XmlElement)node));
solutionFoldersDescriptors.Add(new SolutionFolderDescriptor((XmlElement)node, hintPath));
break;
}
}
@ -64,9 +64,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -64,9 +64,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
return true;
}
public SolutionFolderDescriptor(XmlElement element)
public SolutionFolderDescriptor(XmlElement element, string hintPath)
{
Read(element);
Read(element, hintPath);
}
public SolutionFolderDescriptor(string name)
@ -143,7 +143,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -143,7 +143,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
return combineLocation;
}
public static CombineDescriptor CreateCombineDescriptor(XmlElement element)
public static CombineDescriptor CreateCombineDescriptor(XmlElement element, string hintPath)
{
CombineDescriptor combineDescriptor = new CombineDescriptor(element.Attributes["name"].InnerText);
@ -155,7 +155,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -155,7 +155,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
combineDescriptor.startupProject = element["Options"]["StartupProject"].InnerText;
}
combineDescriptor.mainFolder.Read(element);
combineDescriptor.mainFolder.Read(element, hintPath);
return combineDescriptor;
}
}

4
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

@ -221,7 +221,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -221,7 +221,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
public static ProjectDescriptor CreateProjectDescriptor(XmlElement element)
public static ProjectDescriptor CreateProjectDescriptor(XmlElement element, string hintPath)
{
ProjectDescriptor projectDescriptor = new ProjectDescriptor(element.Attributes["name"].InnerText, element.Attributes["directory"].InnerText);
@ -234,7 +234,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -234,7 +234,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
foreach (XmlNode node in element["Files"].ChildNodes) {
if (node != null && node.Name == "File") {
XmlElement filenode = (XmlElement)node;
projectDescriptor.files.Add(new FileDescriptionTemplate(filenode));
projectDescriptor.files.Add(new FileDescriptionTemplate(filenode, hintPath));
}
}
}

6
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs

@ -199,13 +199,13 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -199,13 +199,13 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
if (doc.DocumentElement["Solution"] != null) {
combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Solution"]);
combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Solution"], Path.GetDirectoryName(fileName));
} else if (doc.DocumentElement["Combine"] != null) {
combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Combine"]);
combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Combine"], Path.GetDirectoryName(fileName));
}
if (doc.DocumentElement["Project"] != null) {
projectDescriptor = ProjectDescriptor.CreateProjectDescriptor(doc.DocumentElement["Project"]);
projectDescriptor = ProjectDescriptor.CreateProjectDescriptor(doc.DocumentElement["Project"], Path.GetDirectoryName(fileName));
}
// Read Actions;

Loading…
Cancel
Save