@@ -16,6 +16,23 @@ show_usage() {
16
16
echo " Bundles resources for applications that use Gtk 2 or 3 into an AppDir"
17
17
}
18
18
19
+ get_pkgconf_variable () {
20
+ local variable=" $1 "
21
+ local library=" $2 "
22
+ local default_path=" $3 "
23
+
24
+ path=" $( " $PKG_CONFIG " --variable=" $variable " " $library " ) "
25
+ if [ -n " $path " ]; then
26
+ echo " $path "
27
+ elif [ -n " $default_path " ]; then
28
+ echo " $default_path "
29
+ else
30
+ echo " $0 : there is no '$variable ' variable for '$library ' library." > /dev/stderr
31
+ echo " Please check the '$library .pc' file is present in \$ PKG_CONFIG_PATH (you may need to install the appropriate -dev/-devel package)." > /dev/stderr
32
+ exit 1
33
+ fi
34
+ }
35
+
19
36
copy_tree () {
20
37
local src=(" ${@: 1: $# -1} " )
21
38
local dst=" ${*: $# } "
@@ -120,19 +137,19 @@ export XDG_DATA_DIRS="$APPDIR/usr/share:/usr/share:$XDG_DATA_DIRS" # g_get_syste
120
137
EOF
121
138
122
139
echo " Installing GLib schemas"
123
- glib_schemasdir= " $( " $PKG_CONFIG " --variable= schemasdir gio-2.0 ) "
124
- [ -z " $glib_schemasdir " ] && glib_schemasdir= " /usr/share/glib-2.0/schemas" # Fix for Ubuntu 16.04
140
+ # Note: schemasdir is undefined on Ubuntu 16.04
141
+ glib_schemasdir= " $( get_pkgconf_variable " schemasdir " " gio-2.0 " " /usr/share/glib-2.0/schemas" ) "
125
142
copy_tree " $glib_schemasdir " " $APPDIR /"
126
143
glib-compile-schemas " $APPDIR /$glib_schemasdir "
127
144
cat >> " $HOOKFILE " << EOF
128
145
export GSETTINGS_SCHEMA_DIR="\$ APPDIR/$glib_schemasdir "
129
146
EOF
130
147
131
148
echo " Installing GTK 3.0 modules"
132
- gtk3_exec_prefix=" $( " $PKG_CONFIG " --variable=exec_prefix gtk+-3.0) "
133
- gtk3_libdir=" $( " $PKG_CONFIG " --variable=libdir gtk+-3.0) /gtk-3.0"
134
- gtk3_immodulesdir=" $gtk3_libdir /$( " $PKG_CONFIG " --variable=gtk_binary_version gtk+-3.0) /immodules"
135
- gtk3_printbackendsdir=" $gtk3_libdir /$( " $PKG_CONFIG " --variable=gtk_binary_version gtk+-3.0) /printbackends"
149
+ gtk3_exec_prefix=" $( get_pkgconf_variable " exec_prefix " " gtk+-3.0" ) "
150
+ gtk3_libdir=" $( get_pkgconf_variable " libdir " " gtk+-3.0" ) /gtk-3.0"
151
+ gtk3_immodulesdir=" $gtk3_libdir /$( get_pkgconf_variable " gtk_binary_version " " gtk+-3.0" ) /immodules"
152
+ gtk3_printbackendsdir=" $gtk3_libdir /$( get_pkgconf_variable " gtk_binary_version " " gtk+-3.0" ) /printbackends"
136
153
gtk3_immodules_cache_file=" $( dirname " $gtk3_immodulesdir " ) /immodules.cache"
137
154
gtk3_immodules_query=" $( search_tool " gtk-query-immodules-3.0" " libgtk-3-0" ) "
138
155
copy_tree " $gtk3_libdir " " $APPDIR /"
@@ -154,10 +171,10 @@ if [ ! -f "$APPDIR/$gtk3_immodules_cache_file" ]; then
154
171
fi
155
172
156
173
echo " Installing GDK PixBufs"
157
- gdk_libdir=" $( " $PKG_CONFIG " --variable=libdir gdk-pixbuf-2.0) "
158
- gdk_pixbuf_binarydir=" $( " $PKG_CONFIG " --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) "
159
- gdk_pixbuf_cache_file=" $( " $PKG_CONFIG " --variable=gdk_pixbuf_cache_file gdk-pixbuf-2.0) "
160
- gdk_pixbuf_moduledir=" $( " $PKG_CONFIG " --variable=gdk_pixbuf_moduledir gdk-pixbuf-2.0) "
174
+ gdk_libdir=" $( get_pkgconf_variable " libdir " " gdk-pixbuf-2.0" ) "
175
+ gdk_pixbuf_binarydir=" $( get_pkgconf_variable " gdk_pixbuf_binarydir " " gdk-pixbuf-2.0" ) "
176
+ gdk_pixbuf_cache_file=" $( get_pkgconf_variable " gdk_pixbuf_cache_file " " gdk-pixbuf-2.0" ) "
177
+ gdk_pixbuf_moduledir=" $( get_pkgconf_variable " gdk_pixbuf_moduledir " " gdk-pixbuf-2.0" ) "
161
178
# Note: gdk_pixbuf_query_loaders variable is not defined on some systems
162
179
gdk_pixbuf_query=" $( search_tool " gdk-pixbuf-query-loaders" " gdk-pixbuf-2.0" ) "
163
180
copy_tree " $gdk_pixbuf_binarydir " " $APPDIR /"
@@ -177,12 +194,12 @@ if [ ! -f "$APPDIR/$gdk_pixbuf_cache_file" ]; then
177
194
fi
178
195
179
196
echo " Copying more libraries"
180
- gobject_libdir=" $( " $PKG_CONFIG " --variable=libdir gobject-2.0) "
181
- gio_libdir=" $( " $PKG_CONFIG " --variable=libdir gio-2.0) "
182
- librsvg_libdir=" $( " $PKG_CONFIG " --variable=libdir librsvg-2.0) "
183
- pango_libdir=" $( " $PKG_CONFIG " --variable=libdir pango) "
184
- pangocairo_libdir=" $( " $PKG_CONFIG " --variable=libdir pangocairo) "
185
- pangoft2_libdir=" $( " $PKG_CONFIG " --variable=libdir pangoft2) "
197
+ gobject_libdir=" $( get_pkgconf_variable " libdir " " gobject-2.0" ) "
198
+ gio_libdir=" $( get_pkgconf_variable " libdir " " gio-2.0" ) "
199
+ librsvg_libdir=" $( get_pkgconf_variable " libdir " " librsvg-2.0" ) "
200
+ pango_libdir=" $( get_pkgconf_variable " libdir " " pango" ) "
201
+ pangocairo_libdir=" $( get_pkgconf_variable " libdir " " pangocairo" ) "
202
+ pangoft2_libdir=" $( get_pkgconf_variable " libdir " " pangoft2" ) "
186
203
FIND_ARRAY=(
187
204
" $gdk_libdir " " libgdk_pixbuf-*.so*"
188
205
" $gobject_libdir " " libgobject-*.so*"
0 commit comments