Browse Source

Reference Boo.Lang.Useful by default. Automatically copy Boo.Lang.dll to the output directory.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@650 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
e402835d8b
  1. 204
      src/AddIns/BackendBindings/Boo/Boo.Microsoft.Build.Tasks/Boo.Microsoft.Build.targets
  2. 13
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs
  3. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/ConsoleProject.xpt
  4. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
  5. 1
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt

204
src/AddIns/BackendBindings/Boo/Boo.Microsoft.Build.Tasks/Boo.Microsoft.Build.targets

@ -1,6 +1,6 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask <UsingTask
TaskName="Microsoft.Build.Tasks.CreateBooManifestResourceName" TaskName="Microsoft.Build.Tasks.CreateBooManifestResourceName"
AssemblyFile="Boo.Microsoft.Build.Tasks.dll" /> AssemblyFile="Boo.Microsoft.Build.Tasks.dll" />
@ -8,18 +8,18 @@
TaskName="Boo.Microsoft.Build.Tasks.Booc" TaskName="Boo.Microsoft.Build.Tasks.Booc"
AssemblyFile="Boo.Microsoft.Build.Tasks.dll"/> AssemblyFile="Boo.Microsoft.Build.Tasks.dll"/>
<PropertyGroup> <PropertyGroup>
<MSBuildAllProjects Condition="'$(BoocToolPath)' != ''"> <MSBuildAllProjects Condition="'$(BoocToolPath)' != ''">
$(MSBuildAllProjects);$(BoocToolPath)\Boo.Microsoft.Build.targets $(MSBuildAllProjects);$(BoocToolPath)\Boo.Microsoft.Build.targets
</MSBuildAllProjects> </MSBuildAllProjects>
<MSBuildAllProjects Condition="'$(BoocToolPath)' == ''"> <MSBuildAllProjects Condition="'$(BoocToolPath)' == ''">
$(MSBuildAllProjects);$(MSBuildBinPath)\Boo.Microsoft.Build.targets $(MSBuildAllProjects);$(MSBuildBinPath)\Boo.Microsoft.Build.targets
</MSBuildAllProjects> </MSBuildAllProjects>
<DefaultLanguageSourceExtension>.boo</DefaultLanguageSourceExtension> <DefaultLanguageSourceExtension>.boo</DefaultLanguageSourceExtension>
<Language>Boo</Language> <Language>Boo</Language>
</PropertyGroup> </PropertyGroup>
<!-- <!--
The CreateManifestResourceNames target create the manifest resource names The CreateManifestResourceNames target create the manifest resource names
from the .RESX files. from the .RESX files.
@ -64,24 +64,24 @@
For other project systems, this transformation may be different. For other project systems, this transformation may be different.
--> -->
<PropertyGroup> <PropertyGroup>
<CreateManifestResourceNamesDependsOn> <CreateManifestResourceNamesDependsOn>
</CreateManifestResourceNamesDependsOn> </CreateManifestResourceNamesDependsOn>
</PropertyGroup> </PropertyGroup>
<Target
Name="CreateManifestResourceNames"
Condition="'
@(ResxWithNoCulture)
@(ResxWithCulture)
@(NonResxWithNoCulture)
@(NonResxWithCulture)'!=''"
DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"
>
<!-- Create the target resource names for non-culture resx files --> <Target
<CreateBooManifestResourceName Name="CreateManifestResourceNames"
Condition="'
@(ResxWithNoCulture)
@(ResxWithCulture)
@(NonResxWithNoCulture)
@(NonResxWithCulture)'!=''"
DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"
>
<!-- Create the target resource names for non-culture resx files -->
<CreateBooManifestResourceName
Condition="'@(ResxWithNoCulture)'!=''" Condition="'@(ResxWithNoCulture)'!=''"
ResourceFiles="@(ResxWithNoCulture)" ResourceFiles="@(ResxWithNoCulture)"
RootNamespace="$(RootNamespace)"> RootNamespace="$(RootNamespace)">
@ -90,123 +90,129 @@
TaskParameter="ManifestResourceNames" TaskParameter="ManifestResourceNames"
ItemName="ManifestResourceWithNoCultureName"/> ItemName="ManifestResourceWithNoCultureName"/>
</CreateBooManifestResourceName> </CreateBooManifestResourceName>
<!-- Create the target resource names for culture resx files. --> <!-- Create the target resource names for culture resx files. -->
<CreateBooManifestResourceName <CreateBooManifestResourceName
Condition="'@(ResxWithCulture)'!=''" Condition="'@(ResxWithCulture)'!=''"
ResourceFiles="@(ResxWithCulture)" ResourceFiles="@(ResxWithCulture)"
RootNamespace="$(RootNamespace)"> RootNamespace="$(RootNamespace)">
<Output <Output
TaskParameter="ManifestResourceNames" TaskParameter="ManifestResourceNames"
ItemName="ManifestResourceWithCultureName"/> ItemName="ManifestResourceWithCultureName"/>
</CreateBooManifestResourceName> </CreateBooManifestResourceName>
<!-- Create the target resource names for non-culture non-resx files. --> <!-- Create the target resource names for non-culture non-resx files. -->
<CreateBooManifestResourceName <CreateBooManifestResourceName
Condition="'@(NonResxWithNoCulture)'!=''" Condition="'@(NonResxWithNoCulture)'!=''"
ResourceFiles="@(NonResxWithNoCulture)" ResourceFiles="@(NonResxWithNoCulture)"
RootNamespace="$(RootNamespace)"> RootNamespace="$(RootNamespace)">
<Output <Output
TaskParameter="ManifestResourceNames" TaskParameter="ManifestResourceNames"
ItemName="ManifestNonResxWithNoCulture"/> ItemName="ManifestNonResxWithNoCulture"/>
</CreateBooManifestResourceName> </CreateBooManifestResourceName>
<!-- Create the target resource names for culture non-resx files. --> <!-- Create the target resource names for culture non-resx files. -->
<CreateBooManifestResourceName <CreateBooManifestResourceName
Condition="'@(NonResxWithCulture)'!=''" Condition="'@(NonResxWithCulture)'!=''"
ResourceFiles="@(NonResxWithCulture)" ResourceFiles="@(NonResxWithCulture)"
RootNamespace="$(RootNamespace)"> RootNamespace="$(RootNamespace)">
<Output <Output
TaskParameter="ManifestResourceNames" TaskParameter="ManifestResourceNames"
ItemName="ManifestNonResxWithCulture"/> ItemName="ManifestNonResxWithCulture"/>
</CreateBooManifestResourceName> </CreateBooManifestResourceName>
</Target> </Target>
<PropertyGroup> <PropertyGroup>
<!-- <!--
"None" is not technically a valid DebugType, so we can't pass it "None" is not technically a valid DebugType, so we can't pass it
in as such to the compiler. So here, we modify the properties so in as such to the compiler. So here, we modify the properties so
they make sense. they make sense.
--> -->
<DebugSymbols Condition="'$(DebugType)' == 'none'">false</DebugSymbols> <DebugSymbols Condition="'$(DebugType)' == 'none'">false</DebugSymbols>
<DebugType Condition="'$(DebugType)' == 'none'"></DebugType> <DebugType Condition="'$(DebugType)' == 'none'"></DebugType>
<!-- Provide a facility to override UseHostCompilerIfAvailable--> <!-- Provide a facility to override UseHostCompilerIfAvailable-->
<UseHostCompilerIfAvailable <UseHostCompilerIfAvailable
Condition="'$(UseHostCompilerIfAvailable)' == ''"> Condition="'$(UseHostCompilerIfAvailable)' == ''">
true true
</UseHostCompilerIfAvailable> </UseHostCompilerIfAvailable>
</PropertyGroup> </PropertyGroup>
<!-- <ItemGroup>
These two compiler warnings are raised when a reference is bound to <DocFileItem
a different version than specified in the assembly reference version
number. MSBuild raises the same warning in this case, so the compiler
warning would be redundant.
-->
<PropertyGroup Condition="'$(TargetFrameworkVersion)' != 'v1.0'">
<NoWarn Condition="'$(NoWarn)' != ''">$(NoWarn);</NoWarn>
<NoWarn>$(NoWarn)1701;1702</NoWarn>
</PropertyGroup>
<ItemGroup>
<DocFileItem
Include="$(DocumentationFile)" Include="$(DocumentationFile)"
Condition="'$(DocumentationFile)'!=''"> Condition="'$(DocumentationFile)'!=''">
<InProject>false</InProject> <InProject>false</InProject>
</DocFileItem> </DocFileItem>
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<CoreCompileDependsOn> <CoreCompileDependsOn>
_ComputeNonExistentFileProperty _ComputeNonExistentFileProperty
</CoreCompileDependsOn> </CoreCompileDependsOn>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(BoocToolPath)' != '' ">
<ReferencePath>$(ReferencePath);$(BoocToolPath)</ReferencePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(BoocToolPath)' == '' ">
<ReferencePath>$(ReferencePath);$(BooBinPath)</ReferencePath>
</PropertyGroup>
<Target <Target
Name="CoreCompile" Name="CoreCompile"
Inputs="$(MSBuildAllProjects); Inputs="$(MSBuildAllProjects);
@(Compile); @(Compile);
@(ManifestResourceWithNoCulture); @(ManifestResourceWithNoCulture);
$(ApplicationIcon); $(ApplicationIcon);
$(AssemblyOriginatorKeyFile); $(AssemblyOriginatorKeyFile);
@(ManifestNonResxWithNoCultureOnDisk); @(ManifestNonResxWithNoCultureOnDisk);
@(ReferencePath); @(ReferencePath);
@(CompiledLicenseFile)" @(CompiledLicenseFile)"
Outputs="@(DocFileItem); Outputs="@(DocFileItem);
@(IntermediateAssembly); @(IntermediateAssembly);
$(NonExistentFile)" $(NonExistentFile)"
DependsOnTargets="$(CoreCompileDependsOn)" DependsOnTargets="$(CoreCompileDependsOn)"
> >
<Booc <Booc
OutputAssembly="@(IntermediateAssembly)" OutputAssembly="@(IntermediateAssembly)"
References="@(ReferencePath)" References="@(ReferencePath)"
Resources= " Resources= "@(ManifestResourceWithNoCulture);
@(ManifestResourceWithNoCulture); @(ManifestNonResxWithNoCultureOnDisk);
@(ManifestNonResxWithNoCultureOnDisk); @(CompiledLicenseFile)"
@(CompiledLicenseFile)" ResponseFiles="$(CompilerResponseFile)"
ResponseFiles="$(CompilerResponseFile)" Sources="@(Compile)"
Sources="@(Compile)" TargetType="$(OutputType)"
TargetType="$(OutputType)" ToolPath="$(BoocToolPath)"
ToolPath="$(BoocToolPath)" Pipelines="@(Pipeline)"
Pipelines="@(Pipeline)" Verbosity="$(BoocVerbosity)"
Verbosity="$(BoocVerbosity)" Culture="$(AssemblyCulture)"
Culture="$(AssemblyCulture)" SourceDirectory="$(SourceDirectory)"
SourceDirectory="$(SourceDirectory)" />
/>
<Copy
</Target> Condition=" '$(BoocToolPath)' == '' "
SkipUnchangedFiles="true"
SourceFiles="$(BooBinPath)\Boo.Lang.dll"
DestinationFolder="$(OutputPath)"/>
<Copy
Condition=" '$(BoocToolPath)' != '' "
SkipUnchangedFiles="true"
SourceFiles="$(BoocToolPath)\Boo.Lang.dll"
DestinationFolder="$(OutputPath)"/>
</Target>
<Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" />
</Project> </Project>

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

