test/cksum: new test for L3/L4 checksum API
[dpdk.git] / examples / meson.build
index f643ec1..07e6824 100644 (file)
 
 link_whole_libs = []
 if get_option('default_library') == 'static'
-       link_whole_libs = dpdk_static_libraries + dpdk_drivers
+    link_whole_libs = dpdk_static_libraries + dpdk_drivers
 endif
 
-execinfo = cc.find_library('execinfo', required: false)
-
 # list of all example apps. Keep 1-3 per line, in alphabetical order.
 all_examples = [
-       'bbdev_app', 'bond',
-       'cmdline',
-       'distributor', 'ethtool',
-       'eventdev_pipeline',
-       'fips_validation', 'flow_classify',
-       'flow_filtering', 'helloworld',
-       'ioat',
-       'ip_fragmentation', 'ip_pipeline',
-       'ip_reassembly', 'ipsec-secgw',
-       'ipv4_multicast', 'kni',
-       'l2fwd', 'l2fwd-cat', 'l2fwd-event',
-       'l2fwd-crypto', 'l2fwd-jobstats',
-       'l2fwd-keepalive', 'l3fwd',
-       'l3fwd-acl', 'l3fwd-power', 'l3fwd-graph',
-       'link_status_interrupt',
-       'multi_process/client_server_mp/mp_client',
-       'multi_process/client_server_mp/mp_server',
-       'multi_process/hotplug_mp',
-       'multi_process/simple_mp',
-       'multi_process/symmetric_mp',
-       'ntb', 'packet_ordering',
-       'performance-thread/l3fwd-thread',
-       'performance-thread/pthread_shim',
-       'pipeline',
-       'ptpclient',
-       'qos_meter', 'qos_sched',
-       'rxtx_callbacks',
-       'server_node_efd/node',
-       'server_node_efd/server',
-       'service_cores',
-       'skeleton',
-       'timer', 'vdpa',
-       'vhost', 'vhost_crypto',
-       'vhost_blk', 'vm_power_manager',
-       'vm_power_manager/guest_cli',
-       'vmdq', 'vmdq_dcb',
+        'bbdev_app',
+        'bond',
+        'cmdline',
+        'distributor',
+        'ethtool',
+        'eventdev_pipeline',
+        'fips_validation',
+        'flow_classify',
+        'flow_filtering',
+        'helloworld',
+        'ioat',
+        'ip_fragmentation',
+        'ip_pipeline',
+        'ip_reassembly',
+        'ipsec-secgw',
+        'ipv4_multicast',
+        'kni',
+        'l2fwd',
+        'l2fwd-cat',
+        'l2fwd-crypto',
+        'l2fwd-event',
+        'l2fwd-jobstats',
+        'l2fwd-keepalive',
+        'l3fwd',
+        'l3fwd-acl',
+        'l3fwd-graph',
+        'l3fwd-power',
+        'link_status_interrupt',
+        'multi_process/client_server_mp/mp_client',
+        'multi_process/client_server_mp/mp_server',
+        'multi_process/hotplug_mp',
+        'multi_process/simple_mp',
+        'multi_process/symmetric_mp',
+        'ntb',
+        'packet_ordering',
+        'performance-thread/l3fwd-thread',
+        'performance-thread/pthread_shim',
+        'pipeline',
+        'ptpclient',
+        'qos_meter',
+        'qos_sched',
+        'rxtx_callbacks',
+        'server_node_efd/node',
+        'server_node_efd/server',
+        'service_cores',
+        'skeleton',
+        'timer',
+        'vdpa',
+        'vhost',
+        'vhost_blk',
+        'vhost_crypto',
+        'vm_power_manager',
+        'vm_power_manager/guest_cli',
+        'vmdq',
+        'vmdq_dcb',
 ]
 
+# on install, skip copying all meson.build files
+ex_file_excludes = ['meson.build']
+foreach ex:all_examples
+    ex_file_excludes += [ex + '/meson.build']
+endforeach
+
 if get_option('examples') == ''
-       subdir_done()
+    subdir_done()
 endif
 
 if get_option('examples').to_lower() == 'all'
-       examples = all_examples
-       allow_skips = true # don't flag an error if we can't build an app
+    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
+    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'
+    default_cflags += '-Wno-format-truncation'
 endif
 default_ldflags = dpdk_extra_ldflags
-if get_option('default_library') == 'static'
-       default_ldflags += ['-Wl,--export-dynamic']
+if get_option('default_library') == 'static' and not is_windows
+    default_ldflags += ['-Wl,--export-dynamic']
 endif
 
 foreach example: examples
-       name = example.split('/')[-1]
-       build = true
-       sources = []
-       allow_experimental_apis = false
-       cflags = default_cflags
-       ldflags = default_ldflags
+    name = example.split('/')[-1]
+    build = true
+    sources = []
+    allow_experimental_apis = false
+    cflags = default_cflags
+    ldflags = default_ldflags
+
+    ext_deps = []
+    includes = [include_directories(example)]
+    deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
+    subdir(example)
 
-       ext_deps = [execinfo]
-       includes = [include_directories(example)]
-       deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
-       subdir(example)
+    if not build
+        if not allow_skips
+            error('Cannot build requested example "' + name + '"')
+        endif
+        message('Skipping example "' + name + '"')
+        continue
+    endif
 
-       if build
-               dep_objs = ext_deps
-               foreach d:deps
-                       var_name = get_option('default_library') + '_rte_' + d
-                       if not is_variable(var_name)
-                               error('Missing dependency "@0@" for example "@1@"'.format(d, name))
-                       endif
-                       dep_objs += [get_variable(var_name)]
-               endforeach
-               if allow_experimental_apis
-                       cflags += '-DALLOW_EXPERIMENTAL_API'
-               endif
-               executable('dpdk-' + name, sources,
-                       include_directories: includes,
-                       link_whole: link_whole_libs,
-                       link_args: ldflags,
-                       c_args: cflags,
-                       dependencies: dep_objs)
-       elif not allow_skips
-               error('Cannot build requested example "' + name + '"')
-       else
-               message('Skipping example "' + name + '"')
-       endif
+    dep_objs = ext_deps
+    foreach d:deps
+        var_name = get_option('default_library') + '_rte_' + d
+        if not is_variable(var_name)
+            error('Missing dependency "@0@" for example "@1@"'.format(d, name))
+        endif
+        dep_objs += [get_variable(var_name)]
+    endforeach
+    if allow_experimental_apis
+        cflags += '-DALLOW_EXPERIMENTAL_API'
+    endif
+    executable('dpdk-' + name, sources,
+            include_directories: includes,
+            link_whole: link_whole_libs,
+            link_args: ldflags,
+            c_args: cflags,
+            dependencies: dep_objs)
 endforeach