examples/power: support meson/ninja build

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>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
David Hunt 2018-10-17 14:05:33 +01:00 committed by Thomas Monjalon
parent ce4a276644
commit e013078857
3 changed files with 90 additions and 4 deletions

View File

@ -199,7 +199,7 @@ see :doc:`compiling`.
The application is located in the ``vm_power_manager`` sub-directory.
To build just the ``vm_power_manager`` application:
To build just the ``vm_power_manager`` application using ``make``:
.. code-block:: console
@ -208,6 +208,22 @@ To build just the ``vm_power_manager`` application:
cd ${RTE_SDK}/examples/vm_power_manager/
make
The resulting binary will be ${RTE_SDK}/build/examples/vm_power_manager
To build just the ``vm_power_manager`` application using ``meson/ninja``:
.. code-block:: console
export RTE_SDK=/path/to/rte_sdk
cd ${RTE_SDK}
meson build
cd build
ninja
meson configure -Dexamples=vm_power_manager
ninja
The resulting binary will be ${RTE_SDK}/build/examples/dpdk-vm_power_manager
Running
~~~~~~~
@ -630,7 +646,7 @@ For compiling and running l3fwd-power, see :doc:`l3_forward_power_man`.
The application is located in the ``guest_cli`` sub-directory under ``vm_power_manager``.
To build just the ``guest_vm_power_manager`` application:
To build just the ``guest_vm_power_manager`` application using ``make``:
.. code-block:: console
@ -639,6 +655,22 @@ To build just the ``guest_vm_power_manager`` application:
cd ${RTE_SDK}/examples/vm_power_manager/guest_cli/
make
The resulting binary will be ${RTE_SDK}/build/examples/guest_cli
To build just the ``vm_power_manager`` application using ``meson/ninja``:
.. code-block:: console
export RTE_SDK=/path/to/rte_sdk
cd ${RTE_SDK}
meson build
cd build
ninja
meson configure -Dexamples=vm_power_manager/guest_cli
ninja
The resulting binary will be ${RTE_SDK}/build/examples/guest_cli
Running
~~~~~~~

View File

@ -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

View File

@ -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