Package: dan-build
danDo Anything Nowdanis a build system inspired fromGNU make,cmake,meson, ... but only in python.It is mostly designed to be easy to use, it comes with itsvscode extensionavailable on themarketplace.It also provide a packaging system calleddan.io,
that will fetch and build 3rd party libraries.Installdanis available on pip:pipinstalldan-buildFeaturesGeneratorsGenerators are python functions that generates an output:fromdanimportgenerator@generator(output='hello.txt',dependencies=['source.jinja'])defhello(self):env=jinja2.Environment(loader=jinja2.FileSystemLoader(self.source_path))template=env.get_template('source.jinja')print(template.render({'data':'hello'}),file=open(self.output,'w'))They can be async:@generator(output='hello-cpy.txt',dependencies=[hello])asyncdefhello_cpy(self):asserthello.up_to_dateasyncwithaiofiles.open(hello.output,'r')assrc:asyncwithaiofiles.open(self.output,'w')asdst:awaitdst.write(awaitsrc.read())C/CXXLibraries/Executablesfromdan.cxximportLibrary,ExecutableclassMyLib(Library):name='my-lib'sources=['src/my-lib.cpp']public_includes=['include']classMyExe(Executable):name='my-exe'sources=['src/main.cpp']dependencies=[MyLib]Packagesdan.iois the main (default) package source repository (custom repositories are supported by editting~/.dan/repositories.json), documentation comming soon.classMyExe(Executable):name='my-exe'sources=['src/main.cpp']dependencies=['boost:headers@dan.io >= 1.82']dancli usagedanis the main executable to build your project, it can build, test, list targets/test, ...dan--help
Usage:dan[OPTIONS]COMMAND[ARGS]...

Options:--versionShowtheversionandexit.-q,--quietDontprintinformations(errorsonly)-v,--verbosePringdebuginformations-j,--jobsINTEGERMaximumjobs--helpShowthismessageandexit.

Commands:buildBuildtargetscleanCleangeneratedstuffcodeVS-CodespecificcommandsconfigureConfiguredanprojectinstallInstalltargetslsInspectstuffrunRunexecutable(s)scan-toolchainsScansystemtoolchainstestRuntestsuninstallUninstallpreviousinstallationToolchain scandanscan-toolchains[-s<env-script>]Configurationdanconfigure[-B<build_path>][-S<source_path>][-t<toolchain>][-s<setting>=<value>][-o<option>=<value>]Builddanbuild[-B<build_path>][-v][--for-install][TARGETS]...InstallInstall targets marked withinstall = Trueproperty to theinstall.destinationsetting.daninstall[-B<build_path>][TARGETS]...[user|dev]Settings:install.destination: The install destination (default: /usr/local).install.runtime_prefix: Executables installation prefix (default: bin).install.libraries_prefix: Libraries installation prefix (default: lib).install.includes_prefix: Includes installation prefix (default: include).install.data_prefix: Data files installation prefix (default: share).install.project_prefix: !!! NOT USED YET !!! Project prefix (default: None).dan-iocli usagedan-iois a secondary utility to interract with package management system.$dan-io--helpUsage:dan-io[OPTIONS]COMMAND[ARGS]...

Options:--helpShowthismessageandexit.

Commands:lsInspectstuffsearchSearchforNAMEinrepositories$dan-iols--help
Usage:dan-iols[OPTIONS]COMMAND[ARGS]...Inspectstuff

Options:--helpShowthismessageandexit.

Commands:librariesListavailablelibrariesrepositoriesListavailablerepositoriesversionsGetLIBRARY'savailableversionsAuto completionbashandzshcompletions are currently supported:bash:forscriptin~/.local/etc/bash_completion.d/*.sh;dosource${script}doneksh:forscriptin~/.local/etc/ksh_completion.d/*.sh;dosource${script}done