File: wscript

package info (click to toggle)
hamster-time-tracker 3.0.3-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,340 kB
  • sloc: python: 35,215; xml: 30; makefile: 29; sh: 23
file content (107 lines) | stat: -rw-r--r-- 3,558 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
97
98
99
100
101
102
103
104
105
106
107
# -*- python -*-


import subprocess

from waflib import Utils

# Reuse code from hamster to figure out the version number to use
process = subprocess.run(["python3", "src/hamster/version.py"], check=True, stdout=subprocess.PIPE, text=True)
VERSION = process.stdout
APPNAME = 'hamster'

top = '.'
out = 'build'


def options(ctx):
    ctx.load('gnu_dirs')

    # the waf default value is /usr/local, which causes issues (e.g. #309)
    # ctx.parser.set_defaults(prefix='/usr') did not update the help string,
    # hence need to replace the whole option
    ctx.parser.remove_option('--prefix')
    default_prefix = '/usr'
    
    ctx.add_option('--prefix', dest='prefix', default=default_prefix,
                   help='installation prefix [default: {}]'.format(default_prefix))
    
    ctx.add_option('--skip-gsettings', dest='skip_gsettings', action='store_true',
                   help='skip gsettings schemas build and installation (for packagers)')
    
    ctx.add_option('--skip-icon-cache-update', dest='skip_icon_cache_update', action='store_true',
                   help='skip icon cache update (for packagers)')


def configure(ctx):
    ctx.load('gnu_dirs')  # for DATADIR
    
    if not ctx.options.skip_gsettings:
        ctx.load('glib2')  # for GSettings support
    
    ctx.load('python')
    ctx.check_python_version(minver=(3,4,0))

    ctx.load('intltool')

    ctx.env.ENABLE_NLS = 1
    ctx.env.HAVE_BIND_TEXTDOMAIN_CODESET = 1

    ctx.env.VERSION = VERSION
    ctx.env.GETTEXT_PACKAGE = "hamster"
    ctx.env.PACKAGE = "hamster"
    
    ctx.recurse("help")
    
    # options are tied to a specific ./waf invocation (one terminal line),
    # and woud have to be given again at any other ./waf invocation
    # that is trouble when one wants to ./waf uninstall much later;
    # it can be hard to remember the exact options used at the install step.
    # So from now on, options have to be given at the configure step only.
    # copy the options to the persistent env:
    for name in ('prefix', 'skip_gsettings', 'skip_icon_cache_update'):
        value = getattr(ctx.options, name)
        setattr(ctx.env, name, value)
   

def build(ctx):
    ctx.install_as('${LIBEXECDIR}/hamster/hamster-service', "src/hamster-service.py", chmod=Utils.O755)
    ctx.install_as('${LIBEXECDIR}/hamster/hamster-windows-service', "src/hamster-windows-service.py", chmod=Utils.O755)
    ctx.install_as('${BINDIR}/hamster', "src/hamster-cli.py", chmod=Utils.O755)


    ctx.install_files('${PREFIX}/share/bash-completion/completions',
                      'src/hamster.bash')


    ctx(features='py',
        source=ctx.path.ant_glob('src/hamster/**/*.py'),
        install_from='src')

    # set correct flags in defs.py
    ctx(features="subst",
        source="src/hamster/defs.py.in",
        target="src/hamster/defs.py",
        install_path="${PYTHONDIR}/hamster"
        )

    ctx(features="subst",
        source= "org.gnome.Hamster.service.in",
        target= "org.gnome.Hamster.service",
        install_path="${DATADIR}/dbus-1/services",
        )

    ctx(features="subst",
        source= "org.gnome.Hamster.GUI.service.in",
        target= "org.gnome.Hamster.GUI.service",
        install_path="${DATADIR}/dbus-1/services",
        )

    ctx(features="subst",
        source= "org.gnome.Hamster.WindowServer.service.in",
        target= "org.gnome.Hamster.WindowServer.service",
        install_path="${DATADIR}/dbus-1/services",
        )

    # look for wscript into further directories
    ctx.recurse("po data help")