Merge remote-tracking branch 'hw-template/master'

This commit is contained in:
King Kévin 2014-03-26 13:42:24 +01:00
commit 17ca9d2bf4
1 changed files with 24 additions and 26 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"
@ -82,12 +82,14 @@ task :verify => vsch do |t|
puts "not all refdes uniq" unless uniq puts "not all refdes uniq" unless uniq
puts "not all refdes numbered" unless numbered puts "not all refdes numbered" unless numbered
end end
=end
desc "convert schematic to pcb layout" desc "convert schematic to pcb layout"
task :sch2pcb => vsch do |t| task :sch2pcb do
sh "gsch2pcb #{t.prerequisites[0]} --elements-dir #{File.dirname(__FILE__)}/lib/footprints --skip-m4 --output-name #{target}" targets.each do |target|
sh "gsch2pcb #{target[:vsch]} --elements-dir #{File.dirname(__FILE__)}/lib/footprints --skip-m4 --output-name #{target[:name]}"
end
end end
=end
photos = targets.collect{|target| ["#{target[:name]}_layout-top.png","#{target[:name]}_layout-bottom.png"]}.flatten photos = targets.collect{|target| ["#{target[:name]}_layout-top.png","#{target[:name]}_layout-bottom.png"]}.flatten
desc "render layout" desc "render layout"
@ -95,19 +97,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 +236,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