[dpdk-dev] [PATCH v2] devtools: add test script for meson builds

Thomas Monjalon thomas at monjalon.net
Mon May 28 12:26:24 CEST 2018


28/05/2018 11:33, Bruce Richardson:
> On Sat, May 26, 2018 at 11:32:53AM +0200, Thomas Monjalon wrote:
> > 25/05/2018 17:18, Bruce Richardson:
> > > On Fri, May 25, 2018 at 04:51:58PM +0200, Thomas Monjalon wrote:
> > > > +cd $(dirname $(readlink -m $0))/..
> > > > +
> > > I don't think we should force the builds to be always put into the base
> > > directory. Instead of using cd, I think we should instead capture the base
> > > directory path and pass that to meson.
> > 
> > OK to not force the directory.
> > You want to build in the current directory?
> > If yes, we can just remove this "cd" and no need to pass a base directory
> > to meson.
> 
> We would need to pass the base to meson, because otherwise meson assumes
> the top-level meson.build file is in the current directory, i.e. calling
> "meson build-dir" is the same as "meson . build-dir". If we want to allow
> using this script from other places on filesystem, we need to either "cd"
> to the base dir as you do now, or else explicitly pass in the basedir. The
> latter I think is a better option as it would allow building from any
> location on the filesystem.

I agree.

I don't understand the meson syntax:
	meson [ options ] [ source directory ] [ build directory ]
If there is only one argument, it is the build directory?

I could send a v5 to add the source directory in the meson command.
It would be:
	srcdir=$(dirname $(readlink -m $0))/..
	$MESON $options $srcdir $builddir


> > > > +load_config ()
> > > > +{
> > > > +	reset_env
> > > > +	. $(dirname $(readlink -e $0))/load-devel-config
> > > > +	MESON=${MESON:-meson}
> > > > +}
> > > Why does this need to be done each time?
> > 
> > Because the config could be different for each build (see above).
> > 
> How would it be different, it's the same command called with the same
> environment each time?

No, the idea is to adapt the environment to the build target.
As an example, the dependencies can be different for 32-bit and 64-bit.





More information about the dev mailing list