Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

130 lines (112 sloc) 3.128 kb
# -*- Ruby -*-
require 'rubygems/package_task'
require 'rake/testtask'
require 'rake/extensiontask'
Rake::ExtensionTask.new('ruby_debug')
SO_NAME = "ruby_debug.so"
COMMON_FILES = FileList[
'AUTHORS',
'CHANGES',
'LICENSE',
'README',
'Rakefile',
]
CLI_TEST_FILE_LIST = FileList['test/lib/commands/unit/*.rb',
'test/lib/commands/*_test.rb',
'test/lib/**/*_test.rb']
# disabled until requires fixed and tests pass
# 'test/test-*.rb']
CLI_FILES = COMMON_FILES + FileList[
"lib/**/*",
'ChangeLog',
'bin/*',
'doc/rdebug.1',
'test/**/data/*.cmd',
'test/**/data/*.right',
'test/**/*.rb',
'rdbg.rb',
CLI_TEST_FILE_LIST
]
BASE_TEST_FILE_LIST = %w(
test/base/base.rb
test/base/binding.rb
test/base/catchpoint.rb)
BASE_FILES = COMMON_FILES + FileList[
'ext/ruby_debug/breakpoint.c',
'ext/ruby_debug/extconf.rb',
'ext/ruby_debug/ruby_debug.c',
'ext/ruby_debug/ruby_debug.h',
'ext/win32/*',
'lib/**/*',
BASE_TEST_FILE_LIST,
]
desc "Test everything."
task :test => :test_base do
Rake::TestTask.new(:test) do |t|
t.libs << './ext'
t.libs << './lib'
t.test_files = CLI_TEST_FILE_LIST
t.verbose = true
end
end
desc "Test ruby-debug-base."
task :test_base => :lib do
Rake::TestTask.new(:test_base) do |t|
t.libs << './ext'
t.libs << './lib'
t.test_files = FileList[BASE_TEST_FILE_LIST]
t.verbose = true
end
end
desc "Test everything - same as test."
task :check => :test
desc "Create the core ruby-debug shared library extension"
task :lib do
Dir.chdir("ext") do
system("#{Gem.ruby} extconf.rb && make")
end
end
desc "Compile Emacs code"
task :emacs => "emacs/rdebug.elc"
file "emacs/rdebug.elc" => ["emacs/elisp-comp", "emacs/rdebug.el"] do
Dir.chdir("emacs") do
system("./elisp-comp ./rdebug.el")
end
end
base_spec = eval(File.read('debugger.gemspec'), binding, 'debugger.gemspec')
# Rake task to build the default package
Gem::PackageTask.new(base_spec) do |pkg|
pkg.need_tar = true
end
# Windows specification
win_spec = base_spec.clone
win_spec.extensions = []
## win_spec.platform = Gem::Platform::WIN32 # deprecated
win_spec.platform = 'mswin32'
win_spec.files += ["lib/#{SO_NAME}"]
desc "Create Windows Gem"
task :win32_gem do
# Copy the win32 extension the top level directory
current_dir = File.expand_path(File.dirname(__FILE__))
source = File.join(current_dir, "ext", "win32", SO_NAME)
target = File.join(current_dir, "lib", SO_NAME)
cp(source, target)
# Create the gem, then move it to pkg.
Gem::Builder.new(win_spec).build
gem_file = "#{win_spec.name}-#{win_spec.version}-#{win_spec.platform}.gem"
mv(gem_file, "pkg/#{gem_file}")
# Remove win extension from top level directory.
rm(target)
end
desc "Remove built files"
task :clean do
cd "ext" do
if File.exists?("Makefile")
sh "make clean"
rm "Makefile"
end
derived_files = Dir.glob(".o") + Dir.glob("*.so")
rm derived_files unless derived_files.empty?
end
end
task :default => :test
Jump to Line
Something went wrong with that request. Please try again.