Source Distributions¶
A source distribution is dds
’s primary format for consuming and
distributing packages. A source distribution, in essence, is a
package root directory that contains only the files
necessary for dds
to reproduce the full build of all libraries in the
package. The source distribution retains the directory structure of every
source root of the original package, and thus retains
the header structure thereof. In this way, the #include
directives to use
a library in a source distribution are identical to if the libraries therein
were directly part of the consuming project.
Generating a Source Distribution¶
Generating a source distribution from a project directory is done with the
sdist
subcommand:
> dds sdist create
The above command can be executed within any package root, and the result will
be a new directory that reproduces the package’s filesystem structure, but
only maintaining the files that are necessary for dds
to reproduce the
build of that package.
The --project=<dir>
flag can be provided to override the directory that
dds
will use as the package root. The default is the working directory of
the project.
The --out=<path>
flag can be provided to override the destination path of
the resulting source distribution. The path should not name an existing file or
directory. By default, dds
will generate a source distribution in the
working directory with the name project.dsd/
(The output is itself a
directory, not an archive). If the --replace
flag is provided, then dds
will overwrite the destination if it names an existing file or directory.