On Mon, Apr 01, 2019 at 01:24:20PM +0200, Thomas Monjalon wrote: > 01/04/2019 12:36, Ali Alnubani: > > This is to fix a build error with meson that is caused > > by using the 'more' command to read the VERSION file. The error: > > > > config/meson.build:10:10: ERROR: String > > '::::::::::::::\n<RTE_SDK_PATH>VERSION\n::::::::::::::\n19' cannot be > > converted to int > > > > The command 'more' prints the file name before the actual > > contents of the file when it's being run without a controlling terminal. > > This could happen in CI environments. > > > > Please refer to: > > https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/text-utils/more.c > > > > The cat command can still be found on Windows if the ports of GNU > > utilities are installed. > > > > Fixes: c04172b5f031 ("build: add single source of DPDK version number") > > Fixes: d320fe56bd51 ("build: use version number from config file") > > > > Signed-off-by: Ali Alnubani <alia...@mellanox.com> > > Acked-by: Thomas Monjalon <tho...@monjalon.net> > > It is fixing a regression on Linux. > I think we should take this fix urgently > and think about Windows in a next step. > > "more" is an interactive command, we should not use it. > As suggested by Ali, we may require an extra dependency on Windows > to get some GNU utilities. Or if no other tools are required, > may we have a meson builtin to read a file? > Should not need to do so. May I suggest using "find_program" function instead of hard-coding the command. That allows a list of programs to be specified and the first one found is used. Unfortunately, on windows the direct equivalent of "cat" is "type" which is a built-in rather than command as far as I can see, so find_program doesn't work for it. However, the following should do:
version: run_command(find_program('cat', 'more'), files('VERSION')).stdout().strip()