From bc4617433845c39af339ca76afd6f00a706169c5 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Thu, 25 Feb 2021 15:29:01 +0000 Subject: [PATCH] build: enable a developer mode setting To allow support for additional build checks and tests only really relevant for developers, we add support for a developer mode option to DPDK. The default, "auto", value for this enables developer mode if a ".git" folder is found at the root of the source tree - as was the case with the previous "make" build system. There is also support for explicitly enabling or disabling this option using "meson configure" if so desired. Signed-off-by: Bruce Richardson --- doc/guides/contributing/coding_style.rst | 8 ++++++++ meson.build | 14 ++++++++++++++ meson_options.txt | 2 ++ 3 files changed, 24 insertions(+) diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst index 734d1901b2..fdcd21861d 100644 --- a/doc/guides/contributing/coding_style.rst +++ b/doc/guides/contributing/coding_style.rst @@ -798,6 +798,14 @@ Integrating with the Build System DPDK is built using the tools ``meson`` and ``ninja``. +.. note:: + + In order to catch possible issues as soon as possible, + it is recommended that developers build DPDK in "developer mode" to enable additional checks. + By default, this mode is enabled if the build is being done from a git checkout, + but the mode can be manually enabled/disabled using the + ``developer_mode`` meson configuration option. + Therefore all new component additions should include a ``meson.build`` file, and should be added to the component lists in the ``meson.build`` files in the relevant top-level directory: diff --git a/meson.build b/meson.build index 7778e18200..c914bc6298 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,20 @@ project('DPDK', 'C', meson_version: '>= 0.47.1' ) +# check for developer mode +developer_mode = false +if get_option('developer_mode').auto() + if meson.version().version_compare('>=0.53') # fs module available + fs = import('fs') + developer_mode = fs.is_dir('.git') + endif +else + developer_mode = get_option('developer_mode').enabled() +endif +if developer_mode + message('## Building in Developer Mode ##') +endif + # set up some global vars for compiler, platform, configuration, etc. cc = meson.get_compiler('c') dpdk_conf = configuration_data() diff --git a/meson_options.txt b/meson_options.txt index 86bc6c88f6..c53011d246 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,6 +2,8 @@ option('check_includes', type: 'boolean', value: false, description: 'build "chkincs" to verify each header file can compile alone') +option('developer_mode', type: 'feature', + description: 'turn on additional build checks relevant for DPDK developers') option('disable_drivers', type: 'string', value: '', description: 'Comma-separated list of drivers to explicitly disable.') option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-', -- 2.20.1