glib2 3.0.9 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/ext/glib2/extconf.rb +0 -3
- data/ext/glib2/glib2.def +3 -0
- data/ext/glib2/rbglib.c +52 -20
- data/ext/glib2/rbglib.h +2 -2
- data/ext/glib2/rbglib_iochannel.c +1 -1
- data/ext/glib2/rbglib_mainloop.c +34 -11
- data/ext/glib2/rbglib_messages.c +21 -14
- data/ext/glib2/rbgobj_closure.c +65 -28
- data/ext/glib2/rbgobj_signal.c +38 -2
- data/ext/glib2/rbgobject.h +16 -0
- data/ext/glib2/rbgutil.c +6 -6
- data/lib/glib2.rb +8 -3
- data/lib/gnome2/rake/external-package.rb +24 -0
- data/lib/gnome2/rake/windows-binary-build-task.rb +339 -338
- metadata +2 -2
data/ext/glib2/rbgobject.h
CHANGED
@@ -197,10 +197,26 @@ extern void rbgobj_set_signal_func(VALUE klass, const gchar *sig_name, GValToRVa
|
|
197
197
|
extern GValToRValSignalFunc rbgobj_get_signal_func(guint signal_id);
|
198
198
|
extern VALUE rbgobj_signal_wrap(guint sig_id);
|
199
199
|
|
200
|
+
typedef struct {
|
201
|
+
GValue *return_value;
|
202
|
+
guint n_param_values;
|
203
|
+
const GValue *param_values;
|
204
|
+
VALUE callback;
|
205
|
+
VALUE extra_args;
|
206
|
+
} RGClosureCallData;
|
207
|
+
typedef void (*RGClosureCallFunc)(RGClosureCallData *data);
|
208
|
+
|
209
|
+
extern void rbgobj_set_signal_call_func(VALUE klass,
|
210
|
+
const gchar *signal_name,
|
211
|
+
RGClosureCallFunc func);
|
212
|
+
extern RGClosureCallFunc rbgobj_get_signal_call_func(guint signal_id);
|
200
213
|
|
201
214
|
/* rbgobj_closure.c */
|
202
215
|
extern GClosure* g_rclosure_new(VALUE callback_proc, VALUE extra_args,
|
203
216
|
GValToRValSignalFunc func);
|
217
|
+
extern GClosure* g_rclosure_new_call(VALUE callback_proc,
|
218
|
+
VALUE extra_args,
|
219
|
+
RGClosureCallFunc func);
|
204
220
|
extern void g_rclosure_attach(GClosure *closure, VALUE object);
|
205
221
|
extern void g_rclosure_set_tag(GClosure *closure, const gchar *tag);
|
206
222
|
|
data/ext/glib2/rbgutil.c
CHANGED
@@ -138,22 +138,22 @@ rbgutil_key_equal(VALUE rb_key, const char *key)
|
|
138
138
|
}
|
139
139
|
|
140
140
|
static gboolean
|
141
|
-
rbg_interrupt_prepare (G_GNUC_UNUSED GSource *
|
142
|
-
|
141
|
+
rbg_interrupt_prepare (G_GNUC_UNUSED GSource *source,
|
142
|
+
G_GNUC_UNUSED gint *timeout)
|
143
143
|
{
|
144
144
|
return rb_thread_interrupted(rb_thread_current());
|
145
145
|
}
|
146
146
|
|
147
147
|
static gboolean
|
148
|
-
rbg_interrupt_check (G_GNUC_UNUSED GSource *
|
148
|
+
rbg_interrupt_check (G_GNUC_UNUSED GSource *source)
|
149
149
|
{
|
150
150
|
return rb_thread_interrupted(rb_thread_current());
|
151
151
|
}
|
152
152
|
|
153
153
|
static gboolean
|
154
|
-
rbg_interrupt_dispatch (G_GNUC_UNUSED GSource *
|
155
|
-
|
156
|
-
|
154
|
+
rbg_interrupt_dispatch (G_GNUC_UNUSED GSource *source,
|
155
|
+
GSourceFunc callback,
|
156
|
+
gpointer user_data)
|
157
157
|
{
|
158
158
|
if (callback) {
|
159
159
|
return callback(user_data);
|
data/lib/glib2.rb
CHANGED
@@ -33,10 +33,15 @@ module GLib
|
|
33
33
|
def exit_application(exception, status)
|
34
34
|
msg = exception.message || exception.to_s
|
35
35
|
msg = exception.class.to_s if msg == ""
|
36
|
-
backtrace = exception.backtrace
|
37
|
-
|
36
|
+
backtrace = exception.backtrace || []
|
37
|
+
first_line = backtrace.shift
|
38
|
+
if first_line
|
39
|
+
$stderr.puts("#{first_line}: #{msg}")
|
40
|
+
else
|
41
|
+
$stderr.puts(msg)
|
42
|
+
end
|
38
43
|
backtrace.each do |v|
|
39
|
-
$stderr.puts
|
44
|
+
$stderr.puts("\t from #{v}")
|
40
45
|
end
|
41
46
|
exit(status)
|
42
47
|
end
|
@@ -107,6 +107,8 @@ module GNOME2
|
|
107
107
|
latest_version_freedesktop
|
108
108
|
when :freedesktop_gstreamer
|
109
109
|
latest_version_freedesktop_gstreamer
|
110
|
+
when :webkitgtk
|
111
|
+
latest_version_webkitgtk
|
110
112
|
else
|
111
113
|
nil
|
112
114
|
end
|
@@ -127,6 +129,8 @@ module GNOME2
|
|
127
129
|
base_url << "/#{name}"
|
128
130
|
when :gnu
|
129
131
|
base_url = "http://ftp.gnu.org/pub/gnu/#{name}"
|
132
|
+
when :webkitgtk
|
133
|
+
base_url = webkitgtk_base_url
|
130
134
|
else
|
131
135
|
base_url = nil
|
132
136
|
end
|
@@ -145,6 +149,10 @@ module GNOME2
|
|
145
149
|
"https://gstreamer.freedesktop.org/src"
|
146
150
|
end
|
147
151
|
|
152
|
+
def webkitgtk_base_url
|
153
|
+
"https://webkitgtk.org/releases"
|
154
|
+
end
|
155
|
+
|
148
156
|
def sort_versions(versions)
|
149
157
|
versions.sort_by do |version|
|
150
158
|
version.split(".").collect(&:to_i)
|
@@ -223,6 +231,22 @@ module GNOME2
|
|
223
231
|
version.split(".")[1].to_i.odd?
|
224
232
|
end
|
225
233
|
|
234
|
+
def latest_version_webkitgtk
|
235
|
+
base_url = webkitgtk_base_url
|
236
|
+
versions = []
|
237
|
+
open(base_url) do |index|
|
238
|
+
index.read.scan(/<a (.+?)>/) do |content,|
|
239
|
+
case content
|
240
|
+
when /href="#{Regexp.escape(name)}-
|
241
|
+
(\d+(?:\.\d+)*)
|
242
|
+
\.tar\.#{Regexp.escape(compression_method)}"/x
|
243
|
+
versions << $1
|
244
|
+
end
|
245
|
+
end
|
246
|
+
end
|
247
|
+
sort_versions(versions).last
|
248
|
+
end
|
249
|
+
|
226
250
|
class WindowsConfiguration < Struct.new(:build,
|
227
251
|
:include_paths,
|
228
252
|
:library_paths,
|
@@ -10,341 +10,342 @@ module GNOME2
|
|
10
10
|
class WindowsBinaryBuildTask
|
11
11
|
include ::Rake::DSL
|
12
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
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
13
|
+
def initialize(package)
|
14
|
+
@package = package
|
15
|
+
end
|
16
|
+
|
17
|
+
def define
|
18
|
+
namespace :windows do
|
19
|
+
namespace :builder do
|
20
|
+
task :before
|
21
|
+
define_build_tasks
|
22
|
+
build_tasks = build_packages.collect do |package|
|
23
|
+
"windows:builder:build:#{package.name}"
|
24
|
+
end
|
25
|
+
task :build => build_tasks
|
26
|
+
task :after
|
27
|
+
end
|
28
|
+
desc "Build Windows binaries"
|
29
|
+
task :build => ["windows:builder:before",
|
30
|
+
"windows:builder:build",
|
31
|
+
"windows:builder:after"]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def rcairo_binary_base_dir
|
36
|
+
rcairo_dir + "vendor" + "local"
|
37
|
+
end
|
38
|
+
|
39
|
+
def glib2_binary_base_dir
|
40
|
+
@package.glib2_root_dir + "vendor" + "local"
|
41
|
+
end
|
42
|
+
|
43
|
+
def binary_base_dir(package)
|
44
|
+
@package.project_root_dir + package + "vendor" + "local"
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
def define_build_tasks
|
49
|
+
namespace :build do
|
50
|
+
prepare_task_names = []
|
51
|
+
namespace :prepare do
|
52
|
+
prepare_task_names << "pkg_config"
|
53
|
+
task :pkg_config do
|
54
|
+
depended_packages = @package.windows.build_dependencies
|
55
|
+
use_packages = [@package.name] + depended_packages
|
56
|
+
pkg_config_path = use_packages.collect do |package|
|
57
|
+
"../#{package}/#{@package.windows.relative_binary_dir}/lib/pkgconfig"
|
58
|
+
end
|
59
|
+
ENV["PKG_CONFIG_PATH"] = pkg_config_path.collect do |path|
|
60
|
+
File.expand_path(path)
|
61
|
+
end.join(":")
|
62
|
+
ENV["PKG_CONFIG_LIBDIR"] = rcairo_pkgconfig_path
|
63
|
+
end
|
64
|
+
|
65
|
+
prepare_task_names << "pkg_config_for_build"
|
66
|
+
task :pkg_config_for_build do
|
67
|
+
# XXX: Is it needless?
|
68
|
+
# ENV["PKG_CONFIG_FOR_BUILD"] = "env - pkg-config"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
full_prepare_task_names = prepare_task_names.collect do |name|
|
73
|
+
"windows:builder:build:prepare:#{name}"
|
74
|
+
end
|
75
|
+
task :prepare => full_prepare_task_names
|
76
|
+
|
77
|
+
build_packages.each do |package|
|
78
|
+
namespace package.name do
|
79
|
+
task :before
|
80
|
+
download_task = "source:downloader:download:#{package.name}"
|
81
|
+
built_file = package.windows.built_file
|
82
|
+
if built_file
|
83
|
+
built_file = dist_dir + built_file
|
84
|
+
file built_file.to_s do
|
85
|
+
::Rake::Task["windows:builder:build:prepare"].invoke
|
86
|
+
::Rake::Task[download_task].invoke
|
87
|
+
build_package_task_body(package)
|
88
|
+
end
|
89
|
+
task :build => built_file.to_s
|
90
|
+
else
|
91
|
+
task :build => [:prepare, download_task] do
|
92
|
+
build_package_task_body(package)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
task :after
|
96
|
+
end
|
97
|
+
|
98
|
+
prefix = "windows:builder:build:#{package.name}"
|
99
|
+
desc "Build #{package.label} and install it into #{dist_dir}."
|
100
|
+
task package.name => [
|
101
|
+
"#{prefix}:before",
|
102
|
+
"#{prefix}:build",
|
103
|
+
"#{prefix}:after",
|
104
|
+
]
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def build_package_task_body(package)
|
110
|
+
package_tmp_dir = @package.tmp_dir + "windows" + package.name
|
111
|
+
rm_rf(package_tmp_dir)
|
112
|
+
mkdir_p(package_tmp_dir)
|
113
|
+
|
114
|
+
tar_full_path = @package.download_dir + package.archive_base_name
|
115
|
+
Dir.chdir(package_tmp_dir.to_s) do
|
116
|
+
sh("tar", "xf", tar_full_path.to_s)
|
117
|
+
end
|
118
|
+
|
119
|
+
package_dir_path =
|
120
|
+
package_tmp_dir + package.base_name + package.base_dir_in_package
|
121
|
+
Dir.chdir(package_dir_path.to_s) do
|
122
|
+
package.windows.patches.each do |patch|
|
123
|
+
sh("patch -p1 < #{@package.patches_dir}/#{patch}")
|
124
|
+
end
|
125
|
+
if File.exist?("configure")
|
126
|
+
configure(package)
|
127
|
+
else
|
128
|
+
cmake(package)
|
129
|
+
end
|
130
|
+
common_make_args = []
|
131
|
+
common_make_args << "MAKE=make"
|
132
|
+
common_make_args << "GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
|
133
|
+
if package.windows.use_cc_environment_variable?
|
134
|
+
common_make_args << cc_env(package)
|
135
|
+
end
|
136
|
+
add_gobject_introspection_make_args(package, common_make_args)
|
137
|
+
build_make_args = common_make_args.dup
|
138
|
+
install_make_args = common_make_args.dup
|
139
|
+
if package.windows.build_concurrently?
|
140
|
+
make_n_jobs = ENV["MAKE_N_JOBS"]
|
141
|
+
build_make_args << "-j#{make_n_jobs}" if make_n_jobs
|
142
|
+
end
|
143
|
+
ENV["GREP_OPTIONS"] = "--text"
|
144
|
+
# ENV["GI_SCANNER_DEBUG"] = "save-temps"
|
145
|
+
# build_make_args << "--debug"
|
146
|
+
# build_make_args << "V=1"
|
147
|
+
# build_make_args << "VERBOSE=1"
|
148
|
+
sh("nice", "make", *build_make_args) or exit(false)
|
149
|
+
sh("make", "install", *install_make_args) or exit(false)
|
150
|
+
|
151
|
+
package_license_dir = license_dir + package.name
|
152
|
+
mkdir_p(package_license_dir)
|
153
|
+
package_license_files = ["AUTHORS", "COPYING", "COPYING.LIB"]
|
154
|
+
package_license_files = package_license_files.reject do |file|
|
155
|
+
not File.exist?(file)
|
156
|
+
end
|
157
|
+
cp(package_license_files, package_license_dir)
|
158
|
+
bundled_packages = package.bundled_packages
|
159
|
+
bundled_packages.each do |bundled_package|
|
160
|
+
bundled_package_license_dir = license_dir + bundled_package[:name]
|
161
|
+
mkdir_p(bundled_package_license_dir)
|
162
|
+
license_files = bundled_package[:license_files].collect do |file|
|
163
|
+
File.join(bundled_package[:path], file)
|
164
|
+
end
|
165
|
+
cp(license_files, bundled_package_license_dir)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def configure(package)
|
171
|
+
sh("./autogen.sh") if package.windows.need_autogen?
|
172
|
+
sh("autoreconf", "--install", "--force") if package.windows.need_autoreconf?
|
173
|
+
sh("./configure",
|
174
|
+
cc_env(package),
|
175
|
+
dlltool_env,
|
176
|
+
"CPPFLAGS=#{cppflags(package)}",
|
177
|
+
"LDFLAGS=#{ldflags(package)}",
|
178
|
+
"--prefix=#{dist_dir}",
|
179
|
+
"--host=#{@package.windows.build_host}",
|
180
|
+
*package.windows.configure_args) or exit(false)
|
181
|
+
end
|
182
|
+
|
183
|
+
def cmake(package)
|
184
|
+
sh("cmake",
|
185
|
+
".",
|
186
|
+
"-DCMAKE_INSTALL_PREFIX=#{dist_dir}",
|
187
|
+
"-DCMAKE_SYSTEM_NAME=Windows",
|
188
|
+
"-DCMAKE_SYSTEM_PROCESSOR=#{@package.windows.build_architecture}",
|
189
|
+
"-DCMAKE_C_COMPILER=#{cc(package)}",
|
190
|
+
"-DCMAKE_CXX_COMPILER=#{cxx(package)}",
|
191
|
+
*package.windows.cmake_args) or exit(false)
|
192
|
+
end
|
193
|
+
|
194
|
+
def cc_env(package)
|
195
|
+
"CC=#{cc(package)}"
|
196
|
+
end
|
197
|
+
|
198
|
+
def dlltool_env
|
199
|
+
"DLLTOOL=#{dlltool}"
|
200
|
+
end
|
201
|
+
|
202
|
+
def build_packages
|
203
|
+
packages = @package.external_packages.select do |package|
|
204
|
+
package.windows.build?
|
205
|
+
end
|
206
|
+
# For backward compatibility
|
207
|
+
packages + @package.windows.build_packages
|
208
|
+
end
|
209
|
+
|
210
|
+
def dist_dir
|
211
|
+
@package.windows.absolute_binary_dir
|
212
|
+
end
|
213
|
+
|
214
|
+
def license_dir
|
215
|
+
dist_dir + "share" + "license"
|
216
|
+
end
|
217
|
+
|
218
|
+
def glib2_include_path
|
219
|
+
"#{glib2_binary_base_dir}/include"
|
220
|
+
end
|
221
|
+
|
222
|
+
def glib2_lib_path
|
223
|
+
"#{glib2_binary_base_dir}/lib"
|
224
|
+
end
|
225
|
+
|
226
|
+
def rcairo_dir
|
227
|
+
suffix = @package.windows.build_architecture_suffix
|
228
|
+
@package.project_root_dir.parent + "rcairo.#{suffix}"
|
229
|
+
end
|
230
|
+
|
231
|
+
def rcairo_pkgconfig_path
|
232
|
+
"#{rcairo_binary_base_dir}/lib/pkgconfig"
|
233
|
+
end
|
234
|
+
|
235
|
+
def rcairo_include_path
|
236
|
+
"#{rcairo_binary_base_dir}/include"
|
237
|
+
end
|
238
|
+
|
239
|
+
def rcairo_lib_path
|
240
|
+
"#{rcairo_binary_base_dir}/lib"
|
241
|
+
end
|
242
|
+
|
243
|
+
def cc(package)
|
244
|
+
cc_command_line = [
|
245
|
+
"#{@package.windows.build_host}-gcc",
|
246
|
+
*package.windows.cc_args,
|
247
|
+
]
|
248
|
+
cc_command_line.compact.join(" ")
|
249
|
+
end
|
250
|
+
|
251
|
+
def cxx(package)
|
252
|
+
cxx_command_line = [
|
253
|
+
"#{@package.windows.build_host}-g++",
|
254
|
+
]
|
255
|
+
cxx_command_line.compact.join(" ")
|
256
|
+
end
|
257
|
+
|
258
|
+
def dlltool
|
259
|
+
"#{@package.windows.build_host}-dlltool"
|
260
|
+
end
|
261
|
+
|
262
|
+
def cppflags(package)
|
263
|
+
include_paths = package.windows.include_paths
|
264
|
+
if @package.windows.build_dependencies.include?("glib2")
|
265
|
+
include_paths += [glib2_include_path]
|
266
|
+
end
|
267
|
+
include_paths += [
|
268
|
+
rcairo_include_path,
|
269
|
+
dist_dir + 'include',
|
270
|
+
]
|
271
|
+
cppflags = include_paths.collect do |path|
|
272
|
+
"-I#{path}"
|
273
|
+
end
|
274
|
+
cppflags.join(" ")
|
275
|
+
end
|
276
|
+
|
277
|
+
def ldflags(package)
|
278
|
+
library_paths = package.windows.library_paths
|
279
|
+
if @package.windows.build_dependencies.include?("glib2")
|
280
|
+
library_paths += [glib2_lib_path]
|
281
|
+
end
|
282
|
+
library_paths += [
|
283
|
+
rcairo_lib_path,
|
284
|
+
dist_dir + 'lib',
|
285
|
+
]
|
286
|
+
ldflags = library_paths.collect do |path|
|
287
|
+
"-L#{path}"
|
288
|
+
end
|
289
|
+
ldflags.join(" ")
|
290
|
+
end
|
291
|
+
|
292
|
+
def cmake_root_paths
|
293
|
+
paths = [
|
294
|
+
"/usr/#{@package.windows.build_host}",
|
295
|
+
rcairo_binary_base_dir.to_path,
|
296
|
+
]
|
297
|
+
@package.windows.build_dependencies.each do |package|
|
298
|
+
paths << binary_base_dir(package).to_path
|
299
|
+
end
|
300
|
+
paths
|
301
|
+
end
|
302
|
+
|
303
|
+
def add_gobject_introspection_make_args(package, common_make_args)
|
304
|
+
return unless use_gobject_introspection?(package)
|
305
|
+
|
306
|
+
g_ir_scanner = "#{@package.project_root_dir}/gobject-introspection/"
|
307
|
+
g_ir_scanner << "#{@package.native.relative_binary_dir}/bin/g-ir-scanner"
|
308
|
+
introspection_scanner = "INTROSPECTION_SCANNER=#{g_ir_scanner}"
|
309
|
+
common_make_args << introspection_scanner
|
310
|
+
|
311
|
+
|
312
|
+
dependencies = [
|
313
|
+
"gobject-introspection",
|
314
|
+
@package.name,
|
315
|
+
]
|
316
|
+
dependencies += @package.windows.gobject_introspection_dependencies
|
317
|
+
|
318
|
+
gi_base_dir = binary_base_dir("gobject-introspection")
|
319
|
+
introspection_compiler = "INTROSPECTION_COMPILER="
|
320
|
+
introspection_compiler << "#{gi_base_dir}/bin/g-ir-compiler.exe"
|
321
|
+
introspection_compiler_args = ""
|
322
|
+
dependencies.each do |dependent_package|
|
323
|
+
gir_dir = "#{binary_base_dir(dependent_package)}/share/gir-1.0"
|
324
|
+
introspection_compiler_args << " --includedir=#{gir_dir}"
|
325
|
+
end
|
326
|
+
if package.windows.gobject_introspection_compiler_split_args?
|
327
|
+
common_make_args << introspection_compiler
|
328
|
+
common_make_args <<
|
329
|
+
"INTROSPECTION_COMPILER_ARGS=#{introspection_compiler_args}"
|
330
|
+
common_make_args <<
|
331
|
+
"INTROSPECTION_COMPILER_OPTS=#{introspection_compiler_args}"
|
332
|
+
else
|
333
|
+
introspection_compiler << " #{introspection_compiler_args}"
|
334
|
+
common_make_args << introspection_compiler
|
335
|
+
end
|
336
|
+
|
337
|
+
common_make_args << dlltool_env
|
338
|
+
|
339
|
+
data_dirs = dependencies.collect do |dependent_package|
|
340
|
+
"#{binary_base_dir(dependent_package)}/share"
|
341
|
+
end
|
342
|
+
common_make_args << "XDG_DATA_DIRS=#{data_dirs.join(File::PATH_SEPARATOR)}"
|
343
|
+
end
|
344
|
+
|
345
|
+
def use_gobject_introspection?(package)
|
346
|
+
return false unless package.windows.use_gobject_introspection?
|
347
|
+
@package.windows.build_dependencies.include?("gobject-introspection")
|
348
|
+
end
|
349
|
+
end
|
350
|
+
end
|
351
|
+
end
|