# File lib/gnome2-raketask.rb, line 19 def initialize initialize_variables initialize_configurations file, line, method = caller[1].scan(/^(.*):(\d+)(?::.*`(.*)')?\Z/).first @root_dir = File.dirname(file) @glib2_root_dir = File.expand_path("#{@root_dir}/../glib2") @packages = FileList["#{File.dirname(@root_dir)}/*"].map{|f| File.directory?(f) ? File.basename(f) : nil}.compact @name = File.basename(@root_dir) @cross_compiling_hooks = [] yield(self) if block_given? end
# File lib/gnome2-raketask.rb, line 31 def cross_compiling(&block) @cross_compiling_hooks << block end
# File lib/gnome2-raketask.rb, line 35 def define_tasks task :default => :build define_spec define_win32_tasks define_package_tasks end
# File lib/gnome2-raketask.rb, line 46 def dependency @dependency_configuration end
# File lib/gnome2-raketask.rb, line 58 def guess_version versions = {} File.open("#{@glib2_root_dir}/ext/glib2/rbglib.h") do |rbglib_h| rbglib_h.each_line do |line| if /#define\s+RBGLIB_([A-Z]+)_VERSION\s+(\d+)/ =~ line versions[$1.downcase] = $2.to_i end end end ["major", "minor", "micro"].collect {|type| versions[type]}.compact.join(".") end
# File lib/gnome2-raketask.rb, line 42 def ruby_gnome2_package?(name) @packages.include?(name) end
# File lib/gnome2-raketask.rb, line 54 def version ENV["VERSION"] || guess_version end
# File lib/gnome2-raketask.rb, line 50 def win32 @win32_configuration end
# File lib/gnome2-raketask.rb, line 151 def define_package_tasks Gem::PackageTask.new(@spec) do |pkg| end end
# File lib/gnome2-raketask.rb, line 85 def define_spec @spec = Gem::Specification.new do |s| s.name = @name s.summary = @summary s.description = @description s.author = @author s.email = @email s.homepage = @homepage s.version = version extensions = FileList["ext/#{@name}/extconf.rb"] extensions.existing! s.extensions = extensions s.require_paths = ["lib"] files = FileList["ChangeLog", "README", "Rakefile", "extconf.rb", "lib/**/*.rb", "{ext,sample,test,test-unit}/**/*"] files.existing! s.files = files s.required_ruby_version = @required_ruby_version || ">= 1.8.5" s.post_install_message = @post_install_message @dependency_configuration.apply(s) end end
# File lib/gnome2-raketask.rb, line 146 def define_win32_build_task GNOME2Win32BinaryBuildTask.new(@win32_configuration) end
# File lib/gnome2-raketask.rb, line 142 def define_win32_download_task GNOME2Win32BinaryDownloadTask.new(@win32_configuration) end
# File lib/gnome2-raketask.rb, line 120 def define_win32_extension_task Rake::ExtensionTask.new(so_base_name, @spec) do |ext| ext.ext_dir = "ext/#{@name}" ext.cross_compile = true ext.cross_compiling do |spec| if /mingw|mswin/ =~ spec.platform.to_s win32_binary_dir = @win32_configuration.relative_binary_dir win32_files = [] if File.exist?(win32_binary_dir) Find.find(win32_binary_dir) do |file| next if /\.zip\z/ =~ file win32_files << file end end spec.files += win32_files end @cross_compiling_hooks.each do |hook| hook.call(spec) end end end def define_win32_download_task GNOME2Win32BinaryDownloadTask.new(@win32_configuration) end def define_win32_build_task GNOME2Win32BinaryBuildTask.new(@win32_configuration) end end
# File lib/gnome2-raketask.rb, line 110 def define_win32_tasks define_win32_extension_task define_win32_download_task define_win32_build_task end
# File lib/gnome2-raketask.rb, line 80 def initialize_configurations @dependency_configuration = DependencyConfiguration.new(self) @win32_configuration = Win32Configuration.new(self) end
# File lib/gnome2-raketask.rb, line 71 def initialize_variables @name = "" @summary = "" @description = "" @author = "The Ruby-GNOME2 Project Team" @email = "ruby-gnome2-devel-en@lists.sourceforge.net" @homepage = "http://ruby-gnome2.sourceforge.jp/" end
# File lib/gnome2-raketask.rb, line 116 def so_base_name @name.gsub(/-/, "_") end