Added meson workarounds to build helloworld on windows.
Windows currently only supports kvargs and eal libraries.
This change restricts the build flow to supported libraries
only.

Signed-off-by: Anand Rawat <anand.ra...@intel.com>
Signed-off-by: Pallavi Kadam <pallavi.ka...@intel.com>
Reviewed-by: Jeff Shaw <jeffrey.b.s...@intel.com>
Reviewed-by: Ranjit Menon <ranjit.me...@intel.com>
---
 examples/meson.build              |   6 +-
 lib/librte_eal/common/meson.build | 159 ++++++++++++++++--------------
 lib/meson.build                   |   4 +
 meson.build                       |  33 ++++---
 4 files changed, 113 insertions(+), 89 deletions(-)

diff --git a/examples/meson.build b/examples/meson.build
index af81c762e..107e378e7 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -35,7 +35,11 @@ foreach example: examples
 
        ext_deps = [execinfo]
        includes = [include_directories(example)]
-       deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
+       if host_machine.system() != 'windows'
+               deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
+       else
+               deps = ['eal']
+       endif
        subdir(example)
 
        if build
diff --git a/lib/librte_eal/common/meson.build 
b/lib/librte_eal/common/meson.build
index 5ecae0b1f..05ebd06b6 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -1,91 +1,102 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
+# Copyright(c) 2017-2019 Intel Corporation
 
 eal_inc += include_directories('.', 'include',
                join_paths('include/arch', arch_subdir))
 
 common_objs = []
+common_headers = []
+
 common_sources = files(
-       'eal_common_bus.c',
-       'eal_common_cpuflags.c',
-       'eal_common_class.c',
-       'eal_common_devargs.c',
-       'eal_common_dev.c',
-       'eal_common_errno.c',
-       'eal_common_fbarray.c',
-       'eal_common_hexdump.c',
-       'eal_common_hypervisor.c',
-       'eal_common_launch.c',
-       'eal_common_lcore.c',
-       'eal_common_log.c',
-       'eal_common_memalloc.c',
-       'eal_common_memory.c',
-       'eal_common_memzone.c',
-       'eal_common_options.c',
-       'eal_common_proc.c',
-       'eal_common_string_fns.c',
-       'eal_common_tailqs.c',
-       'eal_common_thread.c',
-       'eal_common_timer.c',
-       'eal_common_uuid.c',
-       'hotplug_mp.c',
-       'malloc_elem.c',
-       'malloc_heap.c',
-       'malloc_mp.c',
-       'rte_keepalive.c',
-       'rte_malloc.c',
-       'rte_option.c',
-       'rte_reciprocal.c',
-       'rte_service.c'
-)
+               'eal_common_errno.c',
+               'eal_common_launch.c',
+               'eal_common_lcore.c',
+               'eal_common_log.c'
+       )
+if host_machine.system() != 'windows'
+       common_sources = files(
+               'eal_common_bus.c',
+               'eal_common_cpuflags.c',
+               'eal_common_class.c',
+               'eal_common_devargs.c',
+               'eal_common_dev.c',
+               'eal_common_fbarray.c',
+               'eal_common_hexdump.c',
+               'eal_common_hypervisor.c',
+               'eal_common_memalloc.c',
+               'eal_common_memory.c',
+               'eal_common_memzone.c',
+               'eal_common_options.c',
+               'eal_common_proc.c',
+               'eal_common_string_fns.c',
+               'eal_common_tailqs.c',
+               'eal_common_thread.c',
+               'eal_common_timer.c',
+               'eal_common_uuid.c',
+               'hotplug_mp.c',
+               'malloc_elem.c',
+               'malloc_heap.c',
+               'malloc_mp.c',
+               'rte_keepalive.c',
+               'rte_malloc.c',
+               'rte_option.c',
+               'rte_reciprocal.c',
+               'rte_service.c'
+       )
+endif
 
 # get architecture specific sources and objs
 eal_common_arch_sources = []
 eal_common_arch_objs = []
-subdir(join_paths('arch', arch_subdir))
+
+common_headers += files(
+               'include/rte_branch_prediction.h',
+               'include/rte_bus.h',
+               'include/rte_common.h',
+               'include/rte_debug.h',
+               'include/rte_dev.h',
+               'include/rte_eal.h',
+               'include/rte_errno.h',
+               'include/rte_launch.h',
+               'include/rte_lcore.h',
+               'include/rte_log.h',
+               'include/rte_memory.h',
+               'include/rte_pci_dev_feature_defs.h',
+               'include/rte_per_lcore.h',
+               'include/rte_string_fns.h'
+       )
+if host_machine.system() != 'windows'
+       subdir(join_paths('arch', arch_subdir))
+endif
 common_sources += eal_common_arch_sources
 common_objs += eal_common_arch_objs
 
