File: Rakefile

package info (click to toggle)
ruby-gnome2 3.1.0-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 16,072 kB
  • ctags: 17,433
  • sloc: ansic: 93,621; ruby: 62,273; xml: 335; sh: 246; makefile: 25
file content (96 lines) | stat: -rw-r--r-- 3,162 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# -*- ruby -*-
#
# Copyright (C) 2012-2015  Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

$LOAD_PATH.unshift("./../glib2/lib")
require "gnome2/rake/package-task"

package_task = GNOME2::Rake::PackageTask.new do |package|
  package.summary = "Ruby/GObjectIntrospection is a Ruby binding of GObjectIntrospection."
  package.description = "Ruby/GObjectIntrospection is a Ruby binding of GObjectIntrospection."
  package.dependency.gem.runtime = ["glib2"]
  package.dependency.gem.development = [["test-unit", ">= 2"]]
  package.windows.packages = []
  package.windows.dependencies = []
  package.windows.build_dependencies = ["glib2"]
  package.external_packages = [
    {
      :name => "glib",
      :download_site => :gnome,
      :label => "GLib",
      :version => "2.50.2",
      :compression_method => "xz",
      :windows => {
        :build => false,
      },
      :native => {
        :build => true,
        :need_autoreconf => true,
        :built_file => "lib/libglib-2.0.so",
      },
    },
    {
      :name => "gobject-introspection",
      :download_site => :gnome,
      :label => "gobject-introspection",
      :version => "1.50.0",
      :compression_method => "xz",
      :windows => {
        :configure_args => [
          "--with-g-ir-scanner=#{package.native.absolute_binary_dir}/bin/g-ir-scanner",
          "--disable-tests",
        ],
        :patches => [
          "support-external-g-ir-scanner.diff",
        ],
        :need_autoreconf => true,
        :built_file => "bin/libgirepository-1.0-1.dll",
      },
      :native => {
        :build => true,
        :patches => [
          # "cross-compilable-g-ir-scanner.diff",
        ],
        :built_file => "bin/g-ir-scanner",
      }
    },
  ]
end
package_task.define

namespace :native do
  namespace :"gobject-introspection" do
    g_ir_scanner_dir = package_task.native.absolute_binary_dir
    g_ir_scanner_dir += "lib/gobject-introspection/giscanner"
    patched_path = g_ir_scanner_dir + "patched"
    file patched_path.to_s do
      Dir.chdir(g_ir_scanner_dir.to_s) do
        patch = "#{package_task.package.patches_dir}/cross-g-ir-scanner.diff"
        sh("patch -p2 < #{patch}")
        rm_f(Dir.glob("*.{pyc,pyo}"))
      end
      touch(patched_path)
    end

    desc "Make g-ir-scanner workable for Windows on non Windows"
    task :cross => patched_path
  end

  namespace :builder do
    task :after => "native:gobject-introspection:cross"
  end
end