# file : bpkg/buildfile # copyright : Copyright (c) 2014-2015 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file import libs = libbpkg%lib{bpkg} import libs += libbutl%lib{butl} import libs += libodb%lib{odb} import libs += libodb-sqlite%lib{odb-sqlite} exe{bpkg}: \ {hxx }{ bpkg-version } \ { cxx}{ bpkg } {hxx ixx cxx}{ bpkg-options } \ {hxx cxx}{ build } {hxx ixx cxx}{ build-options } \ {hxx cxx}{ cfg-create } {hxx ixx cxx}{ cfg-create-options } \ {hxx ixx cxx}{ common-options } \ {hxx ixx cxx}{ configuration-options } \ {hxx cxx}{ database } \ {hxx cxx}{ diagnostics } \ {hxx cxx}{ drop } {hxx ixx cxx}{ drop-options } \ {hxx cxx}{ fetch } \ {hxx }{ forward } \ {hxx cxx}{ help } {hxx ixx cxx}{ help-options } \ {hxx cxx}{ manifest-utility } \ {hxx ixx cxx}{ package } \ {hxx ixx cxx}{ package-odb } file{ package.xml } \ {hxx }{ pkg-clean } {hxx ixx cxx}{ pkg-clean-options } \ {hxx cxx}{ pkg-command } \ {hxx cxx}{ pkg-configure } {hxx ixx cxx}{ pkg-configure-options } \ {hxx cxx}{ pkg-disfigure } {hxx ixx cxx}{ pkg-disfigure-options } \ {hxx cxx}{ pkg-fetch } {hxx ixx cxx}{ pkg-fetch-options } \ {hxx cxx}{ pkg-purge } {hxx ixx cxx}{ pkg-purge-options } \ {hxx cxx}{ pkg-status } {hxx ixx cxx}{ pkg-status-options } \ {hxx cxx}{ pkg-unpack } {hxx ixx cxx}{ pkg-unpack-options } \ {hxx }{ pkg-update } {hxx ixx cxx}{ pkg-update-options } \ {hxx cxx}{ pkg-verify } {hxx ixx cxx}{ pkg-verify-options } \ {hxx cxx}{ rep-add } {hxx ixx cxx}{ rep-add-options } \ {hxx cxx}{ rep-create } {hxx ixx cxx}{ rep-create-options } \ {hxx cxx}{ rep-fetch } {hxx ixx cxx}{ rep-fetch-options } \ {hxx cxx}{ rep-info } {hxx ixx cxx}{ rep-info-options } \ {hxx cxx}{ satisfaction } \ {hxx }{ types } \ {hxx cxx}{ types-parsers } \ {hxx cxx}{ utility } \ {hxx }{ wrapper-traits } \ $libs # Load the cli module but only if it's available. This way a distribution # that includes pre-generated files can be built without installing cli. # This is also the reason why above we explicitly spelled out individual # source files instead of using the cli.cxx{} group (it won't be there # unless the module is loaded). # using? cli if! $cli.loaded { define cli: file cli{*}: extension = cli } {hxx ixx cxx}{common-options}: cli{common-options} {hxx ixx cxx}{configuration-options}: cli{configuration-options} {hxx ixx cxx}{bpkg-options}: cli{bpkg-options} # High-level commands. # {hxx ixx cxx}{help-options}: cli{help-options} {hxx ixx cxx}{build-options}: cli{build-options} {hxx ixx cxx}{drop-options}: cli{drop-options} # pkg-* command. # {hxx ixx cxx}{pkg-status-options}: cli{pkg-status-options} {hxx ixx cxx}{pkg-fetch-options}: cli{pkg-fetch-options} {hxx ixx cxx}{pkg-unpack-options}: cli{pkg-unpack-options} {hxx ixx cxx}{pkg-purge-options}: cli{pkg-purge-options} {hxx ixx cxx}{pkg-configure-options}: cli{pkg-configure-options} {hxx ixx cxx}{pkg-disfigure-options}: cli{pkg-disfigure-options} {hxx ixx cxx}{pkg-update-options}: cli{pkg-update-options} {hxx ixx cxx}{pkg-clean-options}: cli{pkg-clean-options} {hxx ixx cxx}{pkg-verify-options}: cli{pkg-verify-options} # cfg-* command. # {hxx ixx cxx}{cfg-create-options}: cli{cfg-create-options} # rep-* command. # {hxx ixx cxx}{rep-add-options}: cli{rep-add-options} {hxx ixx cxx}{rep-fetch-options}: cli{rep-fetch-options} {hxx ixx cxx}{rep-info-options}: cli{rep-info-options} {hxx ixx cxx}{rep-create-options}: cli{rep-create-options} # Option length must be the same to get commands/topics/options aligned. # cli.options += -I $src_root --include-with-brackets --include-prefix bpkg \ --guard-prefix BPKG --cxx-prologue "#include " \ --cli-namespace bpkg::cli --generate-file-scanner --generate-specifier \ --generate-parse --ansi-color --page-usage 'bpkg::print_$name$_' \ --include-base-last --long-usage --option-length 20 cli.cxx{common-options}: cli.options += --short-usage # Both short and long. cli.cxx{bpkg-options}: cli.options += --suppress-undocumented # --help, etc. # Include generated cli files into the distribution. # hxx{*-options}: dist = true ixx{*-options}: dist = true cxx{*-options}: dist = true