aboutsummaryrefslogtreecommitdiff
path: root/mod/buildfile
blob: bd68bd0b506746b17b587cb3af15956fbf42ee1c (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
# file      : mod/buildfile
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

define mod: libs

mod{*}:
{
  bin.lib.prefix = mod_
  backlink = true        # Backlink in forwarded configurations.
  install = libexec/
}

import libs  = libodb%lib{odb}
import libs += libodb-pgsql%lib{odb-pgsql}
import libs += libbutl%lib{butl}
import libs += libbpkg%lib{bpkg}
import libs += libbbot%lib{bbot}

include ../libbrep/
include ../web/

mod{brep}: {hxx ixx txx cxx}{* -options} \
           {hxx ixx     cxx}{   options} \
           ../libbrep/lib{brep} ../web/libus{web} $libs

# Generated options parser.
#
if $cli.configured
{
  cli.cxx{options}: cli{options}

  # Set option prefix to the empty value to handle all unknown request
  # parameters uniformly with a single catch block.
  #
  cli.options += --std c++11 -I $src_root --include-with-brackets  \
--include-prefix mod --guard-prefix MOD --generate-specifier       \
--cxx-prologue "#include <mod/types-parsers.hxx>"                  \
--cli-namespace brep::cli --generate-file-scanner --suppress-usage \
--generate-modifier --generate-description --option-prefix ""

  # 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).
  #
  cli.cxx{*}:
  {
    dist  = true
    clean = ($src_root != $out_root)
  }
}

# Don't install any of the module's headers.
#
{hxx ixx txx}{*}: install = false