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
|
#! /usr/bin/env python
import os
from waflib import Options, Utils, Logs
def options(opt):
opt.add_option('--no-update-mime',
action='store_true',
default=False,
help='Do not update mime and desktop databases [Default:Update]')
opt.add_option('--no-update-icon-cache',
action='store_true',
default=False,
help='Do not update icon cache [Default:Update]')
def configure(conf):
if not Options.options.no_update_mime:
conf.env["AUXDATA_MIME"] = 1
if not Options.options.no_update_icon_cache:
conf.env["UPDATE_ICON_CACHE"] = 1
def build(bld):
# merge translations into the .desktop file
# and set it up to be installed
def install_desktop_file(desktop_subst_file):
return bld(
features="intltool_in",
podir="../po",
flags = ("-d", "-q", "-u", "-c"),
source = desktop_subst_file + ".in",
target = desktop_subst_file,
install_path = "${DATADIR}/applications",
chmod = 0o755,
)
k_desktop = install_desktop_file("kupfer.desktop")
x_desktop = install_desktop_file("kupfer-exec.desktop")
## install kupfer.desktop as a Thunar sendto object
kd_install = os.path.join(
Utils.subst_vars(k_desktop.install_path, bld.env), "kupfer.desktop")
symlink_location = \
Utils.subst_vars("${DATADIR}/Thunar/sendto/kupfer.desktop", bld.env)
symlink_target = \
os.path.relpath(kd_install, os.path.dirname(symlink_location))
bld.symlink_as(symlink_location, symlink_target)
## install mimetype descriptions
mimetypes_file = "kupfer-mimetypes.xml"
bld(
features="intltool_in",
podir="../po",
flags = ("-x", "-q", "-u", "-c"),
source = mimetypes_file + ".in",
target = mimetypes_file,
install_path = "${DATADIR}/mime/packages/",
)
def update_mime(bld):
Logs.pprint('GREEN',"Updating mime database")
bld.exec_command(["update-mime-database",
Utils.subst_vars("${DATADIR}/mime", bld.env)])
bld.exec_command(["update-desktop-database",
Utils.subst_vars("${DATADIR}/applications", bld.env)])
if bld.is_install and bld.env["AUXDATA_MIME"]:
bld.add_post_fun(update_mime)
## install kupfer.svg icon
icons_inst = bld.install_files("${DATADIR}/icons/hicolor/scalable/apps",
"kupfer.svg")
def update_icon_cache(bld):
icon_dir = Utils.subst_vars('${DATADIR}/icons/hicolor', bld.env)
if not Options.options.destdir:
Logs.pprint('GREEN',"Updating Gtk icon cache.")
command='gtk-update-icon-cache -q -f -t %s' % icon_dir
bld.exec_command(command)
else:
Logs.pprint('YELLOW','Icon cache not updated. After install, run this:')
Logs.pprint('YELLOW','gtk-update-icon-cache -q -f -t %s'%icon_dir)
if icons_inst and bld.is_install and bld.env["UPDATE_ICON_CACHE"]:
bld.add_post_fun(update_icon_cache)
|