rake-dotnet 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +1 -1
- data/{Rakefile → Rakefile.rb} +2 -1
- data/lib/rake_dotnet.rb +38 -18
- metadata +3 -3
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
=== 0.1.3 / 2009-06-23
|
2
|
+
|
3
|
+
* NEW: MSBuild - support for building VB.NET and WiX projects
|
4
|
+
* NEW: AssemblyInfo - support for generating AssemblyInfo.vb into {project}/My Project/ (which I hope is the by-convention place)
|
5
|
+
|
1
6
|
=== 0.1.2 / 2009
|
2
7
|
|
3
8
|
* NEW: NCover: Generate the full-coverage report
|
data/Manifest.txt
CHANGED
data/{Rakefile → Rakefile.rb}
RENAMED
@@ -5,7 +5,7 @@ require 'hoe'
|
|
5
5
|
require 'Pathname'
|
6
6
|
require 'rake/clean'
|
7
7
|
|
8
|
-
Hoe.new('rake-dotnet', '0.1.
|
8
|
+
Hoe.new('rake-dotnet', '0.1.3') do |p|
|
9
9
|
p.author = 'Peter Mounce'
|
10
10
|
p.description = 'Making a .NET build-automation dev\'s life easier, one angle-bracket at a time'
|
11
11
|
p.email = 'pete@neverrunwithscissors.com'
|
@@ -32,6 +32,7 @@ file generated_library do |f|
|
|
32
32
|
gl.close unless gl.closed?
|
33
33
|
end
|
34
34
|
|
35
|
+
desc 'Generate the concatenated library'
|
35
36
|
task :generate_lib => generated_library
|
36
37
|
|
37
38
|
task :check_manifest => generated_library
|
data/lib/rake_dotnet.rb
CHANGED
@@ -82,6 +82,7 @@ CLEAN.exclude('**/core') # core files are a Ruby/*nix thing - dotNET developers
|
|
82
82
|
CLEAN.include("#{SRC_DIR}/**/obj")
|
83
83
|
CLEAN.include("#{SRC_DIR}/**/bin")
|
84
84
|
CLEAN.include("#{SRC_DIR}/**/AssemblyInfo.cs")
|
85
|
+
CLEAN.include("#{SRC_DIR}/**/AssemblyInfo.vb")
|
85
86
|
CLOBBER.include(OUT_DIR)
|
86
87
|
|
87
88
|
VERBOSE = ENV['VERBOSE'] ? ENV['VERBOSE'] : false
|
@@ -112,14 +113,23 @@ module Rake
|
|
112
113
|
end
|
113
114
|
end
|
114
115
|
|
116
|
+
rule(/#{src_dir_regex}\/[\w\.\d]+\/My Project\/AssemblyInfo.vb/) do |r|
|
117
|
+
dir = Pathname.new(r.name).dirname
|
118
|
+
mkdir_p dir
|
119
|
+
nextdoor = Pathname.new(r.name + '.template')
|
120
|
+
common = Pathname.new(File.join(@src_dir, 'AssemblyInfo.vb.template'))
|
121
|
+
if (nextdoor.exist?)
|
122
|
+
generate(nextdoor, r.name)
|
123
|
+
elsif (common.exist?)
|
124
|
+
generate(common, r.name)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
115
128
|
desc 'Generate the AssemblyInfo.cs file from the template closest'
|
116
129
|
task :assembly_info do |t|
|
117
|
-
|
118
|
-
|
119
|
-
asm_info
|
120
|
-
if is_project e
|
121
|
-
Rake::FileTask[asm_info].invoke
|
122
|
-
end
|
130
|
+
Pathname.new(@src_dir).entries.each do |e|
|
131
|
+
asm_info = asm_info_to_generate(e)
|
132
|
+
Rake::FileTask[asm_info].invoke unless asm_info.nil?
|
123
133
|
end
|
124
134
|
end
|
125
135
|
|
@@ -136,16 +146,24 @@ module Rake
|
|
136
146
|
of.open('w') { |f| f.puts content }
|
137
147
|
end
|
138
148
|
|
139
|
-
def
|
140
|
-
if (
|
141
|
-
return
|
149
|
+
def asm_info_to_generate pn_entry
|
150
|
+
if (pn_entry == '.' || pn_entry == '..' || pn_entry == '.svn')
|
151
|
+
return nil
|
142
152
|
end
|
143
|
-
if (
|
144
|
-
return
|
153
|
+
if (pn_entry == 'AssemblyInfo.cs.template' || pn_entry == 'AssemblyInfo.vb.template')
|
154
|
+
return nil
|
145
155
|
end
|
146
|
-
|
147
|
-
|
148
|
-
return
|
156
|
+
|
157
|
+
proj = FileList.new("#{@src_dir}/#{pn_entry}/*.*proj").first
|
158
|
+
return nil if proj.nil?
|
159
|
+
|
160
|
+
proj_ext = Pathname.new(proj).extname
|
161
|
+
path = case proj_ext
|
162
|
+
when '.csproj' then File.join(@src_dir, pn_entry, 'Properties', 'AssemblyInfo.cs')
|
163
|
+
when '.vbproj' then File.join(@src_dir, pn_entry, 'My Project', 'AssemblyInfo.vb')
|
164
|
+
else nil
|
165
|
+
end
|
166
|
+
return path
|
149
167
|
end
|
150
168
|
|
151
169
|
def token_replacements
|
@@ -426,11 +444,13 @@ module Rake
|
|
426
444
|
attr_accessor :src_dir, :verbosity, :working_dir
|
427
445
|
|
428
446
|
def initialize(params={})
|
447
|
+
#TODO: Support for arbitrary properties, not just configuration. For example, TreatWarningsAsErrors, WarningLevel.
|
429
448
|
@configuration = params[:configuration] || CONFIGURATION
|
430
449
|
@src_dir = params[:src_dir] || SRC_DIR
|
431
450
|
@verbosity = params[:verbosity] || MSBUILD_VERBOSITY || 'm'
|
432
451
|
@working_dir = params[:working_dir] || '.'
|
433
452
|
@deps = params[:deps] || []
|
453
|
+
@buildable_projects = ['.csproj','.vbproj','.wixproj']
|
434
454
|
|
435
455
|
yield self if block_given?
|
436
456
|
define
|
@@ -441,7 +461,7 @@ module Rake
|
|
441
461
|
rule(/#{src_dir_regex}\/[\w\.]+\/bin\/#{@configuration}\/[\w\.]+\.(?:dll|exe)/) do |r|
|
442
462
|
pn = Pathname.new(r.name)
|
443
463
|
name = pn.basename.to_s.sub('.dll', '')
|
444
|
-
project =
|
464
|
+
project = FileList.new("#{@src_dir}/#{name}/#{name}.*proj").first
|
445
465
|
mb = MsBuild.new(project, {:Configuration => @configuration}, ['Build'], verbosity, @working_dir)
|
446
466
|
mb.run
|
447
467
|
end
|
@@ -450,7 +470,7 @@ module Rake
|
|
450
470
|
rule(/#{src_dir_regex}\/[\w\.]+\/bin\/[\w\.]+\.dll/) do |r|
|
451
471
|
pn = Pathname.new(r.name)
|
452
472
|
name = pn.basename.to_s.sub('.dll', '')
|
453
|
-
project =
|
473
|
+
project = FileList.new("#{@src_dir}/#{name}/#{name}.*proj").first
|
454
474
|
mb = MsBuild.new(project, {:Configuration => @configuration}, ['Build'], verbosity, @working_dir)
|
455
475
|
mb.run
|
456
476
|
end
|
@@ -463,7 +483,7 @@ module Rake
|
|
463
483
|
pn = Pathname.new(p)
|
464
484
|
# TODO: Figure out which type of project we are so we can invoke the correct rule, with the correct output extension
|
465
485
|
dll = File.join(pn.dirname, 'bin', @configuration, pn.basename.sub(pn.extname, '.dll'))
|
466
|
-
|
486
|
+
Rake::FileTask[dll].invoke if @buildable_projects.include?(pn.extname)
|
467
487
|
end
|
468
488
|
end
|
469
489
|
|
@@ -472,7 +492,7 @@ module Rake
|
|
472
492
|
end
|
473
493
|
|
474
494
|
self
|
475
|
-
|
495
|
+
end
|
476
496
|
|
477
497
|
def src_dir_regex
|
478
498
|
regexify(@src_dir)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-dotnet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter MouncePeter Mounce
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-23 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -47,7 +47,7 @@ files:
|
|
47
47
|
- Manifest.txt
|
48
48
|
- README.markdown
|
49
49
|
- README.txt
|
50
|
-
- Rakefile
|
50
|
+
- Rakefile.rb
|
51
51
|
- lib/rake_dotnet.rb
|
52
52
|
- test/test_rake_dotnet.rb
|
53
53
|
has_rdoc: true
|