summaryrefslogtreecommitdiff
path: root/odb-examples/qt/buildfile
blob: 49085ec2885ef4fd50ccc6e158db9e91f2c87f43 (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      : qt/buildfile
# license   : GNU GPL v2; see accompanying LICENSE file

if ($build.meta_operation != 'dist')
{
  assert ($qt) \
    "Qt version should be configured for this example via config.odb_examples.qt variable"
}

import meta_libs  = libodb%lib{odb}
import meta_libs += libodb-qt%lib{odb-qt}
import meta_libs += "libQt$(qt_ver)Core"%lib{"Qt$(qt_ver)Core"}

import libs = libodb-$database%lib{odb-$database}

exe{driver}: {hxx cxx}{* -employee-odb} {hxx ixx cxx}{employee-odb} testscript

# The metadata library target which we use to extract the poptions variable
# value for specifying the preprocessor options (-I, etc) on the ODB compiler
# command line.
#
libue{employee-meta}: $meta_libs

exe{driver}: libue{employee-meta} $libs

<{hxx ixx cxx}{employee-odb}>: hxx{employee} libue{employee-meta} $odb
{{
  pops = $cxx.lib_poptions($<[1])
  depdb hash $pops

  depdb dyndep --dyn-target --target-what 'generated schema' --format lines \
  -- echo ($sqlite ? '' : "$out_base/employee.sql")

  $odb --std ($qt_ver == 5 ? c++11 : c++17) \
       --database $database                 \
       --profile qt                         \
       --generate-schema                    \
       --generate-query                     \
       --generate-session                   \
       --output-dir $out_base               \
       --table-prefix qt_                   \
       "-I$src_base" $pops                  \
       $path($<[0])
}}

cxx.poptions =+ "-I$out_base" "-I$src_base" -DDATABASE_$ucase($database)

# Testscript's run-time prerequisites.
#
# @@ BUILD2: Eventually we should be able to mark it as test.input once
#    this is supported for testscript tests.
#
exe{driver}: ../alias{database-client}: include = adhoc

testscript@./: schema = employee