Go to file
Thomas Devoogdt 4cf79d9b71 pkg-cmake: add option to select the Ninja generator
Cmake supports multiple generators. For now, Buildroot only uses the
venerable "GNU Makefile" generator, which generates Makefiles as the
build backend.

Cmake also has support for Ninja as a build backend, and provides the
corresponding generator. Ninja is a small build system with a focus on
speed. It is mainly used with the meson build system, but also cmake has
very good support for it.

Packages that are selecting Ninja (or over time another generator),
should also use the _BUILD_{ENV,OPTS} variables instead of the _MAKE
variables.

No _INSTALL{,_STAGING,_TARGET}_OPTS used so far, so reuse as cmake install opts:

    $ grep '_INSTALL_OPTS' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')
    $ grep '_INSTALL_STAGING_OPTS' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')
    $ grep '_INSTALL_TARGET_OPTS' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')

The _MAKE_{ENV,OPTS} are copied to _BUILD_{ENV,OPTS}, involved packages:

    $ grep '_MAKE_ENV =' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')

    package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
    package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)

    (qt6, webkitgtk, and wpewebkit also match, but already use -Gninja)

    $ grep '_MAKE_OPTS =' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')

    package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
    package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl

Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:

    $ grep '_MAKE =' $(git grep -l -E '\$\(eval \$\((host-)?cmake-package))')

    package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
Reviewed-by: John Keeping <john@metanate.com>
[yann.morin.1998@free.fr:
  - switch to FOO_CMAKE_BACKEND = (make|ninja)
  - use firstword of $(MAKE), not $(BR2_MAKE)
  - explain why we use firstword of $(MAKE)
  - update manual with the three new variables
  - yweak commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-08-06 15:38:00 +02:00
arch arch/Config.in.x86: consolidate Geode CPU targets 2023-08-01 23:16:02 +02:00
board configs/versal_vck190: fix atf build failure 2023-08-01 23:24:28 +02:00
boot boot/barebox: add optional dependencies on host-openssl and host-libusb 2023-07-28 22:40:39 +02:00
configs configs/qemu_ppc64*: remove binutils version from defconfigs 2023-08-04 22:16:16 +02:00
docs pkg-cmake: add option to select the Ninja generator 2023-08-06 15:38:00 +02:00
fs fs/cpio: allow users to provide their own dracut modules 2023-02-06 22:46:35 +01:00
linux {linux, linux-headers}: bump 5.{4, 10, 15}.x / 6.{1, 4}.x series 2023-07-27 23:36:31 +02:00
package pkg-cmake: add option to select the Ninja generator 2023-08-06 15:38:00 +02:00
support support/testing: TestLxc switch to the Arm Bootlin toolchain 2023-08-02 21:18:10 +02:00
system package/systemd: bump linux-headers dependency to 4.14 2023-08-02 21:18:16 +02:00
toolchain toolchain/toolchain-external/toolchain-external-custom: add gcc 13 version selection 2023-07-28 22:04:49 +02:00
utils utils/docker-run: fix running when CWD is not MAIN_DIR 2023-07-31 20:56:57 +02:00
.checkpackageignore package/libarchive: bump version to 3.7.1 2023-08-05 23:59:53 +02:00
.clang-format .clang-format: initial import from Linux 5.15.6 2022-01-01 15:01:13 +01:00
.defconfig
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml .gitlab-ci.yml: update Docker image to use 2023-02-07 18:15:00 +01:00
.shellcheckrc utils/check-package: improve shellcheck reproducibility 2022-07-25 23:52:47 +02:00
CHANGES Update for 2023.08-rc1 2023-08-05 23:03:28 +02:00
Config.in package/sam-ba: drop 32bit host lib requirement 2023-07-30 23:41:44 +02:00
Config.in.legacy package/binutils: drop 2.38.x series 2023-08-01 23:12:01 +02:00
COPYING
DEVELOPERS DEVELOPERS: sort entries of Neal Frager 2023-08-03 21:16:34 +02:00
Makefile Kickoff 2023.11 cycle 2023-08-05 23:57:45 +02:00
Makefile.legacy
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches