Browse Source

Moving to FAKE for build process

Eliminating MSBuild and FAKE from build process.
pull/15/merge
Mark Heath 10 years ago
parent
commit
7d7c952b39
  1. BIN
      .build/MSBuild.Community.Tasks.dll
  2. 147
      .build/MSBuild.Community.Tasks.targets
  3. 3
      .gitignore
  4. 14
      .hgignore
  5. 65
      Build.proj
  6. 2
      NAudio.Wma.nuspec
  7. 2
      NAudio.nuspec
  8. 90
      NAudio.proj
  9. BIN
      Tools/NuGet.exe
  10. 6
      build.bat
  11. 134
      build.fsx
  12. 32
      zipdemo.py

BIN
.build/MSBuild.Community.Tasks.dll

147
.build/MSBuild.Community.Tasks.targets

@ -1,147 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- $Id$ -->
<PropertyGroup>
<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
<MSBuildCommunityTasksLib>MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AspNet.InstallAspNet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AssemblyInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Attrib" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Beep" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.DeleteTree" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlExecute" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FileUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FtpUpload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FxCop" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GacUtil" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GetSolutionProjects" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ILMerge" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Mail" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Merge" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Move" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpCreateRemoteDirectory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpDirectoryExists" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Ftp.FtpUploadDirectoryContent" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Add" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Divide" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Modulo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Multiple" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Subtract" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NDoc" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NUnit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Oracle.AddTnsName" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Prompt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryWrite" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexMatch" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexReplace" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RoboCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Script" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sleep" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolController" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryCreate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryDelete" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryScriptMap" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectorySetting" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.InstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.UninstallAssembly" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Schema.TaskSchema" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sound" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssAdd" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckin" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssClean" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssDiff" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssGet" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssHistory" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssLabel" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssUndoCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.SrcTool" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.PdbStr" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceServer.SvnSourceIndex" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.ExecuteDDL" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.SqlPubWiz" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCheckout" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCopy" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCommit" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnExport" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnVersion" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnStatus" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Tfs.TfsClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.TemplateFile" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Time" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Unzip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Version" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.WebDownload" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlMassUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlQuery" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlRead" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlUpdate" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xslt" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Zip" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.JavaScript.JSCompress" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.User" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Computer" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.BuildAssembler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.ChmBuilder" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.DBCSFix" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.MRefBuilder" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.Sandcastle" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sandcastle.XslTransform" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.HtmlHelp.ChmCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.HtmlHelp.HxCompiler" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SymbolServer.SymStore" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Net.HttpRequest" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NuGet.NuGetPack" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NuGet.NuGetPush" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Git.GitClient" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Git.GitVersion" />
<ItemGroup>
<FxCopRuleAssemblies Include="UsageRules.dll"/>
<FxCopRuleAssemblies Include="SecurityRules.dll"/>
<FxCopRuleAssemblies Include="PortabilityRules.dll"/>
<FxCopRuleAssemblies Include="PerformanceRules.dll"/>
<FxCopRuleAssemblies Include="MobilityRules.dll"/>
<FxCopRuleAssemblies Include="InteroperabilityRules.dll"/>
<FxCopRuleAssemblies Include="GlobalizationRules.dll"/>
<FxCopRuleAssemblies Include="DesignRules.dll"/>
</ItemGroup>
</Project>

3
.gitignore

@ -12,4 +12,5 @@ _ReSharper*/
*.ncrunchproject
*.orig
*.lock.json
.vs/
.vs/
.fake/

14
.hgignore

@ -1,14 +0,0 @@
syntax: glob
bin/
obj/
[pP]ackages/
AppPackages/
TestResults/
TestResult.xml
BuildArtefacts/
_ReSharper.*/
*.suo
*.ncrunchsolution
*.user
*.ncrunchproject
*.orig

