Class: GNOME2::Rake::PackageTask

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/gnome2/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:



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gnome2/rake/package-task.rb', line 30

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.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def author
  @author
end

#descriptionObject

Returns the value of attribute description.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def description
  @description
end

#emailObject

Returns the value of attribute email.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def email
  @email
end

#homepageObject

Returns the value of attribute homepage.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def homepage
  @homepage
end

#nameObject

Returns the value of attribute name.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def name
  @name
end

#post_install_messageObject

Returns the value of attribute post_install_message.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def post_install_message
  @post_install_message
end

#required_ruby_versionObject

Returns the value of attribute required_ruby_version.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def required_ruby_version
  @required_ruby_version
end

#root_dirObject (readonly)

Returns the value of attribute root_dir.



29
30
31
# File 'lib/gnome2/rake/package-task.rb', line 29

def root_dir
  @root_dir
end

#summaryObject

Returns the value of attribute summary.



28
29
30
# File 'lib/gnome2/rake/package-task.rb', line 28

def summary
  @summary
end

Class Method Details

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



21
22
23
# File 'lib/gnome2/rake/package-task.rb', line 21

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

Instance Method Details

#cross_compiling(&block) ⇒ Object



47
48
49
50
# File 'lib/gnome2/rake/package-task.rb', line 47

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

#defineObject



52
53
54
55
56
# File 'lib/gnome2/rake/package-task.rb', line 52

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

#define_tasksObject

Deprecated. Use #define instead.



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

def define_tasks
  define
end

#dependencyObject



67
68
69
# File 'lib/gnome2/rake/package-task.rb', line 67

def dependency
  @dependency_configuration
end

#external_packagesObject



99
100
101
# File 'lib/gnome2/rake/package-task.rb', line 99

def external_packages
  @package.external_packages
end

#external_packages=(packages) ⇒ Object



103
104
105
# File 'lib/gnome2/rake/package-task.rb', line 103

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

#guess_versionObject



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/gnome2/rake/package-task.rb', line 87

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



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

def native
  @package.native
end

#packageObject



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

def package
  @package
end

#ruby_gnome2_package?(name) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/gnome2/rake/package-task.rb', line 63

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

#versionObject



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

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

#windowsObject



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

def windows
  @package.windows
end

#windows_binary_build_taskObject



107
108
109
# File 'lib/gnome2/rake/package-task.rb', line 107

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