Browse Source

Finishing up on a baseline docs

default_compile_flags
vector-of-bool 5 years ago
parent
commit
e8599f0a95
6 changed files with 63 additions and 7 deletions
  1. +2
    -2
      docs/design.rst
  2. +26
    -0
      docs/guide/getting-started.rst
  3. +1
    -1
      docs/guide/index.rst
  4. +2
    -0
      docs/guide/interdeps.rst
  5. +30
    -3
      docs/guide/packages.rst
  6. +2
    -1
      docs/index.rst

docs/guide/design.rst → docs/design.rst View File



.. note:: .. note::
These prescriptions are not as draconian as they may sound upon first These prescriptions are not as draconian as they may sound upon first
reading. Refer to the :doc:`packages` page for more information.
reading. Refer to the :doc:`guide/packages` page for more information.


.. _Pitchfork: https://api.csswg.org/bikeshed/?force=1&url=https://raw.githubusercontent.com/vector-of-bool/pitchfork/develop/data/spec.bs .. _Pitchfork: https://api.csswg.org/bikeshed/?force=1&url=https://raw.githubusercontent.com/vector-of-bool/pitchfork/develop/data/spec.bs


When DDS compiles a library, every source file will be compiled with an When DDS compiles a library, every source file will be compiled with an
identical set of options. Additionally, when DDS compiles a dependency tree, identical set of options. Additionally, when DDS compiles a dependency tree,
every library in that dependency tree will be compiled with an identical set of every library in that dependency tree will be compiled with an identical set of
options. Refer to the :doc:`toolchains` page for more information.
options. Refer to the :doc:`guide/toolchains` page for more information.


Currently, the only exception to this rules is for flags that control compiler Currently, the only exception to this rules is for flags that control compiler
warnings: Dependencies will be compiled without adding any warnings flags, warnings: Dependencies will be compiled without adding any warnings flags,

+ 26
- 0
docs/guide/getting-started.rst View File

Getting Started
###############

Using ``dds`` is extremely simple:

#. Create a new directory. This will be our *package root*.
#. Create a subdirectory named ``src/``.
#. Create a file named ``application.main.cpp``.
#. Add a ``main()`` function to our new source file.
#. Depending on your compiler:
#. If you are using GCC, run the ``dds build -t :gcc`` command from the
package root.
#. If you are using Clang, run the ``dds build -t :clang`` command from the
package root.
#. If you are using Visual C++, run the :code:`dds build -t :msvc` command
from the package root from a developer command prompt.

You will now have a ``_build`` directory, and it will contain a newly compiled
``application``!

Obviously this isn't *all* there is to do with ``dds``. Read on to the next
pages to learn more.

.. note::
You're reading a very early version of these docs. There will be a lot more
here in the future. Watch this space for changes!

+ 1
- 1
docs/guide/index.rst View File

.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2


design
getting-started
packages packages
toolchains toolchains
source-dists source-dists

+ 2
- 0
docs/guide/interdeps.rst View File

package dependencies and library dependencies separately. package dependencies and library dependencies separately.




.. _deps.pkg-deps:

Package Dependencies Package Dependencies
******************** ********************



+ 30
- 3
docs/guide/packages.rst View File

dependencies of a header-only library. dependencies of a header-only library.


In order for ``dds`` to be able to distribute and interlink libraries, a In order for ``dds`` to be able to distribute and interlink libraries, a
``library.dds`` file must be present at the corresponding library root.
``library.dds`` file must be present at the corresponding library root. The
only required key in a ``library.dds`` file is ``Name``:

.. code-block:: yaml

Name: my-library


.. seealso:: More information is discussed on the :ref:`deps.lib-deps` page




.. _pkgs.pkg-root: .. _pkgs.pkg-root:
******** ********


A package is defined by some *package root*, and contains some number of A package is defined by some *package root*, and contains some number of
*libraries*. In order for a package to be exported by ``dds`` it must have a
``package.dds`` file at its package root.
*libraries*.


The primary distribution format of packages that is used by ``dds`` is the The primary distribution format of packages that is used by ``dds`` is the
*source distribution*. Refer to the page :doc:`source-dists`. *source distribution*. Refer to the page :doc:`source-dists`.
symbol. The version of a package must be a semantic version string. Together, symbol. The version of a package must be a semantic version string. Together,
the ``name@version`` string forms the *package ID*, and it must be unique the ``name@version`` string forms the *package ID*, and it must be unique
within a repository or package catalog. within a repository or package catalog.

In order for a package to be exported by ``dds`` it must have a
``package.dds`` file at its package root. Three keys are required to be
present in the ``package.dds`` file: ``Name``, ``Version``, and ``Namespace``:

.. code-block:: yaml

Name: acme-widgets
Version: 6.7.3
Namespace: acme

``Version`` must be a valid semantic version string.

.. note::
The ``Namespace`` key is arbitrary, and not necessarily associated with
and C++ ``namespace``.

.. seealso::
The purpose of ``Namespace``, as well as additional options in this file,
are described in the :ref:`deps.pkg-deps` page

+ 2
- 1
docs/index.rst View File

projects. projects.


If you're completely new and have no idea what the project is about, check out If you're completely new and have no idea what the project is about, check out
the :doc:`guide/design` page to get started.
the :doc:`guide/getting-started` page.


.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2


guide/index guide/index
design




Indices and tables Indices and tables

Loading…
Cancel
Save