summaryrefslogtreecommitdiff
path: root/cli/cli/buildfile
blob: ff562c22f89ad1c3f21af183dc802fe59b2462f7 (plain)
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
# file      : cli/buildfile
# license   : MIT; see accompanying LICENSE file

import libs = libcutl%lib{cutl}

./: exe{cli}: cxx{cli} libue{cli}

# Target metadata, see also --build2-metadata in cli.cxx.
#
exe{cli}:
{
  cli.version  = $version.project_id
  cli.checksum = $version
}

libue{cli}: {hxx ixx txx cxx}{** -cli -version -options -**.test...} \
            {hxx}{version} {hxx ixx cxx}{options}                    \
            $libs

hxx{version}: in{version} $src_root/manifest

# Unit tests.
#
exe{*.test}:
{
  test = true
  install = false
}

for t: cxx{**.test...}
{
  d = $directory($t)
  n = $name($t)...

  ./: $d/exe{$n}: $t $d/{hxx ixx txx}{+$n} $d/testscript{+$n}
  $d/exe{$n}: libue{cli}: bin.whole = false
}

# Build options.
#
# Pass the copyright notice extracted from the LICENSE file.
#
copyright = $process.run_regex(cat $src_root/LICENSE,    \
                               'Copyright \(c\) (.+)\.', \
                               '\1')

obj{cli}: cxx.poptions += -DCLI_COPYRIGHT=\"$copyright\"

# Generated options parsing code.
#
# @@ This will eventually be replaced with an ah hoc recipe.
#
if ($config.cli != [null] && $config.cli != false)
{
  cli.cxx{options}: cli{options}

  cli.options += --include-with-brackets --include-prefix cli \
--guard-prefix CLI --generate-file-scanner --generate-specifier \
--generate-modifier --reserved-name stdout

  cli.cxx{*}:
  {
    # Include the generated cli files into the distribution and don't remove
    # them when cleaning in src (so that clean results in a state identical to
    # distributed).
    #
    dist  = true
    clean = ($src_root != $out_root)

    # We keep the generated code in the repository so copy it back to src
    # in case of a forwarded configuration.
    #
    backlink = overwrite
  }
}