# file : bpkg/buildfile # copyright : Copyright (c) 2014-2017 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 cxx}{ archive } \ {hxx cxx}{ auth } \ { cxx}{ bpkg } {hxx ixx cxx}{ bpkg-options } \ {hxx cxx}{ cfg-create } {hxx ixx cxx}{ cfg-create-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 }{ options-types } \ {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-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}{ repository-signing } \ {hxx cxx}{ satisfaction } \ {hxx cxx}{ system-repository } \ {hxx }{ types } \ {hxx cxx}{ types-parsers } \ {hxx cxx}{ utility } \ {hxx }{ version } \ {hxx }{ wrapper-traits } \ $libs hxx{version}: in{version} $src_root/file{manifest} hxx{version}: dist = true # Disable "unknown pragma" warnings. # if ($cxx.id == "msvc") cxx.coptions += /wd4068 else cxx.coptions += -Wno-unknown-pragmas obj{utility}: cxx.poptions += -DBPKG_EXE_SUFFIX='"'$bin.exe.suffix'"' if $cli.configured { # General topics and common options. # cli.cxx{common-options}: cli{common} cli.cxx{configuration-options}: cli{configuration} cli.cxx{bpkg-options}: cli{bpkg} # Help command. # cli.cxx{help-options}: cli{help} # pkg-* command. # cli.cxx{pkg-build-options}: cli{pkg-build} cli.cxx{pkg-clean-options}: cli{pkg-clean} cli.cxx{pkg-configure-options}: cli{pkg-configure} cli.cxx{pkg-disfigure-options}: cli{pkg-disfigure} cli.cxx{pkg-drop-options}: cli{pkg-drop} cli.cxx{pkg-fetch-options}: cli{pkg-fetch} cli.cxx{pkg-install-options}: cli{pkg-install} cli.cxx{pkg-purge-options}: cli{pkg-purge} cli.cxx{pkg-test-options}: cli{pkg-test} cli.cxx{pkg-status-options}: cli{pkg-status} cli.cxx{pkg-uninstall-options}: cli{pkg-uninstall} cli.cxx{pkg-unpack-options}: cli{pkg-unpack} cli.cxx{pkg-update-options}: cli{pkg-update} cli.cxx{pkg-verify-options}: cli{pkg-verify} # cfg-* command. # cli.cxx{cfg-create-options}: cli{cfg-create} # rep-* command. # cli.cxx{rep-add-options}: cli{rep-add} cli.cxx{rep-fetch-options}: cli{rep-fetch} cli.cxx{rep-info-options}: cli{rep-info} cli.cxx{rep-create-options}: cli{rep-create} # Help topics. # {hxx cxx}{repository-signing}: cli{repository-signing} {hxx cxx}{repository-signing}: dist = true # 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. # Avoid generating CLI runtime and empty inline file for help topics. # cli.cxx{repository-signing}: cli.options += --suppress-cli --suppress-inline # Include generated cli files into the distribution. # cli.cxx{*}: dist = true }