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/offload-extensions/default/default.cpp b/offload-extensions/default/default.cpp
index 6a14fdc..9eb2bfe 100644
--- a/offload-extensions/default/default.cpp
+++ b/offload-extensions/default/default.cpp
@@ -7,7 +7,7 @@
{
namespace host
{
-void requestOffload(uint32_t id)
+void requestOffload(uint32_t)
{
throw std::runtime_error("Hostdump offload method not specified");
}
diff --git a/offload-extensions/default/meson.build b/offload-extensions/default/meson.build
new file mode 100644
index 0000000..ca615b2
--- /dev/null
+++ b/offload-extensions/default/meson.build
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: Apache-2.0
+
+phosphor_dump_manager_sources += [
+ 'offload-extensions/default/default.cpp'
+ ]
diff --git a/offload-extensions/meson.build b/offload-extensions/meson.build
new file mode 100644
index 0000000..20b1f3b
--- /dev/null
+++ b/offload-extensions/meson.build
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: Apache-2.0
+
+hostDumpOffloadTransport = get_option('host-dump-offload-transport')
+
+if hostDumpOffloadTransport == 'default'
+ subdir('default')
+elif hostDumpOffloadTransport == 'pldm'
+ subdir('pldm')
+endif
diff --git a/offload-extensions/pldm/meson.build b/offload-extensions/pldm/meson.build
new file mode 100644
index 0000000..d3ae2ac
--- /dev/null
+++ b/offload-extensions/pldm/meson.build
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: Apache-2.0
+
+phosphor_dump_manager_sources += [
+ 'offload-extensions/pldm/pldm_interface.cpp'
+ ]
+
+phosphor_dump_manager_dependency += [ dependency('libpldm') ]