build: Enabled meson build infrastructure
In this commit enabled meson build infrastructure which is taking less
time than autotools to build.
Changes:
- Same default value used for all build time configure option.
- All external library checks are added into meson as well.
- In meson, no need to mention list of files which are not required
to install because, by default nothing will be installed.
- Auto generated files are added into custom target and that will
trigger when some target dependent with that.
- In meson, enabled to treat warning as error so, modified few sources
which are producing un-used variables.
- Fixes made by removing those function parameters identifier alone.
By using meson, can able to see below built improvement time between meson
and autotools.
meson:
- time sh -c 'meson builddir -Dhost-dump-offload-transport=pldm
-Dubifs-workaround=enabled; ninja -C builddir/'
real 0m12.244s
user 0m57.575s
sys 0m7.793s
autotools:
- time sh -c 'autoreconf -i;
./configure ${CONFIGURE_FLAGS} --enable-ubifs-workaround
--with-host-dump-offload-transport=pldm; make'
real 1m16.539s
user 1m2.738s
sys 0m9.645s
TestedBy:
- meson builddir
ninja -C builddir
- meson builddir -Dubifs-workaround=enabled
ninja -C builddir
- meson builddir -Dubifs-workaround=disabled
ninja -C builddir
- meson builddir -Dhost-dump-offload-transport=pldm
ninja -C builddir
- meson builddir -Dhost-dump-offload-transport=pldm \
-Dubifs-workaround=enabled
ninja -C builddir
Note: Need to update openbmc phosphor-debug-collector recipe to use meson
instead autotools, this will be updated once this patch got merged
and also autotools build infrastructure will be removed as well.
Change-Id: Iadf2d3542dc2556377e7b2f91f01b04d5f8d7218
Signed-off-by: Ramesh Iyyar <rameshi1@in.ibm.com>
diff --git a/xyz/openbmc_project/Dump/Internal/Create/meson.build b/xyz/openbmc_project/Dump/Internal/Create/meson.build
new file mode 100644
index 0000000..52294fa
--- /dev/null
+++ b/xyz/openbmc_project/Dump/Internal/Create/meson.build
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: Apache-2.0
+
+sdbuscpp = find_program('sdbus++')
+
+server_hpp = custom_target(
+ 'server.hpp',
+ command : [
+ sdbuscpp, '-r', meson.source_root(),
+ 'interface',
+ 'server-header',
+ 'xyz.openbmc_project.Dump.Internal.Create',
+ ],
+ input : '../Create.interface.yaml',
+ capture : true,
+ output : 'server.hpp',
+ install : true,
+ install_dir: get_option('includedir') / 'xyz/openbmc_project/Dump/Internal/Create'
+ )
+
+server_cpp = custom_target(
+ 'server.cpp',
+ command : [
+ sdbuscpp, '-r', meson.source_root(),
+ 'interface',
+ 'server-cpp',
+ 'xyz.openbmc_project.Dump.Internal.Create'
+ ],
+ input : '../Create.interface.yaml',
+ depends : server_hpp,
+ capture : true,
+ output : 'server.cpp'
+ )