-
Notifications
You must be signed in to change notification settings - Fork 0
/
rakefile
132 lines (110 loc) · 4.47 KB
/
rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
require 'albacore'
$VERSION_NUMBER = ENV["version"] || '0.9.5.0'
$CONFIG = "Debug"
$FWVERSIONS = ["net20", "net35", "net40", "net45"]
desc "Debug Build"
task :default => [:setDebugConfigLevel, :updateAssemblyInfo, :buildSolution, :runUnitTests]
desc "Create Release Build"
task :release => [:setReleaseConfigLevel, :updateAssemblyInfo, :buildSolution, :runUnitTests, :buildDocumentation, :zipBinaries, :createNuspecFile, :createNugetPackage, :cleanup]
task :setDebugConfigLevel do
$CONFIG = "Debug"
end
task :setReleaseConfigLevel do
$CONFIG = "Release"
end
task :zipBinaries do
$FWVERSIONS.each do |fwVersion|
Rake::Task[:zipFrameworkBinaries].invoke(fwVersion)
end
end
zip :zipFrameworkBinaries, [:fwVersion] do |zip, args|
zip.directories_to_zip "Build/#{$CONFIG}/tools/#{args.fwVersion}"
zip.additional_files "Build/#{$CONFIG}/content/#{args.fwVersion}/EfficientlyLazy.Crypto.chm"
zip.output_file = "EfficientlyLazy.Crypto.v#{$VERSION_NUMBER}.#{args.fwVersion}.zip"
zip.output_path = "Build"
Rake::Task[:zipFrameworkBinaries].reenable()
end
task :cleanup do
FileUtils.rm_rf "Build/#{$CONFIG}" if File.exists?("Build/#{$CONFIG}")
FileUtils.rm_rf "Build/EfficientlyLazy.Crypto.nuspec" if File.exists?("Build/EfficientlyLazy.Crypto.nuspec")
end
task :runUnitTests do
$FWVERSIONS.each do |fwVersion|
Rake::Task[:runFrameworkUnitTests].invoke(fwVersion)
end
end
xunit :runFrameworkUnitTests, [:fwVersion] do |xunit, args|
xunit.command = "tools/xunit/xunit.console.clr4.exe"
xunit.assembly = "Build/#{$CONFIG}/tests/#{args.fwVersion}/EfficientlyLazy.Crypto.Tests.dll"
Rake::Task[:runFrameworkUnitTests].reenable()
end
nuspec :createNuspecFile do |nuspec|
nuspec.id="EfficientlyLazy.Crypto"
nuspec.version = "#{$VERSION_NUMBER}"
nuspec.authors = "Jason LaFlair"
nuspec.owners = "Jason LaFlair"
nuspec.description = ".Net library to simplify cryptography in so developers will actually use it"
nuspec.title = "EfficientlyLazy.Crypto"
nuspec.language = "en-US"
nuspec.licenseUrl = "http://opensource.org/licenses/Apache-2.0"
nuspec.projectUrl = "https://github.com/jasonlaflair/EfficientlyLazy.Crypto"
nuspec.working_directory = "Build"
nuspec.output_file = "EfficientlyLazy.Crypto.nuspec"
nuspec.tags = "security cryptography encryption AES configuration library random csharp hash data"
$FWVERSIONS.each do |fwVersion|
nuspec.file "#{$CONFIG}\\lib\\#{fwVersion}\\EfficientlyLazy.Crypto.dll", "lib\\#{fwVersion}\\EfficientlyLazy.Crypto.dll"
nuspec.file "#{$CONFIG}\\lib\\#{fwVersion}\\EfficientlyLazy.Crypto.xml", "lib\\#{fwVersion}\\EfficientlyLazy.Crypto.xml"
nuspec.file "#{$CONFIG}\\content\\#{fwVersion}\\EfficientlyLazy.Crypto.chm", "content\\#{fwVersion}\\EfficientlyLazy.Crypto.chm"
end
end
nugetpack :createNugetPackage do |nuget|
nuget.command = "tools/Nuget/nuget.exe"
nuget.nuspec = "Build/EfficientlyLazy.Crypto.nuspec"
nuget.base_folder = "Build/"
nuget.output = "Build/"
end
assemblyinfo :updateAssemblyInfo do |asm|
asm.version = "#{$VERSION_NUMBER}"
asm.file_version = "#{$VERSION_NUMBER}"
asm.custom_attributes :AssemblyInformationalVersionAttribute => "#{$VERSION_NUMBER}", :AssemblyInformationalVersionAttribute => "#{$VERSION_NUMBER} (#{$CONFIG})"
asm.company_name = "LaFlair.NET"
asm.description = "Simplifying .NET Cryptography"
asm.product_name = "EfficientlyLazy.Crypto for .NET"
asm.copyright = "Copyright (c) LaFlair.NET 2009-2012"
asm.output_file = "src/SharedAssemblyInfo.cs"
asm.com_visible = false
end
task :buildDocumentation do
$FWVERSIONS.each do |fwVersion|
Rake::Task[:buildFrameworkDocumentation].invoke(fwVersion)
end
end
msbuild :buildFrameworkDocumentation, [:fwVersion] do |msb, args|
lines = ""
versionFile = "doc/EfficientlyLazy.Crypto.#{args.fwVersion}.shfbproj"
File.open(versionFile, 'r') do |f|
lines = f.readlines
end
File.open(versionFile, 'w') do |content|
lines.each do |line|
if line.include?("<SHFBSchemaVersion>")
content.puts " <SHFBSchemaVersion>#{$VERSION_NUMBER}</SHFBSchemaVersion>"
else
content.puts line
end
end
end
msb.properties = { :configuration => $CONFIG }
msb.targets = [ :clean, :build ]
msb.solution = versionFile
msb.verbosity = "minimal"
msb.other_switches :toolsVersion => 4.0
Rake::Task[:buildFrameworkDocumentation].reenable()
end
msbuild :buildSolution do |msb|
msb.properties = { :configuration => $CONFIG }
msb.targets = [ :clean, :build ]
msb.solution = "src/EfficientlyLazy.Crypto.sln"
msb.verbosity = "minimal"
msb.other_switches :toolsVersion => 4.0
end