kumquat-buildroot/docs/manual
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
..
adding-board-support.txt doc/manual: fix formatting slightly 2023-04-16 14:33:42 +02:00
adding-packages-asciidoc.txt package/doc-asciidoc: allow docs to request a specific TOC depth 2023-04-10 21:49:22 +02:00
adding-packages-autotools.txt manual: drop LIBFOO_GETTEXTIZE, add LIBFOO_AUTOPOINT 2023-03-25 21:56:19 +01:00
adding-packages-cargo.txt package/pkg-cargo: allow building in a sub-directory 2022-03-07 22:04:54 +01:00
adding-packages-cmake.txt pkg-cmake: add option to select the Ninja generator 2023-08-06 15:38:00 +02:00
adding-packages-conclusion.txt
adding-packages-directory.txt docs/manual: document flit/pep517 python package infrastructure 2022-05-04 21:47:37 +02:00
adding-packages-generic.txt docs/manual/adding-packages-generic: remove useless carriage return 2022-02-11 10:10:18 +01:00
adding-packages-gettext.txt
adding-packages-golang.txt
adding-packages-hooks.txt manual: add _TARGET_FINALIZE_HOOKS in the list of hooks 2022-06-04 11:30:42 +02:00
adding-packages-kconfig.txt
adding-packages-kernel-module.txt docs/manual: remove override in conditional 2022-03-05 17:27:04 +01:00
adding-packages-linux-kernel-spec-infra.txt
adding-packages-luarocks.txt
adding-packages-meson.txt
adding-packages-perl.txt
adding-packages-python.txt docs/manual: document flit/pep517 python package infrastructure 2022-05-04 21:47:37 +02:00
adding-packages-qmake.txt
adding-packages-rebar.txt
adding-packages-tips.txt
adding-packages-virtual.txt
adding-packages-waf.txt
adding-packages.txt
advanced.txt
appendix.txt
beyond-buildroot.txt
ccache-support.txt docs/manual/ccache-support.txt: document the new BR2_USE_CCACHE variable 2022-07-30 13:45:16 +02:00
common-usage.txt docs/manual: add 'menuconfig' to out-of-tree examples 2023-02-15 22:28:58 +01:00
configure-other-components.txt
configure.txt docs/manual: add section on start script recommendations 2022-02-06 16:35:53 +01:00
contribute.txt docs/manual: check-package before submitting patch 2023-02-06 18:54:18 +01:00
customize-configuration.txt docs/manual: fix configurations listing command 2022-06-22 22:09:26 +02:00
customize-device-permission-tables.txt
customize-directory-structure.txt docs/manual: fixed some spelling mistakes 2022-12-02 20:41:13 +01:00
customize-outside-br.txt
customize-packages.txt
customize-patches.txt
customize-post-image.txt
customize-quick-guide.txt
customize-rootfs.txt
customize-users-tables.txt
customize.txt
debugging-buildroot.txt
developers.txt utils/get-developers: implement a -v action for DEVELOPERS file validation 2022-07-23 16:32:58 +02:00
download-infra.txt
download-location.txt
faq-troubleshooting.txt docs/manual: Remove link to emdebian and replace with debian port page 2022-03-15 22:28:01 +01:00
getting.txt
how-buildroot-works.txt
integration-selinux-support.txt docs/manual: introduce "Integration topics" chapter 2022-07-29 22:44:10 +02:00
integration-systemd.txt docs/manual: add integration section for systemd with dbus 2022-07-29 22:45:11 +02:00
integration.txt docs/manual: add integration section for systemd with dbus 2022-07-29 22:45:11 +02:00
introduction.txt
known-issues.txt Remove support for the NDS32 architecture 2022-06-19 18:30:45 +02:00
legal-notice.txt
make-tips.txt docs/manual: Document Kconfig requirements for uboot 2022-03-07 21:36:03 +01:00
makedev-syntax.txt
makeusers-syntax.txt docs/manual/makeusers-syntax.txt: add caveat for upgrading 2022-05-28 23:43:15 +02:00
manual.mk
manual.txt Cleanup/simplify copyright info 2023-01-14 21:16:07 +01:00
migrating.txt
package-make-target.txt
patch-policy.txt docs/manual: rewrite section for upstream documentation 2023-04-15 19:36:46 +02:00
prerequisite.txt docs/manual/prerequisite.txt: add findutils in dependencies 2022-08-15 22:21:33 +02:00
quickstart.txt
rebuilding-packages.txt
release-engineering.txt
resources.txt docs/manual: fix patchwork URL 2022-07-23 18:57:22 +02:00
using-buildroot-debugger.txt
using-buildroot-development.txt
using-buildroot-toolchain.txt
writing-rules.txt docs/manual: ditch redundant -f 'rm' flag 2023-03-28 21:36:07 +02:00