# file      : schema/embedded/buildfile
# license   : not copyrighted - public domain

import libodb = libodb%lib{odb}

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

exe{driver}: {hxx cxx}{* -person-odb} {hxx ixx cxx}{person-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{person-meta}: $libodb

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

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

  $odb --std c++11                     \
       --database $database            \
       --generate-schema               \
       --schema-format embedded        \
       --generate-query                \
       --output-dir $out_base          \
       --table-prefix schema_embedded_ \
       "-I$src_base" $pops             \
       $path($<[0])
}}

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

# Testscript's run-time prerequisites.
#
# Note that while we don't create the schema using the database client
# utility, we still add this prerequisite since database-options.testscript
# requires that.
#
# @@ 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
