require “bundler/gem_tasks” require “rake/testtask” require './lib/orocos/rake'
Rake::TestTask.new(:test) do |t|
t.libs << "lib" t.libs << "." test_files = FileList['test /test_*.rb'] test_files.exclude "test/standalone/ *" if !Orocos::Rake::USE_ROS test_files.exclude 'test/ros/**' end t.test_files = test_files t.warning = false
end
Rake::TestTask.new(:test_standalone) do |t|
t.libs << "lib" t.libs << "." t.test_files = FileList['test/standalone/test_*.rb'] t.warning = false
end
def build_orogen(name, options = Hash.new)
parsed_options = Hash.new parsed_options[:keep_wc] = if ['1', 'true'].include?(options[:keep_wc]) then true else false end parsed_options[:transports] = (options[:transports] || "corba typelib mqueue").split(" ") if parsed_options[:transports].empty? parsed_options[:transports] = nil elsif parsed_options[:transports] == 'none' parsed_options[:transports] = [] end parsed_options[:make_options] = Shellwords.split(options[:make_options] || ""). map { |opt| opt.gsub(';', ',') } work_dir = File.expand_path(File.join('test', 'working_copy')) data_dir = File.expand_path(File.join('test', 'data')) Orocos::Rake.generate_and_build File.join(data_dir, name, "#{name}.orogen"), work_dir, parsed_options
end
task 'default' do
Rake::Task['clean'].invoke Rake::Task['compile'].invoke
end
# Leave in top level namespace to allow rake-compiler to build native gem: 'rake native gem' require 'rake/extensiontask' desc “builds Orocos.rb C extension” Rake::ExtensionTask.new('rorocos') do |ext|
# Same info as in ext/rocoros/extconf.rb where cmake # is used to generate the Makefile ext.name = "rorocos" ext.ext_dir = "ext/rorocos" ext.lib_dir = "lib/orocos" ext.source_pattern = "*.{c,cpp,cc}" if not Dir.exists?(ext.tmp_dir) FileUtils.mkdir_p ext.tmp_dir end
end
namespace :setup do
desc "builds the oroGen modules that are needed by the tests" task :orogen_all, [:keep_wc,:transports,:make_options] do |_, args| build_orogen 'process', args build_orogen 'simple_sink', args build_orogen 'simple_source', args build_orogen 'echo', args build_orogen 'operations', args build_orogen 'configurations', args build_orogen 'states', args build_orogen 'uncaught', args build_orogen 'system', args end desc "builds the test 'process' module" task :orogen_process, [:keep_wc,:transports,:update] do |_, args| build_orogen 'process', args end desc "builds the test 'simple_sink' module" task :orogen_sink, [:keep_wc,:transports,:update] do |_, args| build_orogen 'simple_sink', args end desc "builds the test 'simple_source' module" task :orogen_source, [:keep_wc,:transports,:update] do |_, args| build_orogen 'simple_source', args end desc "builds the test 'echo' module" task :orogen_echo, [:keep_wc,:transports,:update] do |_, args| build_orogen 'echo', args end desc "builds the test 'states' module" task :orogen_states, [:keep_wc,:transports,:update] do |_, args| build_orogen 'states', args end desc "builds the test 'uncaught' module" task :orogen_uncaught, [:keep_wc,:transports,:update] do |_, args| build_orogen 'uncaught', args end desc "builds the test 'system' module" task :orogen_system, [:keep_wc,:transports,:update] do |_, args| build_orogen 'system', args end desc "builds the test 'operations' module" task :orogen_operations, [:keep_wc,:transports,:update] do |_, args| build_orogen 'operations', args end desc "builds the test 'configurations' module" task :orogen_configurations, [:keep_wc,:transports,:update] do |_, args| build_orogen 'configurations', args end desc "builds the test 'ros_test' module" task :orogen_ros_test, [:keep_wc,:transports,:update] do |_, args| build_orogen 'ros_test', args end task :test do |t, args| Rake::Task['setup:orogen_all'].invoke('1', '', '1') end
end
require 'yard/rake/yardoc_task' YARD::Rake::YardocTask.new
task :test task :doc => :yard task :docs => :yard task :redoc => :yard task :redocs => :yard