examples: install as part of ninja install
[dpdk.git] / examples / meson.build
index 3d15684..1a6134f 100644 (file)
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
+# Copyright(c) 2017-2019 Intel Corporation
 
 driver_libs = []
 if get_option('default_library') == 'static'
@@ -8,25 +8,45 @@ endif
 
 execinfo = cc.find_library('execinfo', required: false)
 
-allow_skips = true # don't flag an error if we can't build an app
+all_examples = run_command('sh', '-c',
+       'cd $MESON_SOURCE_ROOT/$MESON_SUBDIR && for d in * ; do if [ -d $d ] ; then echo $d ; fi ; done'
+       ).stdout().split()
+# install all example code on install - irrespective of whether the example in
+# question is to be built as part of this build or not.
+foreach ex:all_examples
+       install_subdir(ex,
+                       install_dir: get_option('datadir') + '/dpdk/examples',
+                       exclude_files: 'meson.build')
+endforeach
 
 if get_option('examples').to_lower() == 'all'
-       dirs = run_command('sh', '-c',
-               'cd $MESON_SOURCE_ROOT/$MESON_SUBDIR && for d in * ; do if [ -d $d ] ; then echo $d ; fi ; done')
-       examples = dirs.stdout().split()
+       examples = all_examples
+       allow_skips = true # don't flag an error if we can't build an app
 else
        examples = get_option('examples').split(',')
        allow_skips = false # error out if we can't build a requested app
 endif
+default_cflags = machine_args
+if cc.has_argument('-Wno-format-truncation')
+       default_cflags += '-Wno-format-truncation'
+endif
+
+# specify -D_GNU_SOURCE unconditionally
+default_cflags += '-D_GNU_SOURCE'
+
 foreach example: examples
        name = example
        build = true
        sources = []
        allow_experimental_apis = false
-       cflags = machine_args
+       cflags = default_cflags
+
        ext_deps = [execinfo]
        includes = [include_directories(example)]
        deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
+       if is_windows
+               deps = ['eal'] # only supported lib on Windows currently
+       endif
        subdir(example)
 
        if build