require 'rubygems'
require 'rake'
require 'rake/clean'
require 'rubygems/package_task'
require 'rdoc/task'
require 'rake/testtask'
require 'rspec/core/rake_task'
require_relative 'lib/toxiclibs/version'

spec = Gem::Specification.new do |s|
  s.name = 'toxiclibs'
  s.version = Toxiclibs::VERSION
  s.has_rdoc = true
  s.extra_rdoc_files = ['README.md', 'LICENSE.md']
  s.summary = 'Experimental gem for some toxiclibs'
  s.description = 'A gem wrapper for some toxiclibs jars'
  s.license = 'GPLv3'
  s.authors = ['Karsten Schmidt', 'Martin Prout']
  s.email = 'martin_p@lineone.net'
  s.homepage = 'https://github.com/ruby-processing/toxiclibs'
  s.files = %w(LICENSE.md README.md Rakefile) + FileList['lib/**/*.rb', 'example/**/*.rb']
  s.files << 'lib/toxiclibs.jar' 
  s.require_path = 'lib'
  s.add_development_dependency "rake", "~> 10.3"
  s.add_development_dependency "rake-compiler", "~> 0.9"
  s.requirements << 'A decent graphics card'
  s.requirements << 'java runtime >= 1.7+'
  s.requirements << 'jruby_art = 0.2+'
end

# -*- ruby -*-

require 'java'
require 'rake/javaextensiontask'

# -*- encoding: utf-8 -*-
require 'psych'

def copy_jars(name, dest)
  conf = '~/.jruby_art/config.yml'
  begin
    path = File.expand_path(conf)
    rp_config = (Psych.load_file(path))
    source= "#{rp_config["PROCESSING_ROOT"]}/core/library/"    
  rescue
    raise "WARNING: you must set PROCESSING_ROOT in #{conf} compile"
  end
	body = proc {
	  Dir["#{source}/core.jar"].each do |f|
	    puts "Copying #{f} To #{dest}"
	    FileUtils.cp f, dest
	  end
	}
	Rake::Task.define_task(name, &body)	
end

copy_jars(:processing_jars, 'lib')

Rake::JavaExtensionTask.new('toxi') do |ext|
  jar = 'lib/core.jar'
  ext.classpath = File.expand_path(jar)
  ext.name = 'toxiclibs'
  ext.debug = true
  ext.lib_dir = 'lib'
  ext.source_version='1.7'
  ext.target_version='1.7'
end

Gem::PackageTask.new(spec) do |p|
  p.gem_spec = spec
  p.need_tar = true
  p.need_zip = true
end

Rake::RDocTask.new do |rdoc|
  files = ['README.md', 'LICENSE.md'] + FileList['lib/**/*.rb']
  
  rdoc.rdoc_files.add(files)
  rdoc.main = "README.md" # page to start on
  rdoc.title = "Toxiclibs Docs"
  rdoc.rdoc_dir = 'doc/rdoc' # rdoc output folder
  rdoc.options << '--line-numbers'
end

Rake::TestTask.new do |t|
  t.test_files = FileList['test/**/*.rb']
end

RSpec::Core::RakeTask.new do |spec|
  spec.pattern = 'spec/*_spec.rb'
  spec.rspec_opts = [Dir["lib"].to_a.join(':')]
end