On Tue, 2019-04-09 at 10:29 +0100, Bruce Richardson wrote: > Within EAL we had a series of if statements for selecting the EAL > directory > to use. Now that the directory names match those of the OS's they are > for > we can instead just use a generated subdirectory name, shortening the > code. > To avoid strange errors, we still need to check for unsupported OS's, > but > do this check up-front in the config meson.build file. > > Signed-off-by: Bruce Richardson < > bruce.richard...@intel.com > > > --- > config/meson.build | 7 +++++++ > lib/librte_eal/meson.build | 17 ++--------------- > 2 files changed, 9 insertions(+), 15 deletions(-) > > diff --git a/config/meson.build b/config/meson.build > index 483139b10..ce6af2595 100644 > --- a/config/meson.build > +++ b/config/meson.build > @@ -1,6 +1,13 @@ > # SPDX-License-Identifier: BSD-3-Clause > # Copyright(c) 2017-2019 Intel Corporation > > +# check the OS is supported, rather than going any further > +supported_exec_envs = ['freebsd', 'linux', 'windows'] > +exec_env = host_machine.system() > +if not supported_exec_envs.contains(exec_env) > + error('unsupported system type "@0@"'.format(exec_env)) > +endif > + > # set the major version, which might be used by drivers and > libraries > # depending on the configuration options > pver = meson.project_version().split('.') > diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build > index 1863622c0..fa36b20e0 100644 > --- a/lib/librte_eal/meson.build > +++ b/lib/librte_eal/meson.build > @@ -9,21 +9,8 @@ subdir('common') # defines common_sources, > common_objs, etc. > > # Now do OS/exec-env specific settings, including building kernel > modules > # The <exec-env>/eal/meson.build file should define env_sources, > etc. > -if host_machine.system() == 'linux' > - dpdk_conf.set('RTE_EXEC_ENV_LINUX', 1) > - subdir('linux/eal') > - > -elif host_machine.system() == 'freebsd' > - dpdk_conf.set('RTE_EXEC_ENV_FREEBSD', 1) > - subdir('freebsd/eal') > - > -elif host_machine.system() == 'windows' > - dpdk_conf.set('RTE_EXEC_ENV_WINDOWS', 1) > - subdir('windows/eal') > - > -else > - error('unsupported system type > "@0@"'.format(host_machine.system())) > -endif > +dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1) > +subdir(exec_env + '/eal')
Shouldn't this use join_paths() for cross-platform compat? Or does foo/bar work fine these days in Windows? -- Kind regards, Luca Boccassi