65
Build.proj

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\.build</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.targets"/>
<!-- Version Number -->
<PropertyGroup Condition=" '$(BUILD_NUMBER)' == '' ">
<Version>1.0.0.0</Version>
<FileVersion>1.0.0.0</FileVersion>
<InformationalVersion>1.0.0.0</InformationalVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(BUILD_NUMBER)' != '' ">
<!-- Build Server Number -->
<Version>1.0.0.0</Version>
<FileVersion>$(BUILD_NUMBER)</FileVersion>
<InformationalVersion>$(BUILD_NUMBER)</InformationalVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(BuildConfiguration)' == '' ">
<BuildConfiguration>Release</BuildConfiguration>
</PropertyGroup>
<Target Name="Clean">
<DeleteTree Directories="**\obj\**;**\bin\**" />
</Target>
<Target Name="Version">
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
</Time>
<Message Text="Version: $(Version)"/>
<Attrib Files="$(MSBuildProjectDirectory)\GlobalAssemblyInfo.cs" ReadOnly="False" />
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(MSBuildProjectDirectory)\GlobalAssemblyInfo.cs"
GenerateClass="true"
AssemblyCopyright="Copyright © $(Year). All rights reserved."
AssemblyConfiguration="$(BuildConfiguration)"
AssemblyVersion="$(Version)"
AssemblyFileVersion="$(FileVersion)"
AssemblyInformationalVersion="$(InformationalVersion)" />
</Target>
<!-- Projects to Build -->
<ItemGroup>
<ProjectFiles Include="$(MSBuildProjectDirectory)\**\*.sln">
<Properties>Configuration=$(BuildConfiguration)</Properties>
</ProjectFiles>
</ItemGroup>
<Target Name="Compile" DependsOnTargets="Clean;Version">
<MSBuild Projects="@(ProjectFiles)" />
</Target>
<Target Name="Build">
<CallTarget Targets="Compile" />
</Target>
</Project>

2
NAudio.Wma.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>NAudio.Wma</id>
<version>1.0.1</version>
<version>@build.number@</version>
<authors>Mark Heath, Yuval Naveh</authors>
<owners>Mark Heath</owners>
<licenseUrl>http://naudio.codeplex.com/license</licenseUrl>

2
NAudio.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>NAudio</id>
<version>1.7.3</version>
<version>@build.number@</version>
<authors>Mark Heath</authors>
<owners>Mark Heath</owners>
<licenseUrl>http://naudio.codeplex.com/license</licenseUrl>

90
NAudio.proj

