Top Level Namespace
Defined Under Namespace
Modules: Mkrf
Instance Method Summary collapse
- #base_gem_spec(pkg_name, pkg_version) ⇒ Object
- #mkrf_conf(dir) ⇒ Object
-
#rake(rakedir) ⇒ Object
Copyright © 2005 Zed A.
- #setup_clean(otherfiles) ⇒ Object
- #setup_extension(dir, extension) ⇒ Object
- #setup_gem(pkg_name, pkg_version) {|spec| ... } ⇒ Object
- #setup_rdoc(files) ⇒ Object
- #setup_tests ⇒ Object
- #sub_project(project, *targets) ⇒ Object
Instance Method Details
#base_gem_spec(pkg_name, pkg_version) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/mkrf/rakehelper.rb', line 71 def base_gem_spec(pkg_name, pkg_version) rm_rf "test/coverage" pkg_version = pkg_version pkg_name = pkg_name pkg_file_name = "#{pkg_name}-#{pkg_version}" Gem::Specification.new do |s| s.name = pkg_name s.version = pkg_version s.platform = Gem::Platform::RUBY s.has_rdoc = true s.extra_rdoc_files = [ "README" ] s.files = %w(Rakefile) + Dir.glob("{bin,doc/rdoc,ext,examples}/**/*") + Dir.glob("tools/*.rb") + Dir.glob(RUBY_PLATFORM !~ /mswin/ ? "lib/**/*.rb" : "lib/**/*") s.require_path = "lib" s.bindir = "bin" end end |
#mkrf_conf(dir) ⇒ Object
13 14 15 |
# File 'lib/mkrf/rakehelper.rb', line 13 def mkrf_conf(dir) Dir.chdir(dir) do ruby "mkrf_conf.rb" end end |
#rake(rakedir) ⇒ Object
Copyright © 2005 Zed A. Shaw with portions by Kevin Clark
You can redistribute it and/or modify it under the same terms as Ruby.
6 7 8 9 10 |
# File 'lib/mkrf/rakehelper.rb', line 6 def rake(rakedir) Dir.chdir(rakedir) do sh 'rake' end end |
#setup_clean(otherfiles) ⇒ Object
27 28 29 30 |
# File 'lib/mkrf/rakehelper.rb', line 27 def setup_clean otherfiles files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles CLEAN.include(files) end |
#setup_extension(dir, extension) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/mkrf/rakehelper.rb', line 42 def setup_extension(dir, extension) ext = "ext/#{dir}" ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}" ext_files = FileList[ "#{ext}/*.c", "#{ext}/*.h", "#{ext}/mkrf_conf.rb", "#{ext}/Rakefile", "lib" ] task "lib" do directory "lib" end desc "Builds just the #{extension} extension" task extension.to_sym => ["#{ext}/Rakefile", ext_so ] file "#{ext}/Rakefile" => ["#{ext}/mkrf_conf.rb"] do mkrf_conf "#{ext}" end file ext_so => ext_files do rake "#{ext}" cp ext_so, "lib" end end |
#setup_gem(pkg_name, pkg_version) {|spec| ... } ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mkrf/rakehelper.rb', line 94 def setup_gem(pkg_name, pkg_version) spec = base_gem_spec(pkg_name, pkg_version) yield spec if block_given? Rake::GemPackageTask.new(spec) do |p| p.gem_spec = spec p.need_tar = true if RUBY_PLATFORM !~ /mswin/ end end |
#setup_rdoc(files) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/mkrf/rakehelper.rb', line 33 def setup_rdoc files Rake::RDocTask.new do |rdoc| rdoc.rdoc_dir = 'doc/rdoc' rdoc. << '--line-numbers' rdoc.rdoc_files.add(files) end end |
#setup_tests ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/mkrf/rakehelper.rb', line 18 def setup_tests Rake::TestTask.new do |t| t.libs << "test" t.test_files = FileList['test/test*.rb'] t.verbose = true end end |
#sub_project(project, *targets) ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/mkrf/rakehelper.rb', line 105 def sub_project(project, *targets) targets.each do |target| Dir.chdir "projects/#{project}" do sh %{rake --trace #{target.to_s} } end end end |