I get the error "I donβt know how to build a task compilation". I'm still new to the ruby, but all these tracks seem to indicate code that I haven't written, so what should I do with this error?
#> rake compile --trace rake aborted! Don't know how to build task 'compile' /usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/task_manager.rb:49:in `[] '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:142:in `invoke_task' / usr / local / rvm / gems / ruby -1.9.3-p286 / gems / rake-10.0.3 / lib / rake / application.rb: 101: in `block (2 levels) in top_level '/usr/local/rvm/gems/ruby-1.9.3- p286 / gems / rake-10.0.3 / lib / rake / application.rb: 101: in `each '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib /rake/application.rb:101:in `block in top_level '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:110: in `run_with_threads '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/lib/rake/application.rb:95:in` top_level' / usr / local / rvm / gems / ruby-1.9.3-p286 / gems / rake-10.0.3 / lib / rake / application.rb: 73: in `block in run '/usr/local/rvm/gems/ruby-1.9.3-p286 /gems/rake-10.0.3/lib/rake/application.rb:160:in `standard_exception_handling '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3 /lib/rake/application.rb:70:in `run '/usr/local/rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.3/bin/rake:33:in` `/ usr / local / rvm / gems / ruby-1.9.3-p286 / bin / rake: 23: in `load '/usr/local/rvm/gems/ruby-1.9.3-p286/bin/rake:23:in `` ''
this is rakefile:
require 'bundler / gem_tasks'
require 'rake'
require 'rake / extensiontask'
$ myDir = File.dirname (__ FILE__)
require $ myDir + '/lib/Q/console.rb'
require $ myDir + '/lib/Q/version.rb'
require $ myDir + '/lib/Q/rakeoverride.rb'
require $ myDir + '/lib/Q/filetools.rb'
# this just prints out a header and gems version number
puts Q :: Console.txHead ('Q-Pool Ruby Extension QV' + Q :: VERSION)
# load specifiation from gemspec and create
# a task for every extension file in
# executables
spec = Gem :: Specification.load ('Q.gemspec')
spec.executables.each do | f |
Rake :: ExtensionTask.new ('Q', spec) do | ext |
# extension file is * .so, so we need
# to chop the extension to get the name
ext.name = f.gsub (/ \. so $ /, '')
ext.tmp_dir = 'tmp'
ext.lib_dir = 'bin'
end
end
# clean environment by removing old binaries
override_task: clean do
puts Q :: Console.txNote ('cleaning ...')
clear_tmp
begin
Rake :: Task ["clean: original"]. Invoke
puts Q :: Console.txConfirm ('... cleaned!')
rescue
puts Q :: Console.txAlert ('could not clean:' + $ !. to_s)
exit
end
end
# initialize directory structure
task: init do
FileCheckCreateDirectory ($ myDir + '/ bin')
FileCheckCreateDirectory ($ myDir + '/ tmp')
end
# compile module and install to lib
override_task: compile do
puts Q :: Console.txNote ('compiling ...')
begin
Rake :: Task ["compile: original"]. Invoke
puts Q :: Console.txConfirm ('... compiled!')
rescue exception
puts Q :: Console.txAlert ('could not compile:' + $ !. to_s)
exit
ensure
clear_tmp
puts
end
end
# show commands
task: help do
show_help
end
# build module and install
task: build => [: init,: clean,: compile]
Bundler :: GemHelper.install_tasks
# remove any temporary files
def clear_tmp
FileUtils.rm_rf (Dir.glob ($ myDir + '/ tmp / *'))
end
# display help screen
def show_help
Q :: Console.out (Q :: Console.txCode ('build') + 'performs init, clean and compile.')
Q :: Console.out (Q :: Console.txCode ('clean') + 'removes any old binaries from temp-dir.')
Q :: Console.out (Q :: Console.txCode ('compile') + 'compiles binaries.')
Q :: Console.out (Q :: Console.txCode ('help') + 'enlists rake-commands (this page).')
Q :: Console.out (Q :: Console.txCode ('init') + 'creates gems directory structure.')
puts
end
source share