@ -1,90 +0,0 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>.\.build</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" />
<PropertyGroup>
<NUnitToolPath>packages\NUnit.2.5.10.11092\tools</NUnitToolPath>
<BuildFolder>BuildArtefacts\</BuildFolder>
</PropertyGroup>
<!-- Default target just does a debug build -->
<Target Name="Build" DependsOnTargets="DebugBuild">
</Target>
<!-- Test target does NUnit test -->
<Target Name="Test" DependsOnTargets="DebugBuild">
<NUnit Assemblies="NAudioTests\bin\Debug\NAudioTests.dll"
ToolPath="$(NUnitToolPath)"
ExcludeCategory="IntegrationTest" />
</Target>
<Target Name="DebugBuild">
<MSBuild Projects="NAudio.sln" Targets="Build" Properties="Configuration=Debug"/>
</Target>
<Target Name="ReleaseBuild">
<MSBuild Projects="NAudio.sln" Targets="Build" Properties="Configuration=Release"/>
</Target>
<Target Name="Release" DependsOnTargets="Clean;DebugBuild;Test;ReleaseBuild">
</Target>
<Target Name="Clean">
<MSBuild Projects="NAudio.sln" Targets="Clean" Properties="Configuration=Debug"/>
<MSBuild Projects="NAudio.sln" Targets="Clean" Properties="Configuration=Release"/>
<RemoveDir Directories="$(BuildFolder)" />
<CallTarget Targets="MakeBuildFolder" />
</Target>
<Target Name="MakeBuildFolder">
<MakeDir Directories="$(BuildFolder)"/>
</Target>
<Target Name="NuGet" DependsOnTargets="MakeBuildFolder;ReleaseBuild">
<exec Command="Tools\NuGet Pack NAudio.nuspec -OutputDirectory $(BuildFolder)" />
<exec Command="Tools\NuGet Pack NAudio.Wma.nuspec -OutputDirectory $(BuildFolder)" />
</Target>
<ItemGroup>
<ZipLibraryFiles Include="NAudio\bin\Release\NAudio.dll" />
<ZipLibraryFiles Include="NAudio\bin\Release\NAudio.xml" />
<ZipLibraryFiles Include="NAudio.WindowsMediaFormat\bin\Release\NAudio.WindowsMediaFormat.dll" />
<ZipLibraryFiles Include="license.txt" />
<ZipLibraryFiles Include="readme.txt" />
</ItemGroup>
<ItemGroup>
<ZipDemoFiles Include="NAudioDemo\bin\Debug\*.*" Exclude="**\*.pdb;**\*.vshost.*" />
<ZipDemoFiles Include="AudioFileInspector\bin\Debug\*.*" Exclude="**\*.pdb;**\*.vshost.*" />
<ZipDemoFiles Include="NAudioWpfDemo\bin\Debug\**\*.*" Exclude="**\*.pdb;**\*.vshost.*" />
<!-- MixDiff and MidiFileConverter probably not in a state to include as official demos -->
<!--<ZipDemoFiles Include="MixDiff\bin\Debug\*.*" Exclude="**\*.pdb;**\*.vshost.*" />-->
<!--<ZipDemoFiles Include="MidiFileConverter\bin\Debug\*.*" Exclude="**\*.pdb;**\*.vshost.*" />-->
</ItemGroup>
<Target Name="ZipAll" DependsOnTargets="ZipLib;ZipSource;ZipDemo">
</Target>
<Target Name="ZipLib" DependsOnTargets="MakeBuildFolder">
<Zip Files="@(ZipLibraryFiles)"
Flatten="true"
ZipFileName="$(BuildFolder)NAudio-Release.zip" />
</Target>
<!-- for now, the source zip is just the NAudio code, might need to do a project reorganize to make it
easier to do the entire solution -->
<Target Name="ZipSource" DependsOnTargets="MakeBuildFolder">
<Exec Command="git archive --format zip --output $(BuildFolder)NAudio-Source.zip master" />
</Target>
<Target Name="ZipDemo" DependsOnTargets="MakeBuildFolder">
<Message Text="Creating DemoZip (using IronPython)" />
<Exec Command="ipy zipdemo.py $(BuildFolder)NAudio-Demo-Apps.zip" />
</Target>
</Project>

BIN
Tools/NuGet.exe

6
build.bat

@ -1 +1,5 @@
MSBuild NAudio.proj %*
@echo off
cls
if not exist "packages\FAKE" then "Tools\NuGet.exe" "Install" "FAKE" "-OutputDirectory" "packages" "-ExcludeVersion"
"packages\FAKE\tools\Fake.exe" build.fsx %*
pause

134
build.fsx