@ -51,6 +51,7 @@ namespace Grunwald.BooBinding
} }
internal static IProjectContent BooCompilerPC; internal static IProjectContent BooCompilerPC;
internal static IProjectContent BooUsefulPC;
public override ParseProjectContent CreateProjectContent() public override ParseProjectContent CreateProjectContent()
{ {
@ -59,10 +60,14 @@ namespace Grunwald.BooBinding
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(systemItem)); pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(systemItem));
ReferenceProjectItem booLangItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Builtins).Assembly.Location); ReferenceProjectItem booLangItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Builtins).Assembly.Location);
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(booLangItem)); pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(booLangItem));
ReferenceProjectItem booCompilerItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Compiler.AbstractAstAttribute).Assembly.Location); if (BooCompilerPC == null) {
BooCompilerPC = ProjectContentRegistry.GetProjectContentForReference(booCompilerItem); ReferenceProjectItem booCompilerItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Compiler.AbstractAstAttribute).Assembly.Location);
ReferenceProjectItem booUsefulItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Useful.Attributes.SingletonAttribute).Assembly.Location); BooCompilerPC = ProjectContentRegistry.GetProjectContentForReference(booCompilerItem);
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(booUsefulItem)); }
if (BooUsefulPC == null) {
ReferenceProjectItem booUsefulItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Useful.Attributes.SingletonAttribute).Assembly.Location);
BooUsefulPC = ProjectContentRegistry.GetProjectContentForReference(booUsefulItem);
}
pc.DefaultImports = new DefaultUsing(pc); pc.DefaultImports = new DefaultUsing(pc);
pc.DefaultImports.Usings.Add("Boo.Lang.Builtins"); pc.DefaultImports.Usings.Add("Boo.Lang.Builtins");
return pc; return pc;

1
src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/ConsoleProject.xpt

@ -23,6 +23,7 @@
<ProjectItems> <ProjectItems>
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Boo.Lang.Useful" />
</ProjectItems> </ProjectItems>
<Files> <Files>

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

@ -25,6 +25,7 @@
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Boo.Lang.Useful" />
</ProjectItems> </ProjectItems>
<Files> <Files>

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

@ -22,6 +22,7 @@
<ProjectItems> <ProjectItems>
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Boo.Lang.Useful" />
</ProjectItems> </ProjectItems>
<Files> <Files>

Loading…
Cancel
Save