Class: GNOME::Rake::PackageTask

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/gnome/rake/package-task.rb

Defined Under Namespace

Classes: DependencyConfiguration

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(spec = nil, root_dir = nil) {|_self| ... } ⇒ PackageTask

Returns a new instance of PackageTask.

Yields:

  • (_self)

Yield Parameters:



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gnome/rake/package-task.rb', line 42

def initialize(spec=nil, root_dir=nil)
  @spec = spec
  initialize_variables
  initialize_configurations
  if @spec
    @package = Package.new(@spec.name, root_dir)
  else
    file, line, method = caller[1].scan(/^(.*):(\d+)(?::.*`(.*)')?\Z/).first
    root_dir = File.dirname(file)
    @package = Package.new(File.basename(root_dir), root_dir)
  end
  @packages = FileList["#{@package.root_dir.parent}/*"].map{|f| File.directory?(f) ? File.basename(f) : nil}.compact
  @name = @package.name
  @cross_compiling_hooks = []
  yield(self) if block_given?
end

Instance Attribute Details

#authorObject

Returns the value of attribute author.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def author
  @author
end

#descriptionObject

Returns the value of attribute description.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def description
  @description
end

#emailObject

Returns the value of attribute email.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def email
  @email
end

#homepageObject

Returns the value of attribute homepage.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def homepage
  @homepage
end

#nameObject

Returns the value of attribute name.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def name
  @name
end

#post_install_messageObject

Returns the value of attribute post_install_message.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def post_install_message
  @post_install_message
end

#required_ruby_versionObject

Returns the value of attribute required_ruby_version.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def required_ruby_version
  @required_ruby_version
end

#root_dirObject (readonly)

Returns the value of attribute root_dir.



41
42
43
# File 'lib/gnome/rake/package-task.rb', line 41

def root_dir
  @root_dir
end

#summaryObject

Returns the value of attribute summary.



40
41
42
# File 'lib/gnome/rake/package-task.rb', line 40

def summary
  @summary
end

Class Method Details

.define(spec, root_dir, &block) ⇒ Object



33
34
35
# File 'lib/gnome/rake/package-task.rb', line 33

def define(spec, root_dir, &block)
  new(spec, root_dir, &block).define
end

Instance Method Details

#cross_compiling(&block) ⇒ Object



59
60
61
62
# File 'lib/gnome/rake/package-task.rb', line 59

def cross_compiling(&block)
  warn("cross compile support is dropped.")
  @cross_compiling_hooks << block
end

#defineObject



64
65
66
67
68
# File 'lib/gnome/rake/package-task.rb', line 64

def define
  task :default => :build
  define_spec
  define_package_tasks
end

#define_tasksObject

Deprecated. Use #define instead.



71
72
73
# File 'lib/gnome/rake/package-task.rb', line 71

def define_tasks
  define
end

#dependencyObject



79
80
81
# File 'lib/gnome/rake/package-task.rb', line 79

def dependency
  @dependency_configuration
end

#external_packagesObject



111
112
113
# File 'lib/gnome/rake/package-task.rb', line 111

def external_packages
  @package.external_packages
end

#external_packages=(packages) ⇒ Object



115
116
117
# File 'lib/gnome/rake/package-task.rb', line 115

def external_packages=(packages)
  @package.external_packages = packages
end

#guess_versionObject



99
100
101
102
103
104
105
106
107
108
109
# File 'lib/gnome/rake/package-task.rb', line 99

def guess_version
  versions = {}
  File.open("#{@package.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

#nativeObject



91
92
93
# File 'lib/gnome/rake/package-task.rb', line 91

def native
  @package.native
end

#packageObject



83
84
85
# File 'lib/gnome/rake/package-task.rb', line 83

def package
  @package
end

#ruby_gnome2_package?(name) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/gnome/rake/package-task.rb', line 75

def ruby_gnome2_package?(name)
  @packages.include?(name)
end

#versionObject



95
96
97
# File 'lib/gnome/rake/package-task.rb', line 95

def version
  ENV["VERSION"] || guess_version
end

#windowsObject



87
88
89
# File 'lib/gnome/rake/package-task.rb', line 87

def windows
  @package.windows
end

#windows_binary_build_taskObject



119
120
121
# File 'lib/gnome/rake/package-task.rb', line 119

def windows_binary_build_task
  @windows_binary_build_task ||= WindowsBinaryBuildTask.new(@package)
end