Rakefile in digest-kangarootwelve-0.4.4 vs Rakefile in digest-kangarootwelve-0.4.5

- old
+ new

@@ -1,23 +1,36 @@ # build, clean, clobber, release[remote] + require 'bundler/gem_tasks' -# compile, compile:digest/kangarootwelve -require 'rake/extensiontask' -Rake::ExtensionTask.new('digest/kangarootwelve', Bundler::GemHelper.gemspec) +# clean +CLEAN.include "ext/digest/kangarootwelve/Makefile" +CLEAN.include "ext/digest/kangarootwelve/**/*.o" +CLEAN.include "ext/digest/kangarootwelve/**/*.so" + +# clobber + +if File.exist?(".git") + CLOBBER.include "LICENSE.XKCP" + CLOBBER.include "ext/digest/kangarootwelve/XKCP" + CLOBBER.include "ext/digest/kangarootwelve/targets" +end + # initialize_xkcp + desc "Initialize and update XKCP submodule" task :initialize_xkcp => ".git" do |t| puts "Initializing and updating XKCP submodule" system "git submodule init && git submodule update -f" end file "XKCP/Makefile.build" => :initialize_xkcp file "XKCP/README.markdown" => :initialize_xkcp # import_xkcp_license + task :import_xkcp_license do Rake::Task["XKCP/README.markdown"].invoke puts "Extracting XKCP license from \"XKCP/README.markdown\" and saving it to \"LICENSE.XKCP\"." license = File.binread("XKCP/README.markdown") .scan(/# Under which license is the XKCP.*?(?=^#)/m).first @@ -28,45 +41,51 @@ !File.exist?("LICENSE.XKCP") || File.exist?("XKCP/README.markdown") && File.mtime("LICENSE.XKCP") < File.mtime("XKCP/README.markdown") end end -Rake::Task[:build].prerequisites.unshift :import_xkcp_license - # import_xkcp_files_lazy + task :import_xkcp_files_lazy do Rake::Task[:import_xkcp_files].invoke end.instance_eval do def needed? %w[XKCP targets].any?{ |dir| !File.exist?("ext/digest/kangarootwelve/#{dir}") } end end -Rake::Task[:build].prerequisites.unshift :import_xkcp_files_lazy +# build + +Rake::Task[:build].prerequisites.unshift :import_xkcp_files +Rake::Task[:build].prerequisites.unshift :import_xkcp_license +Rake::Task[:build].prerequisites.unshift :clobber + +# compile, compile:digest/kangarootwelve + +require 'rake/extensiontask' +Rake::ExtensionTask.new('digest/kangarootwelve', Bundler::GemHelper.gemspec) Rake::Task[:compile].prerequisites.unshift :import_xkcp_files_lazy # compile_lazy + task :compile_lazy do Rake::Task[:compile].invoke end.instance_eval do def needed? !File.exist?("lib/digest/kangarootwelve.so") end end # test + require 'rake/testtask' + Rake::TestTask.new(:test => :compile_lazy) do |t| t.test_files = FileList['test/test.rb'] t.verbose = true end # default -task :default => [:compile, :test] -if File.exist?(".git") - CLOBBER.include "LICENSE.XKCP" - CLOBBER.include "ext/digest/kangarootwelve/XKCP" - CLOBBER.include "ext/digest/kangarootwelve/targets" -end +task :default => [:compile, :test] # Run `rake --tasks` or `rake --tasks --all` for a list of tasks.