tasks/distribution.rake in gecoder-0.8.0 vs tasks/distribution.rake in gecoder-0.8.1

- old
+ new

@@ -5,38 +5,42 @@ PKG_VERSION = GecodeR::VERSION PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" PKG_FILE_NAME_WITH_GECODE = "#{PKG_NAME_WITH_GECODE}-#{PKG_VERSION}" # The location where the precompiled DLL should be placed. DLL_LOCATION = 'lib/gecode.dll' +EXT_DIR = 'ext' desc 'Generate RDoc' rd = Rake::RDocTask.new do |rdoc| rdoc.rdoc_dir = 'doc/output/rdoc' rdoc.options << '--title' << 'Gecode/R' << '--line-numbers' << '--inline-source' << '--accessor' << 'delegate' << '--main' << 'README' rdoc.rdoc_files.include('README', 'CHANGES', 'LGPL-LICENSE', 'lib/**/*.rb') end +TMP_DIR = 'doc/tmp/rdoc_dev' desc 'Generate RDoc, ignoring nodoc' -Rake::RDocTask.new(:rdoc_dev) do |rdoc| +Rake::RDocTask.new(:rdoc_dev => :prepare_rdoc_dev) do |rdoc| rdoc.rdoc_dir = 'doc/output/rdoc_dev' rdoc.options << '--title' << 'Gecode/R Developers RDoc' << '--line-numbers' << '--inline-source' << '--accessor' << 'delegate' - + + rdoc.rdoc_files.include("#{TMP_DIR}/**/*.rb") +end + +desc 'Copies the files that RDoc should parse, removing #:nodoc:' +task :prepare_rdoc_dev do # Copy the rdoc and remove all #:nodoc: . - TMP_DIR = 'doc/tmp/rdoc_dev' Dir['lib/**/*.rb'].each do |source_name| destination_name = source_name.sub('lib', TMP_DIR) File.makedirs File.dirname(destination_name) destination = File.open(destination_name, 'w') File.open(source_name) do |source| source.each{ |line| destination << line.gsub('#:nodoc:', '' ) } end destination.close end - - rdoc.rdoc_files.include("#{TMP_DIR}/**/*.rb") end spec = Gem::Specification.new do |s| s.name = PKG_NAME s.version = GecodeR::VERSION @@ -120,47 +124,58 @@ end desc 'Removes generated distribution files' task :clobber do rm DLL_LOCATION if File.exists? DLL_LOCATION + FileList[ + "#{EXT_DIR}/*.o", + "#{EXT_DIR}/gecode.{cc,hh}", + "#{EXT_DIR}/Makefile", + "#{EXT_DIR}/mkmf.log" + ].to_a.each{ |file| rm file if File.exists? file } end desc 'Publish packages on RubyForge' task :publish_packages => [:publish_gecoder_packages, :publish_gecoder_with_gecode_packages] +# Files included in the vanilla Gecode/R release. +vanilla_release_files = [ + "pkg/#{PKG_FILE_NAME}.gem", + "pkg/#{PKG_FILE_NAME}.tgz", + "pkg/#{PKG_FILE_NAME}.zip" +] + desc 'Publish Gecode/R packages on RubyForge' -task :publish_gecoder_packages => [:verify_user, :package] do - release_files = FileList[ - "pkg/#{PKG_FILE_NAME}.gem", - "pkg/#{PKG_FILE_NAME}.tgz", - "pkg/#{PKG_FILE_NAME}.zip" - ] +task :publish_gecoder_packages => [:verify_user].concat(vanilla_release_files) do require 'meta_project' require 'rake/contrib/xforge' Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new(PROJECT_NAME)) do |xf| xf.user_name = ENV['RUBYFORGE_USER'] - xf.files = release_files.to_a + xf.files = vanilla_release_files.to_a xf.release_name = "Gecode/R #{PKG_VERSION}" xf.package_name = PKG_NAME end end +# Files included in the release with Gecode. +gecode_release_files = [ + "pkg/#{PKG_FILE_NAME_WITH_GECODE}.gem", + "pkg/#{PKG_FILE_NAME_WITH_GECODE}.tgz", + "pkg/#{PKG_FILE_NAME_WITH_GECODE}.zip", + "pkg/#{PKG_FILE_NAME_WITH_GECODE}-mswin32.gem" +] + desc 'Publish Gecode/R with Gecode packages on RubyForge' -task :publish_gecoder_with_gecode_packages => [:verify_user, :package] do - release_files = FileList[ - "pkg/#{PKG_FILE_NAME_WITH_GECODE}*.gem", - "pkg/#{PKG_FILE_NAME_WITH_GECODE}*.tgz", - "pkg/#{PKG_FILE_NAME_WITH_GECODE}*.zip" - ] - +task :publish_gecoder_with_gecode_packages => + [:verify_user].concat(gecode_release_files) do require 'meta_project' require 'rake/contrib/xforge' Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new(PROJECT_NAME)) do |xf| xf.user_name = ENV['RUBYFORGE_USER'] - xf.files = release_files.to_a + xf.files = gecode_release_files.to_a xf.release_name = "Gecode/R with Gecode #{PKG_VERSION}" xf.package_name = PKG_NAME_WITH_GECODE end end