newt target
------------

Commands to create, delete, configure and query targets.

Usage:
^^^^^^

.. code-block:: console

        newt target [command] [flags]

Available Commands:
^^^^^^^^^^^^^^^^^^^

.. code-block:: console

        amend       Add, change, or delete values for multi-value target variables
        config      View or populate a target's system configuration settings
        copy        Copy target
        create      Create a target
        delete      Delete target
        dep         View target's dependency graph
        revdep      View target's reverse-dependency graph
        set         Set target configuration variable
        show        View target configuration variables

Global Flags:
^^^^^^^^^^^^^

.. code-block:: console

      -h, --help              Help for newt commands
      -j, --jobs int          Number of concurrent build jobs (default 8)
      -l, --loglevel string   Log level (default "WARN")
      -o, --outfile string    Filename to tee output to
      -q, --quiet             Be quiet; only display error output
      -s, --silent            Be silent; don't output anything
      -v, --verbose           Enable verbose output when executing commands

Description
^^^^^^^^^^^

The target command provides subcommands to create, build, delete, and query targets. The subcommands take one or two ``target-name`` arguments.

=============   =========================================================================================================================
Sub-command     Explanation
=============   =========================================================================================================================
amend           The amend command allows you to add, change, or delete values for multi-value target variables that you
                have set with the ``newt target set`` command. The format of the amend command is:

                ``newt target amend <target-name> <var-name=var-value> [var-name=var-value...]``

                Specify the ``-d`` flag to delete values.

                The following multi-value variables can be amended: ``aflags``, ``cflags``, ``lflags``, ``syscfg``.

                The ``var-value`` format depends on the ``var-name`` as follows:

                ``aflags``, ``cflags``, ``lflags``:
                  A string of flags, with each flag separated by a space. These variables are saved in the target's ``pkg.yml`` file.

                ``syscfg``:
                  The ``syscfg`` variable allows you to assign values to configuration settings in your target's ``syscfg.yml`` file.

                  The format is ``syscfg=setting-name1=setting-value1[:setting-name2=setting-value2...]``, where ``setting-name1`` is a
                  configuration setting name and ``setting-value1`` is the value to assign to ``setting-name1``. If ``setting-value1``
                  is not specified, the setting is set to value ``1``. You use a ``:`` to delimit each setting when you amend multiple
                  settings.

                  To delete a system configuration setting, you only need to specify the setting name. 
                  For example, ``syscfg=setting-name1:setting-name2``
                  deletes configuration settings named ``setting-name1`` and ``setting-name2``.

config          The config command allows you to view or populate a target's system configuration settings.
                A target's system configuration settings include the settings of all the packages it includes.
                The settings for a package are listed in the package's ``syscfg.yml`` file. The ``config`` command has
                two subcommands: ``show`` and ``init``. The config show <target-name> command displays the system
                configuration setting definitions and values for all the packages that the ``target-name`` target includes.
                The config init <target-name> command populates the target's ``syscfg.yml`` file with the system configuration
                values for all the packages that the ``target-name`` target includes.

copy            The copy <src-target> <dst-target> command creates a new target named ``dst-target`` by cloning the
                ``src-target`` target.

create          The create <target-name> command creates an empty target named ``target-name``. It creates the
                ``targets/target-name`` directory and the skeleton ``pkg.yml`` and ``target.yml`` files in the directory.

delete          The delete <target-name> command deletes the description for the ``target-name`` target. It deletes
                the 'targets/target-name' directory. It does not delete the 'bin/targets/target-name' directory where
                the build artifacts are stored. If you want to delete the build artifacts, run the ``newt clean <target-name>``
                command **before** deleting the target.

dep             The dep <target-name> command displays a dependency tree for the packages that the ``target-name``
                target includes. It shows each package followed by the list of libraries or packages that it
                depends on.

revdep          The revdep <target-name> command displays the reverse dependency tree for the packages that the
                ``target-name`` target includes. It shows each package followed by the list of libraries or packages
                that depend on it.

set             The set <target-name> <var-name=var-value> [var-name=var-value...] command sets variables (attributes)
                for the <target-name> target. The set command overwrites your current variable values.

                The valid ``var-name`` values are: ``app``, ``bsp``, ``loader``, ``build_profile``, ``cflags``,
                ``lflags``, ``aflags``, ``syscfg``.

                The ``var-value`` format depends on the ``var-name`` as follows:

                ``app``, ``bsp``, ``loader``:
                  \@<source-path>, where ``source-path`` is the directory containing the application or bsp source.
                  These variables are stored in the target's target.yml file. For a simulated target, e.g. for software
                  testing purposes, set ``bsp`` to ``@apache-mynewt-core/hw/bsp/native``.

                ``build_profile``:
                  ``optimized`` or ``debug``

                ``aflags``, ``cflags``, ``lflags``:
                  A string of flags, with each flag separated by a space. These variables are saved in the target's ``pkg.yml`` file.

                ``syscfg``:
                  The ``syscfg`` variable allows you to assign values to configuration settings in your target's ``syscfg.yml`` file.

                  The format is ``syscfg=setting-name1=setting-value1[:setting-name2=setting-value2...]``, where ``setting-name1``
                  is a configuration setting name and ``setting-value1`` is the value to assign to ``setting-name1``.
                  If ``setting-value1`` is not specified, the setting is set to value ``1``. You use a ``:`` to delimit
                  each setting when you set multiple settings.

                You can specify ``var-name=`` or ``var-name=""`` to unset a variable value.

                **Warning**: For multi-value variables, the command overrides all existing values. Use
                the ``newt target amend`` command to change or add new values for a multi-value variable after you have
                set the variable value. The multi-value variables are: ``aflags``, ``cflags``, ``lflags``, and ``syscfg``

                To display all the existing values for a target variable (attribute), you can run the ``newt vals <variable-name>``
                command. For example, ``newt vals app`` displays the valid values available for the variable ``app`` for any target.