-common_headers = files(
-       'include/rte_alarm.h',
-       'include/rte_branch_prediction.h',
-       'include/rte_bus.h',
-       'include/rte_bitmap.h',
-       'include/rte_class.h',
-       'include/rte_common.h',
-       'include/rte_compat.h',
-       'include/rte_debug.h',
-       'include/rte_devargs.h',
-       'include/rte_dev.h',
-       'include/rte_eal.h',
-       'include/rte_eal_memconfig.h',
-       'include/rte_eal_interrupts.h',
-       'include/rte_errno.h',
-       'include/rte_fbarray.h',
-       'include/rte_hexdump.h',
-       'include/rte_hypervisor.h',
-       'include/rte_interrupts.h',
-       'include/rte_keepalive.h',
-       'include/rte_launch.h',
-       'include/rte_lcore.h',
-       'include/rte_log.h',
-       'include/rte_malloc.h',
-       'include/rte_malloc_heap.h',
-       'include/rte_memory.h',
-       'include/rte_memzone.h',
-       'include/rte_option.h',
-       'include/rte_pci_dev_feature_defs.h',
-       'include/rte_pci_dev_features.h',
-       'include/rte_per_lcore.h',
-       'include/rte_random.h',
-       'include/rte_reciprocal.h',
-       'include/rte_service.h',
-       'include/rte_service_component.h',
-       'include/rte_string_fns.h',
-       'include/rte_tailq.h',
-       'include/rte_time.h',
-       'include/rte_uuid.h',
-       'include/rte_version.h')
+common_headers += files(
+               'include/rte_alarm.h',
+               'include/rte_bitmap.h',
+               'include/rte_class.h',
+               'include/rte_compat.h',
+               'include/rte_devargs.h',
+               'include/rte_eal_memconfig.h',
+               'include/rte_eal_interrupts.h',
+               'include/rte_fbarray.h',
+               'include/rte_hexdump.h',
+               'include/rte_hypervisor.h',
+               'include/rte_interrupts.h',
+               'include/rte_keepalive.h',
+               'include/rte_malloc.h',
+               'include/rte_malloc_heap.h',
+               'include/rte_memzone.h',
+               'include/rte_option.h',
+               'include/rte_pci_dev_features.h',
+               'include/rte_random.h',
+               'include/rte_reciprocal.h',
+               'include/rte_service.h',
+               'include/rte_service_component.h',
+               'include/rte_tailq.h',
+               'include/rte_time.h',
+               'include/rte_uuid.h',
+               'include/rte_version.h')
 
 # special case install the generic headers, since they go in a subdir
 generic_headers = files(
diff --git a/lib/meson.build b/lib/meson.build
index 1fe1b4677..8d7711090 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -30,6 +30,10 @@ libraries = [
        # flow_classify lib depends on pkt framework table lib
        'flow_classify', 'bpf', 'telemetry']
 
+if host_machine.system() == 'windows'
+       libraries = ['kvargs','eal'] # override libraries for windows
+endif
+
 default_cflags = machine_args
 if cc.has_argument('-Wno-format-truncation')
        default_cflags += '-Wno-format-truncation'
diff --git a/meson.build b/meson.build
index 797c86c44..856e94c37 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
+# Copyright(c) 2017-2019 Intel Corporation
 
 project('DPDK', 'C',
        version: '19.05.0-rc0',
@@ -36,28 +36,33 @@ eal_pmd_path = join_paths(get_option('prefix'), 
driver_install_path)
 global_inc = include_directories('.', 'config', 
'lib/librte_eal/common/include')
 subdir('config')
 
-# build libs and drivers
+# build libs
 subdir('lib')
-subdir('buildtools')
-subdir('drivers')
 
-# build binaries and installable tools
-subdir('usertools')
-subdir('app')
+if host_machine.system() != 'windows'
+       # build buildtools and drivers
+       subdir('buildtools')
+       subdir('drivers')
 
-# build docs
-subdir('doc')
+       # build binaries and installable tools
+       subdir('usertools')
+       subdir('app')
+       subdir('test')
+
+       # build kernel modules if enabled
+       if get_option('enable_kmods')
+               subdir('kernel')
+       endif
+
+       # build docs
+       subdir('doc')
+endif
 
 # build any examples explicitly requested - useful for developers
 if get_option('examples') != ''
        subdir('examples')
 endif
 
-# build kernel modules if enabled
-if get_option('enable_kmods')
-       subdir('kernel')
-endif
-
 # write the build config
 build_cfg = 'rte_build_config.h'
 configure_file(output: build_cfg,
-- 
2.17.1.windows.2

Reply via email to