# file : monitor/buildfile # license : MIT; see accompanying LICENSE file import libs = libodb%lib{odb} import libs += libodb-pgsql%lib{odb-pgsql} import libs += libbutl%lib{butl} import libs += libbbot%lib{bbot} include ../libbrep/ include ../mod/ exe{brep-monitor}: {hxx ixx cxx}{* -*-options} \ ../mod/libue{mod} ../libbrep/lib{brep} $libs ## Consumption build ($develop == false). # # Use pregenerated versions in the consumption build. # exe{brep-monitor}: pregenerated/{hxx ixx cxx}{**}: include = (!$develop) if! $develop cxx.poptions =+ "-I($src_base/pregenerated)" # Distribute pregenerated versions only in the consumption build. # pregenerated/{hxx ixx cxx}{*}: dist = (!$develop) # ## ## Development build ($develop == true). # exe{brep-monitor}: {hxx ixx cxx}{monitor-options module-options}: \ include = $develop if $develop import! [metadata] cli = cli%exe{cli} # In the development build distribute regenerated {hxx ixx cxx}{*-options}, # remapping their locations to the paths of the pregenerated versions (which # are only distributed in the consumption build; see above). This way we make # sure that the distributed files are always up-to-date. # # @@ TODO Make it an ad-hoc rule, but note that we need to add some options # specific for monitor.cli and module.cli (see # https://build2.org/release/0.14.0.xhtml#adhoc-rules). # <{hxx ixx cxx}{module-options}>: cli{module} $cli { # Set option prefix to the empty value to handle all unknown request # parameters uniformly with a single catch block. # options = --std c++11 -I $src_root --include-with-brackets \ --include-prefix monitor --guard-prefix MONITOR \ --generate-specifier --cli-namespace brep::cli \ --output-suffix "-options" } % if $develop {{ diag cli ($<[0]) ($<[1]) $options -o $out_base/ $path($<[0]) if diff $src_base/pregenerated/monitor/module-options.hxx $path($>[0]) >- && \ diff $src_base/pregenerated/monitor/module-options.ixx $path($>[1]) >- && \ diff $src_base/pregenerated/monitor/module-options.cxx $path($>[2]) >- exit end cp $path($>[0]) $src_base/pregenerated/monitor/module-options.hxx cp $path($>[1]) $src_base/pregenerated/monitor/module-options.ixx cp $path($>[2]) $src_base/pregenerated/monitor/module-options.cxx }} # ## # Pass the copyright notice extracted from the LICENSE file. # obj{monitor}: cxx.poptions += -DBREP_COPYRIGHT=\"$copyright\" #\ # Generated options parser. # if $cli.configured { cli.cxx{monitor-options}: cli{monitor} cli.cxx{module-options}: cli{module} cli.options += --std c++11 -I $src_root --include-with-brackets \ --include-prefix monitor --guard-prefix MONITOR --generate-specifier \ --cli-namespace brep::cli cli.cxx{monitor-options}: cli.options += \ --page-usage print_ --ansi-color --long-usage cli.cxx{module-options}: cli.options += --suppress-usage --generate-parse # 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) } } #\