nuttx/Documentation/quickstart/compiling_cmake.rst

60 lines
1.6 KiB
ReStructuredText
Raw Normal View History

2023-10-27 11:26:25 +02:00
====================
Compiling with CMake
====================
2023-10-27 11:26:25 +02:00
Initialize Configuration with CMake
===================================
The first step is to initialize NuttX configuration for a given board, based on
a pre-existing configuration. To list all supported configurations you can do:
.. code-block:: console
$ cd nuttx
$ ./tools/configure.sh -L | less
The output is in the format ``<board name>:<board configuration>``. You will see that
generally all boards support the ``nsh`` configuration which is a good starting point
since it enables booting into the interactive command line
:doc:`/applications/nsh/index`.
2023-10-27 11:26:25 +02:00
To choose a configuration you pass the ``<board name>:<board configuration>`` such as:
.. code-block:: console
$ cd nuttx
2023-10-27 11:26:25 +02:00
$ cmake -B build -DBOARD_CONFIG=stm32f4discovery:nsh -GNinja
The ``-B build`` tells what is the build directory.
You can then customize this configuration by using the menu based
configuration system with:
.. code-block:: console
$ cd nuttx
2023-10-27 11:26:25 +02:00
$ cmake --build build -t menuconfig
Modifying the configuration is covered in :doc:`configuring`.
2023-10-27 11:26:25 +02:00
Build NuttX with CMake
======================
We can now build NuttX. To do so, you can simply run:
.. code-block:: console
$ cd nuttx
2023-10-27 11:26:25 +02:00
$ cmake --build build -t menuconfig
The build will complete by generating the binary outputs
2023-10-27 11:26:25 +02:00
inside ``build/nuttx`` directory. Typically this includes the ``nuttx``
ELF file (suitable for debugging using ``gdb``) and a ``nuttx.bin``
file that can be flashed to the board.
To clean the build, you can do:
.. code-block:: console
2023-10-27 11:26:25 +02:00
$ cmake --build build -t clean