@@ -134,7 +134,7 @@ structure layout with minimal differing options. ``dds`` prescribes the | |||
.. note:: | |||
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 | |||
@@ -188,7 +188,7 @@ All Files Compile with the Same Options | |||
When DDS compiles a library, every source file will be compiled with an | |||
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 | |||
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 | |||
warnings: Dependencies will be compiled without adding any warnings flags, |
@@ -0,0 +1,26 @@ | |||
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! |
@@ -6,7 +6,7 @@ User Guide | |||
.. toctree:: | |||
:maxdepth: 2 | |||
design | |||
getting-started | |||
packages | |||
toolchains | |||
source-dists |
@@ -9,6 +9,8 @@ interoperate with other build and packaging tools, we consider the issues of | |||
package dependencies and library dependencies separately. | |||
.. _deps.pkg-deps: | |||
Package Dependencies | |||
******************** | |||
@@ -236,7 +236,15 @@ included in downstream binaries, but it will still generate link rules for the | |||
dependencies of a header-only library. | |||
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: | |||
@@ -260,8 +268,7 @@ Packages | |||
******** | |||
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 | |||
*source distribution*. Refer to the page :doc:`source-dists`. | |||
@@ -270,3 +277,23 @@ Packages are identified by a name/version pair, joined together by an ``@`` | |||
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 | |||
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 |
@@ -9,12 +9,13 @@ learn, but I'm glad you're here! I hope you find ``dds`` useful to you and your | |||
projects. | |||
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:: | |||
:maxdepth: 2 | |||
guide/index | |||
design | |||
Indices and tables |