# file : bpkg/buildfile # copyright : Copyright (c) 2014-2016 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file import libs = libbpkg%lib{bpkg} import libs += libbutl%lib{butl} import libs += libodb-sqlite%lib{odb-sqlite} import libs += libodb%lib{odb} import libs += libsqlite3%lib{sqlite3} # @@ For now for static linking. exe{bpkg}: \ {hxx cxx}{ archive } \ {hxx cxx}{ auth } \ {hxx }{ bpkg-version } \ { cxx}{ bpkg } {hxx ixx cxx}{ bpkg-options } \ {hxx cxx}{ cfg-add } {hxx ixx cxx}{ cfg-add-options } \ {hxx cxx}{ cfg-create } {hxx ixx cxx}{ cfg-create-options } \ {hxx cxx}{ cfg-fetch } {hxx ixx cxx}{ cfg-fetch-options } \ {hxx cxx}{ checksum } \ {hxx ixx cxx}{ common-options } \ {hxx ixx cxx}{ configuration-options } \ {hxx cxx}{ database } \ {hxx cxx}{ diagnostics } \ {hxx cxx}{ fetch } \ {hxx }{ forward } \ {hxx cxx}{ help } {hxx ixx cxx}{ help-options } \ {hxx cxx}{ manifest-utility } \ {hxx cxx}{ openssl } \ {hxx ixx cxx}{ package } \ {hxx ixx cxx}{ package-odb } file{ package.xml } \ {hxx cxx}{ pkg-build } {hxx ixx cxx}{ pkg-build-options } \ {hxx }{ pkg-clean } {hxx ixx cxx}{ pkg-clean-options } \ {hxx cxx}{ pkg-drop } {hxx ixx cxx}{ pkg-drop-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 }{ pkg-install } {hxx ixx cxx}{ pkg-install-options } \ {hxx cxx}{ pkg-purge } {hxx ixx cxx}{ pkg-purge-options } \ {hxx cxx}{ pkg-status } {hxx ixx cxx}{ pkg-status-options } \ {hxx }{ pkg-test } {hxx ixx cxx}{ pkg-test-options } \ {hxx }{ pkg-uninstall } {hxx ixx cxx}{ pkg-uninstall-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-create } {hxx ixx cxx}{ rep-create-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} {hxx ixx cxx}{configuration-options}: cli{configuration} {hxx ixx cxx}{bpkg-options}: cli{bpkg} # Help command. # {hxx ixx cxx}{help-options}: cli{help} # pkg-* command. # {hxx ixx cxx}{pkg-build-options}: cli{pkg-build} {hxx ixx cxx}{pkg-clean-options}: cli{pkg-clean} {hxx ixx cxx}{pkg-configure-options}: cli{pkg-configure} {hxx ixx cxx}{pkg-disfigure-options}: cli{pkg-disfigure} {hxx ixx cxx}{pkg-drop-options}: cli{pkg-drop} {hxx ixx cxx}{pkg-fetch-options}: cli{pkg-fetch} {hxx ixx cxx}{pkg-install-options}: cli{pkg-install} {hxx ixx cxx}{pkg-purge-options}: cli{pkg-purge} {hxx ixx cxx}{pkg-test-options}: cli{pkg-test} {hxx ixx cxx}{pkg-status-options}: cli{pkg-status} {hxx ixx cxx}{pkg-uninstall-options}: cli{pkg-uninstall} {hxx ixx cxx}{pkg-unpack-options}: cli{pkg-unpack} {hxx ixx cxx}{pkg-update-options}: cli{pkg-update} {hxx ixx cxx}{pkg-verify-options}: cli{pkg-verify} # cfg-* command. # {hxx ixx cxx}{cfg-create-options}: cli{cfg-create} # rep-* command. # {hxx ixx cxx}{cfg-add-options}: cli{cfg-add} {hxx ixx cxx}{cfg-fetch-options}: cli{cfg-fetch} {hxx ixx cxx}{rep-info-options}: cli{rep-info} {hxx ixx cxx}{rep-create-options}: cli{rep-create} # 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-vector-scanner --generate-file-scanner \ --generate-specifier --generate-parse --page-usage 'bpkg::print_$name$_' \ --ansi-color --include-base-last --option-length 23 cli.cxx{common-options}: cli.options += --short-usage --long-usage # Both. cli.cxx{bpkg-options}: cli.options += --short-usage --suppress-undocumented cli.options += --long-usage # All other pages -- long usage. # Include generated cli files into the distribution. # hxx{*-options}: dist = true ixx{*-options}: dist = true cxx{*-options}: dist = true