You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
7.2 KiB
159 lines
7.2 KiB
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
<UsingTask TaskName="FSharp.Build.Tasks.Fsc" AssemblyFile="FSharp.Build.Tasks.dll" /> |
|
<UsingTask TaskName="FSharp.Build.Tasks.IsFscInstalled" AssemblyFile="FSharp.Build.Tasks.dll" /> |
|
<UsingTask TaskName="CreateCSharpManifestResourceName" AssemblyName="Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
|
<UsingTask TaskName="Copy" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> |
|
|
|
<PropertyGroup> |
|
<MSBuildAllProjects>$(MSBuildAllProjects);$(FSharpBuildTasksPath)\SharpDevelop.Build.Fsc.targets</MSBuildAllProjects> |
|
<DefaultLanguageSourceExtension>.fs</DefaultLanguageSourceExtension> |
|
<Language>F#</Language> |
|
<CheckIfFscNotInstalled Condition=" '$(CheckIfFscNotInstalled)' == '' ">False</CheckIfFscNotInstalled> |
|
<FscInstalled>True</FscInstalled> |
|
</PropertyGroup> |
|
|
|
<PropertyGroup> |
|
<CreateManifestResourceNamesDependsOn> |
|
</CreateManifestResourceNamesDependsOn> |
|
</PropertyGroup> |
|
<Target Name="CreateManifestResourceNames" Condition="'@(ResxWithNoCulture)@(ResxWithCulture)@(NonResxWithNoCulture)@(NonResxWithCulture)'!=''" DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"> |
|
<!-- Create the target resource names for non-culture resx files. --> |
|
<CreateCSharpManifestResourceName Condition="'@(ResxWithNoCulture)'!=''" ResourceFiles="@(ResxWithNoCulture)" RootNamespace="$(RootNamespace)"> |
|
<Output TaskParameter="ManifestResourceNames" ItemName="ManifestResourceWithNoCultureName" /> |
|
</CreateCSharpManifestResourceName> |
|
|
|
<!-- Create the target resource names for culture resx files. --> |
|
<CreateCSharpManifestResourceName Condition="'@(ResxWithCulture)'!=''" ResourceFiles="@(ResxWithCulture)" RootNamespace="$(RootNamespace)"> |
|
<Output TaskParameter="ManifestResourceNames" ItemName="ManifestResourceWithCultureName" /> |
|
</CreateCSharpManifestResourceName> |
|
|
|
<!-- Create the target resource names for non-culture non-resx files. --> |
|
<CreateCSharpManifestResourceName Condition="'@(NonResxWithNoCulture)'!=''" ResourceFiles="@(NonResxWithNoCulture)" RootNamespace="$(RootNamespace)"> |
|
<Output TaskParameter="ManifestResourceNames" ItemName="ManifestNonResxWithNoCulture" /> |
|
</CreateCSharpManifestResourceName> |
|
|
|
<!-- Create the target resource names for culture non-resx files. --> |
|
<CreateCSharpManifestResourceName Condition="'@(NonResxWithCulture)'!=''" ResourceFiles="@(NonResxWithCulture)" RootNamespace="$(RootNamespace)"> |
|
<Output TaskParameter="ManifestResourceNames" ItemName="ManifestNonResxWithCulture" /> |
|
</CreateCSharpManifestResourceName> |
|
</Target> |
|
|
|
<Target Name="CoreCompile" Inputs="$(MSBuildAllProjects); |
|
@(Compile); |
|
@(ReferencePath); |
|
@(ManifestResourceWithNoCulture); |
|
$(ApplicationIcon); |
|
$(AssemblyOriginatorKeyFile); |
|
@(ManifestNonResxWithNoCultureOnDisk); |
|
@(ReferencePath); |
|
@(CompiledLicenseFile)" |
|
Outputs="@(DocFileItem); |
|
@(IntermediateAssembly); |
|
$(NonExistentFile)" |
|
DependsOnTargets="$(CoreCompileDependsOn)"> |
|
<Fsc |
|
Condition=" '$(FscInstalled)' == 'True' " |
|
DebugType="$(DebugType)" |
|
EmitDebugInformation="$(DebugSymbols)" |
|
FileAlignment="$(FileAlignment)" |
|
KeyContainer="$(KeyContainerName)" |
|
KeyFile="$(KeyOriginatorFile)" |
|
Optimize="$(Optimize)" |
|
OutputAssembly="@(IntermediateAssembly)" |
|
Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)" |
|
Sources="@(Compile)" |
|
References="@(ReferencePath)" |
|
TargetType="$(OutputType)" |
|
Standalone="$(Standalone)" |
|
NoMLLib="$(NoMLLib)" /> |
|
</Target> |
|
|
|
<Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" /> |
|
|
|
<!-- |
|
Check if F# is installed. |
|
--> |
|
<Target Name="BeforeBuild"> |
|
<CallTarget Targets="IfFscInstalled" /> |
|
</Target> |
|
<Target Name="BeforeClean"> |
|
<CallTarget Targets="IfFscInstalled" /> |
|
</Target> |
|
<Target Name="BeforeRebuild"> |
|
<CallTarget Targets="IfFscInstalled" /> |
|
</Target> |
|
|
|
<Target Name="IfFscInstalled"> |
|
<Message Text="Checking if F# is installed." Condition=" '$(CheckIfFscNotInstalled)' == 'True' "/> |
|
|
|
<!-- Check if F# is installed --> |
|
<IsFscInstalled Condition=" '$(CheckIfFscNotInstalled)' == 'True' "> |
|
<Output TaskParameter="IsInstalled" PropertyName="FscInstalled"/> |
|
</IsFscInstalled> |
|
|
|
<Warning Code="FSC1001" Text="Unable to find the F# compiler (fsi.exe). The F# addin will not be compiled." Condition=" '$(FscInstalled)' == 'False' and '$(CheckIfFscNotInstalled)' == 'True' " /> |
|
</Target> |
|
|
|
<!-- Override CopyFilesToOutputDirectory so if the F# compiler is not installed there are |
|
no errors when trying to copy non-existent files. --> |
|
<Target |
|
Name="CopyFilesToOutputDirectory" |
|
DependsOnTargets=" |
|
ComputeIntermediateSatelliteAssemblies; |
|
_CopyFilesMarkedCopyLocal; |
|
_CopySourceItemsToOutputDirectory; |
|
_CopyAppConfigFile; |
|
_CopyManifestFiles; |
|
_CheckForCompileOutputs; |
|
_SGenCheckForOutputs"> |
|
|
|
<!-- Copy the build product (.dll or .exe). --> |
|
<Copy Condition=" '$(FscInstalled)' == 'True' " |
|
SourceFiles="@(IntermediateAssembly)" |
|
DestinationFolder="$(OutDir)" |
|
SkipUnchangedFiles="true" |
|
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"> |
|
|
|
<Output TaskParameter="DestinationFiles" ItemName="MainAssembly"/> |
|
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/> |
|
|
|
</Copy> |
|
|
|
<Message Importance="High" Text="$(MSBuildProjectName) -> @(MainAssembly->'%(FullPath)')" /> |
|
|
|
<!-- Copy the debug information file (.pdb), if any --> |
|
<Copy |
|
SourceFiles="@(_DebugSymbolsIntermediatePath)" |
|
DestinationFiles="@(_DebugSymbolsOutputPath)" |
|
SkipUnchangedFiles="true" |
|
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" |
|
Condition="'$(FscInstalled)' == 'True' and '$(_DebugSymbolsProduced)'=='true' and '$(SkipCopyingSymbolsToOutputDirectory)' != 'true'"> |
|
|
|
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/> |
|
|
|
</Copy> |
|
|
|
<!-- Copy the resulting XML documentation file, if any. --> |
|
<Copy |
|
SourceFiles="@(DocFileItem)" |
|
DestinationFiles="@(FinalDocFile)" |
|
SkipUnchangedFiles="true" |
|
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" |
|
Condition="'$(FscInstalled)' == 'True' and '$(_DocumentationFileProduced)'=='true'"> |
|
|
|
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/> |
|
|
|
</Copy> |
|
|
|
<!-- Copy satellite assemblies. --> |
|
<Copy Condition=" '$(FscInstalled)' == 'True' " |
|
SourceFiles="@(IntermediateSatelliteAssembliesWithTargetPath)" |
|
DestinationFiles="@(IntermediateSatelliteAssembliesWithTargetPath->'$(OutDir)%(Culture)\$(TargetName).resources.dll')" |
|
SkipUnchangedFiles="true" |
|
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"> |
|
|
|
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/> |
|
|
|
</Copy> |
|
</Target> |
|
</Project> |