aboutsummaryrefslogtreecommitdiff
path: root/odb/buildfile
blob: 298057054dffbf154da30940522cabb8ce2d998b (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
# file      : odb/buildfile
# copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC
# license   : GNU GPL v3; see accompanying LICENSE file

plugin_dir = $config.odb.plugin_dir

define plugin: libs
plugin{*}: bin.lib.prefix = # No lib prefix.

# On Windows we want the plugin (odb.dll) to go into bin/ (default), next to
# the driver (odb.exe) since failed that we won't be able to find libraries we
# depend on.
#
if ($cxx.target.system != 'mingw32')
  plugin{*}: install = $plugin_dir

import libs  = libcutl%lib{cutl}
import libs += libstudxml%lib{studxml}

./: exe{odb} plugin{odb}

exe{odb}: cxx{odb}
exe{odb}: libus{odb}: bin.whole = false

plugin{odb}: libus{odb}

if ($cxx.target.system == 'mingw32')
  plugin{odb}: $plugin_dir/liba{cc1plus.exe.a}

libus{odb}: {hxx ixx txx cxx}{** -odb -options} {hxx ixx cxx}{options} $libs

cxx.poptions += "-I$plugin_dir/include" -DODB_GCC_PLUGIN_DIR
cxx.poptions += -DODB_BUILD2 # @@ TMP while supporting other build systems.

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

# Generated options parser.
#
# @@ TMP: currently generated code is committed to allow building from git.
#
if $cli.configured
{
  cli.cxx{options}: cli{options}

  cli.options += --include-with-brackets --include-prefix odb \
--guard-prefix ODB --generate-file-scanner --generate-specifier \
--generate-modifier --generate-description --suppress-undocumented \
--cxx-prologue '#include <odb/option-parsers.hxx>'

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