add release support for multiple targets

This commit is contained in:
Kevin Redon 2014-03-26 13:34:53 +01:00
parent aba5134aa1
commit 39e73bf642
1 changed files with 19 additions and 23 deletions

View File

@ -42,7 +42,7 @@ task :default => [:version,:print,:notes,:photo,:gerber]
desc "create release file" desc "create release file"
release = "hardware-release_v#{version}.tar.gz" release = "hardware-release_v#{version}.tar.gz"
task :release => release task :release => [:gerber,release]
CLOBBER.include(release) CLOBBER.include(release)
desc "set version in schematic and layout" desc "set version in schematic and layout"
@ -95,19 +95,22 @@ task :photo => photos
CLOBBER.include(photos) CLOBBER.include(photos)
desc "export gerber" desc "export gerber"
GERBERS = [".top.gbr",".topmask.gbr",".toppaste.gbr",".topsilk.gbr",".bottom.gbr",".bottommask.gbr",".bottompaste.gbr",".bottomsilk.gbr",".outline.gbr",".fab.gbr",".plated-drill.cnc",".unplated-drill.cnc"] task :gerber do
gerbers = targets.collect{|target| GERBERS.collect{|suffix| target[:name]+suffix}}.flatten targets.each do |target|
task :gerber => gerbers sh "pcb -x gerber --gerberfile #{target[:name]} --all-layers #{target[:vpcb]}"
CLOBBER.include(gerbers) end
end
CLOBBER.include("*.gbr")
CLOBBER.include("*.cnc")
desc "reformat gerber and drill output (some programs like LPKF CircuitPro have difficulties with gEDA pcb output)" desc "reformat gerber and drill output (some programs like LPKF CircuitPro have difficulties with gEDA pcb output)"
task :reformat => gerbers do task :reformat do
gerbers.each do |gerber| Dir.foreach(".") do |file|
next unless File.exist? gerber next unless File.file? file
if gerber.end_with? ".gbr" then if file.end_with? ".gbr" then
sh "gerbv --export=rs274x --output=#{gerber} #{gerber}" sh "gerbv --export=rs274x --output=#{file} #{file}"
elsif gerber.end_with? ".cnc" then elsif file.end_with? ".cnc" then
sh "gerbv --export=drill --output=#{gerber} #{gerber}" sh "gerbv --export=drill --output=#{file} #{file}"
end end
end end
end end
@ -231,17 +234,10 @@ targets.each do |target|
end end
end end
desc "export gerber (and drill) files from layout"
targets.each do |target|
GERBERS.each do |suffix|
file target[:name]+suffix => target[:vpcb] do |t|
sh "pcb -x gerber --gerberfile #{target[:name]} --all-layers #{t.prerequisites.join(' ')}"
end
end
end
desc "create archive with release files" desc "create archive with release files"
SOURCES = targets.collect{|target| [target[:sch],target[:pcb]]}.flatten
ATTACHMENTS = ["cern_ohl_v_1_2_howto.pdf","CHANGES.txt","LICENSE.txt","PRODUCT.txt"] ATTACHMENTS = ["cern_ohl_v_1_2_howto.pdf","CHANGES.txt","LICENSE.txt","PRODUCT.txt"]
file release => prints+notes+photos+gerbers+ATTACHMENTS do |t| file release => SOURCES+prints+notes+photos+ATTACHMENTS do |t|
sh "tar -acf '#{t.name}' #{t.prerequisites.join(' ')}" gerbers = Dir.entries(".").select{|file| file.end_with? ".gbr" or file.end_with? ".cnc"}
sh "tar -acf '#{t.name}' #{(t.prerequisites+gerbers).join(' ')}"
end end