@ -0,0 +1,134 @@
#r "packages/FAKE/tools/FakeLib.dll"
open Fake
open System.IO
let buildDir = "" // using the defaults build output
let appReferences = !! "./NAudio.sln" // still building from the solution
let deployDir = "./BuildArtefacts/"
let testDir = "./NAudioTests/bin/Debug/"
let testDlls = !! (testDir + "*Tests.dll")
Target "DebugBuild" (fun _ ->
MSBuildDebug buildDir "Build" appReferences
|> Log "Build output: "
)
Target "ReleaseBuild" (fun _ ->
MSBuildRelease buildDir "Build" appReferences
|> Log "Build output: "
)
Target "Test" (fun _ ->
trace "Running unit tests"
testDlls
|> NUnit (fun p ->
{p with
ExcludeCategory = "IntegrationTest";
DisableShadowCopy = true;
OutputFile = testDir + "TestResults.xml"})
)
Target "Clean" (fun _ ->
trace "Cleaning up"
MSBuildDebug buildDir "Clean" appReferences
|> Log "Debug clean: "
MSBuildRelease buildDir "Clean" appReferences
|> Log "Release clean: "
CleanDirs [deployDir]
)
Target "NuGet" (fun _ ->
(*NuGetDefaults()
|> sprintf "%A"
|> trace*)
NuGet (fun p ->
{p with
(*Authors = authors
Project = projectName
Description = projectDescription
Summary = projectSummary
WorkingDir = packagingDir
AccessKey = myAccesskey*)
Version = "1.8.0-beta" // todo get the version number from elsewhere
WorkingDir = "."
OutputPath = deployDir
Publish = false })
"NAudio.nuspec"
NuGet (fun p ->
{p with
Version = "1.0.1"
WorkingDir = "."
OutputPath = deployDir
Publish = false })
"NAudio.Wma.nuspec"
)
Target "Release" DoNothing
Target "ZipAll" DoNothing
// a bit hacky, but persuading CreateZipOfIncludes to create the directory structure we want
let demoIncludes =
!! "**"
-- "**/*.pdb"
-- "*.vshost.*"
let audioFileInspectorBaseDirectory = Path.GetFullPath "./AudioFileInspector/bin/Debug"
let audioFileInspectorIncludes = { demoIncludes with BaseDirectory = audioFileInspectorBaseDirectory }
let naudioDemoBaseDirectory = Path.GetFullPath "./NAudioDemo/bin/Debug"
let naudioDemoIncludes = { demoIncludes with BaseDirectory = naudioDemoBaseDirectory }
let wpfDemoBaseDirectory = Path.GetFullPath "./NAudioWpfDemo/bin/Debug"
let wpfDemoIncludes = { demoIncludes with BaseDirectory = wpfDemoBaseDirectory }
let demoFiles = [ "AudioFileInspector", audioFileInspectorIncludes;
"NAudioDemo", naudioDemoIncludes;
"NAudioWpfDemo", wpfDemoIncludes
]
Target "ZipDemo" (fun _ ->
trace audioFileInspectorBaseDirectory
CreateZipOfIncludes (deployDir + "NAudio-Demos.zip") "" DefaultZipLevel demoFiles
)
Target "ZipSource" (fun _ ->
let errorCode = Shell.Exec( "git","archive --format zip --output " + deployDir + "NAudio-Source.zip master", ".")
()
)
// Create a zip release library
Target "ZipLib" (fun _ ->
let zipFiles = [@".\NAudio\bin\Release\NAudio.dll";
@".\NAudio\bin\Release\NAudio.xml";
@".\NAudio.WindowsMediaFormat\bin\Release\NAudio.WindowsMediaFormat.dll";
"license.txt";
"readme.txt"
]
let flatten = true
let comment = ""
let workingDir = "."
CreateZip workingDir (deployDir + "NAudio-Release.zip") comment DefaultZipLevel flatten zipFiles
)
"Clean"
==> "DebugBuild"
==> "Test"
?=> "ReleaseBuild"
==> "Release"
"ZipDemo" ==> "ZipAll"
"ZipLib" ==> "ZipAll"
"ZipSource" ==> "ZipAll"
"ReleaseBuild" ==> "ZipLib"
RunTargetOrDefault "Test"

32
zipdemo.py

@ -1,32 +0,0 @@
import zipfile
import os
import sys
outfile = "BuildArtefacts\\NAudio-Demo-Apps.zip"
if len(sys.argv) > 1:
outfile = sys.argv[1]
print "creating " + outfile
folders = ['AudioFileInspector','NAudioDemo','NAudioWpfDemo']
files = {}
def exclude(filename):
return filename.endswith('.pdb') or ('.vshost.' in filename)
for folder in folders:
fullpath = folder + "\\bin\\debug\\"
for filename in os.listdir(fullpath):
if not exclude(filename):
files[filename] = fullpath + filename
zip = zipfile.ZipFile(outfile, "w")
for filename, fullpath in files.iteritems():
if os.path.isdir(fullpath):
#print fullpath + " is a folder"
for subfile in os.listdir(fullpath):
zip.write(fullpath + "\\" + subfile, filename + "\\" + subfile, zipfile.ZIP_DEFLATED)
else:
zip.write(fullpath, filename, zipfile.ZIP_DEFLATED)
zip.close()
Loading…
Cancel
Save