[v3,6/8] examples/power: add meson/ninja build support
Checks
Commit Message
Add meson.build in vm_power_manager and the guest_cli subdirectory.
Building can be achieved by going to the build directory, and using
meson configure -Dexamples=vm_power_manager,vm_power_manager/guest_cli
Then, when ninja is invoked, it will build dpdk-vm_power_manger and
dpdk-guest_cli
Work still needs to be done on the meson build system to handles the case
where the target list of example apps is defined as 'all'. That will come
in a future patch.
Signed-off-by: David Hunt <david.hunt@intel.com>
---
.../vm_power_manager/guest_cli/meson.build | 21 +++++++++++
examples/vm_power_manager/meson.build | 37 ++++++++++++++++++-
2 files changed, 56 insertions(+), 2 deletions(-)
create mode 100644 examples/vm_power_manager/guest_cli/meson.build
Comments
On Fri, Sep 14, 2018 at 02:54:04PM +0100, David Hunt wrote:
> Add meson.build in vm_power_manager and the guest_cli subdirectory.
> Building can be achieved by going to the build directory, and using
>
> meson configure -Dexamples=vm_power_manager,vm_power_manager/guest_cli
>
> Then, when ninja is invoked, it will build dpdk-vm_power_manger and
> dpdk-guest_cli
>
> Work still needs to be done on the meson build system to handles the case
> where the target list of example apps is defined as 'all'. That will come
> in a future patch.
>
> Signed-off-by: David Hunt <david.hunt@intel.com>
> ---
The examples=all limitation only applies to the guest_cli app, because it's
in a subdirectory. That should be possible to manage in a later changeset,
but this is good for now, as it still has the main app buildable with the
test-meson-builds script.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
new file mode 100644
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+# meson file, for building this example as part of a main DPDK build.
+#
+# To build this example as a standalone application with an already-installed
+# DPDK instance, use 'make'
+
+# Setting the name here because the default name will conflict with the
+# vm_power_manager app because of the way the directories are parsed.
+name = 'guest_cli'
+
+deps += ['power']
+
+sources = files(
+ 'main.c', 'parse.c', 'vm_power_cli_guest.c'
+)
+
+opt_dep = cc.find_library('virt', required : false)
+build = opt_dep.found()
+ext_deps += opt_dep
@@ -6,5 +6,38 @@
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
-# Example app currently unsupported by meson build
-build = false
+if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD')
+ deps += ['pmd_bnxt']
+endif
+
+if dpdk_conf.has('RTE_LIBRTE_I40E_PMD')
+ deps += ['pmd_i40e']
+endif
+
+if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
+ deps += ['pmd_ixgbe']
+endif
+
+deps += ['power']
+
+
+sources = files(
+ 'channel_manager.c', 'channel_monitor.c', 'main.c', 'parse.c', 'power_manager.c', 'vm_power_cli.c'
+)
+
+# If we're on X86, pull in the x86 code for the branch monitor algo.
+if dpdk_conf.has('RTE_ARCH_X86_64')
+ sources += files('oob_monitor_x86.c')
+else
+ sources += files('oob_monitor_nop.c')
+endif
+
+opt_dep = cc.find_library('virt', required : false)
+build = opt_dep.found()
+ext_deps += opt_dep
+
+opt_dep = dependency('jansson', required : false)
+if opt_dep.found()
+ ext_deps += opt_dep
+ cflags += '-DUSE_JANSSON'
+endif