show            The show [target-name] command shows the values of the variables (attributes) for the ``target-name``
                target. When ``target-name`` is not specified, the command shows the variables for
                all the targets that are defined for your project.

=============   =========================================================================================================================


Examples
^^^^^^^^

+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Sub-command   | Usage                                                   | Explanation                                                                                                                                                                                                                                           |
+===============+=========================================================+=======================================================================================================================================================================================================================================================+
| amend         | ``newt target amend myble``                             | Changes (or adds) the ``CONFIG_NEWTMGR`` variable to value 0 in the ``syscfg.yml`` file and adds the -DTEST flag to ``pkg.cflags`` in the ``pkg.yml`` file for the ``myble`` target. Other syscfg setting values and cflags values are not changed.   |
|               | ``syscfg=CONFIG_NEWTMGR=0 cflags="-DTEST"``             |                                                                                                                                                                                                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| amend         | ``newt target amend myble``                             | Deletes the ``LOG_LEVEL`` and ``CONFIG_NEWTMGR`` settings from the ``syscfg.yml`` file and the -DTEST flag from ``pkg.cflags`` for the ``myble`` target. Other syscfg setting values and cflags values are not changed.                               |
|               | ``-d syscfg=LOG_LEVEL:CONFIG_NEWTMGR cflags="-DTEST"``  |                                                                                                                                                                                                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| config show   | ``newt target config show rb_blinky``                   | Shows the system configuration settings for all the packages that the ``rb_blinky`` target includes.                                                                                                                                                  |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| config init   | ``newt target config init my_blinky``                   | Creates and populates the ``my_blinky`` target's ``syscfg.yml`` file with the system configuration setting values from all the packages that the ``my_blinky`` target includes.                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| copy          | ``newt target copy rb_blinky rb_btshell``               | Creates the ``rb_btshell`` target by cloning the ``rb_blinky`` target.                                                                                                                                                                                |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| create        | ``newt target create my_new_target``                    | Creates the ``my_newt_target`` target. It creates the ``targets/my_new_target`` directory and creates the skeleton ``pkg.yml`` and ``target.yml`` files in the directory.                                                                             |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| delete        | ``newt target delete rb_btshell``                       | Deletes the ``rb_btshell`` target. It deletes the ``targets/rb_btshell`` directory.                                                                                                                                                                   |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| dep           | ``newt target dep myble``                               | Displays the dependency tree of all the package dependencies for the ``myble`` target. It lists each package followed by a list of packages it depends on.                                                                                            |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| revdep        | ``newt target revdep myble``                            | Displays the reverse dependency tree of all the package dependencies for the ``myble`` target. It lists each package followed by a list of packages that depend on it.                                                                                |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| set           | ``newt target set myble``                               | Use ``btshell`` as the application to build for the ``myble`` target.                                                                                                                                                                                 |
|               | ``app=@apache-mynewt-core/apps/btshell``                |                                                                                                                                                                                                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| set           | ``newt target set myble``                               | Set ``pkg.cflags`` variable with ``-DNDEBUG -Werror`` in the ``myble`` target's ``pkg.yml`` file..                                                                                                                                                    |
|               | ``cflags="-DNDEBUG -Werror"``                           |                                                                                                                                                                                                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| set           | ``newt target set myble``                               | Sets the ``syscfg.vals`` variable in the ``myble`` target's ``syscfg.yml`` file with the setting values: LOG_NEWTMGR: 0 and CONFIG_NEWTMGR: 1. CONFIG_NEWTMGR is set to 1 because a value is not specified.                                           |
|               | ``syscfg=LOG_NEWTMGR=0:CONFIG_NEWTMGR``                 |                                                                                                                                                                                                                                                       |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| set           | ``newt target set myble cflags=``                       | Unsets the ``pkg.cflags`` variable in the ``myble`` target's ``pkg.yml`` file.                                                                                                                                                                        |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| show          | ``newt target show myble``                              | Shows all variable settings for the ``myble`` target, i.e. the values that app, bsp, build_profile, cflags, aflags, ldflags, syscfg variables are set to. Note that not all variables have to be set for a target.                                    |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| show          | ``newt target show``                                    | Shows all the variable settings for all the targets defined for the project.                                                                                                                                                                          |
+---------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
