From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 597CEA0032 for ; Fri, 18 Feb 2022 13:43:06 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 537F941143; Fri, 18 Feb 2022 13:43:06 +0100 (CET) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by mails.dpdk.org (Postfix) with ESMTP id 4278D41142 for ; Fri, 18 Feb 2022 13:43:05 +0100 (CET) Received: by mail-wm1-f52.google.com with SMTP id l12-20020a7bc34c000000b003467c58cbdfso8526426wmj.2 for ; Fri, 18 Feb 2022 04:43:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S5hUH1lyuYtharRRu4fwsq3+DhN7yCx8QYokqBUf0lo=; b=PXRqTzEmket1aMLulAl61Bbl0moiph82oeAF3awXewYf0Nv8a8uFlxLki5+EzfF5tD A76jDdEwz8WEaBijD8xB7UopFDcRiL/yeJNEggBL/aZgU/3LDaQtf4S5DIR2V3xjm2QU 5V8MdOm/ESeAABqO2xoNx6VI237qY4xpcTFAh0OoLntIgw/s+MZnYK5iVJ6wk7m9NKSU deCITA7/KTMg+iIo1RIpYpUhm4IxXHZRpJ1YBXFL5M5OnrdruBsphc9EIKbCI5ZaCS4d ZCleSFGMtaenVoMgLokDh6N2E2R8mIpyNhmSu8ui/Mw2ZiCbG1aHgPBNDTv84sTbm7r/ MPtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=S5hUH1lyuYtharRRu4fwsq3+DhN7yCx8QYokqBUf0lo=; b=hsRk6nBJzo2uuirK+zCuwy0q0f6k4IzgPwqquFS0ulTtXwQW9Iya9sBkuCmhwJAUep UhbEzZGw0yqbD1NBtZTqU6PfrdBp624PcazVot9QubF+hytdWXJNNdE42mAOSELT0OKN o9cJZQ+RdnXLoNpMJiChcn/ra78bdEHpCyh6dvxfJmIrarHMburodmLPt+AivewzJrS+ wc+4PqCnr3Y2fbqCPqm99MwkGcv+gyv+MIJlGI6pSwlHyzGuWRFOQfbYjuqTRjOX8UoZ SKJbpSpDNh0BJ/o3mqO8zugaxOe1uwA47EMv8wLaoLz+E8Nw5wtAggKg65Su0tqb8LuR IrWw== X-Gm-Message-State: AOAM530MhRP6RvTrV7MGz3oB8W+OELvr9z586YYaIe5cnYu5oaAloILn 1UGQRe0RoqG37u5q9+z6fQg= X-Google-Smtp-Source: ABdhPJwYljOAGhvTfam6e4pHlfvgWbl1YIOpDiA3GQgN0xoOLykOmslFTGICZX49zOtOZhQF6M1whA== X-Received: by 2002:a05:600c:3590:b0:34a:5f6:9e6 with SMTP id p16-20020a05600c359000b0034a05f609e6mr10653008wmq.182.1645188184926; Fri, 18 Feb 2022 04:43:04 -0800 (PST) Received: from localhost ([2a01:4b00:f41a:3600:360b:9754:2e3a:c344]) by smtp.gmail.com with ESMTPSA id y17sm4130843wma.5.2022.02.18.04.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Feb 2022 04:43:04 -0800 (PST) From: luca.boccassi@gmail.com To: Bruce Richardson Cc: Jerin Jacob , dpdk stable Subject: patch 'build: fix warnings when running external commands' has been queued to stable release 20.11.5 Date: Fri, 18 Feb 2022 12:38:37 +0000 Message-Id: <20220218123931.1749595-68-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220218123931.1749595-1-luca.boccassi@gmail.com> References: <20220218123931.1749595-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 20.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/20/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/14421740c492df1d9267892566ef33e784790c1c Thanks. Luca Boccassi --- >From 14421740c492df1d9267892566ef33e784790c1c Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Thu, 20 Jan 2022 18:06:39 +0000 Subject: [PATCH] build: fix warnings when running external commands [ upstream commit ecb904cc4596b33aa182e2a7c9edc3104ff981c3 ] Meson 0.61.1 is giving warnings that the calls to run_command do not always explicitly specify if the result is to be checked or not, i.e. there is a missing "check" parameter. This is because the default behaviour without the parameter is due to change in the future. We can fix these warnings by explicitly adding into each call whether the result should be checked by meson or not. This patch therefore adds in "check: false" to each run_command call where the result is being checked by the DPDK meson.build code afterwards, and adds in "check: true" to any calls where the result is currently unchecked. Bugzilla ID: 921 Reported-by: Jerin Jacob Signed-off-by: Bruce Richardson Tested-by: Jerin Jacob --- app/test/meson.build | 2 +- config/arm/meson.build | 2 +- config/meson.build | 2 +- config/x86/meson.build | 2 +- drivers/common/mlx5/linux/meson.build | 2 +- drivers/net/mlx4/meson.build | 2 +- kernel/linux/kni/meson.build | 2 +- kernel/linux/meson.build | 4 ++-- meson.build | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/test/meson.build b/app/test/meson.build index 49fbb5e18e..c2f0d24c1d 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -437,7 +437,7 @@ dpdk_test = executable('dpdk-test', driver_install_path), install: true) -has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0' +has_hugepage = run_command('has-hugepage.sh', check: true).stdout().strip() != '0' message('hugepage availability: @0@'.format(has_hugepage)) # some perf tests (eg: memcpy perf autotest)take very long diff --git a/config/arm/meson.build b/config/arm/meson.build index 42b4e43c74..fcbcf1ca56 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -156,7 +156,7 @@ else # 'Primary Part number', 'Revision'] detect_vendor = find_program(join_paths( meson.current_source_dir(), 'armv8_machine.py')) - cmd = run_command(detect_vendor.path()) + cmd = run_command(detect_vendor.path(), check: false) if cmd.returncode() == 0 cmd_output = cmd.stdout().to_lower().strip().split(' ') endif diff --git a/config/meson.build b/config/meson.build index a19f67ec5a..7275946e66 100644 --- a/config/meson.build +++ b/config/meson.build @@ -23,7 +23,7 @@ is_ms_linker = is_windows and (cc.get_id() == 'clang') pver = meson.project_version().split('.') major_version = '@0@.@1@'.format(pver.get(0), pver.get(1)) abi_version = run_command(find_program('cat', 'more'), - abi_version_file).stdout().strip() + abi_version_file, check: true).stdout().strip() # Libraries have the abi_version as the filename extension # and have the soname be all but the final part of the abi_version. diff --git a/config/x86/meson.build b/config/x86/meson.build index 0007b6b49f..918a29008b 100644 --- a/config/x86/meson.build +++ b/config/x86/meson.build @@ -4,7 +4,7 @@ # get binutils version for the workaround of Bug 97 binutils_ok = true if not is_windows and (is_linux or cc.get_id() == 'gcc') - binutils_ok = run_command(binutils_avx512_check).returncode() == 0 + binutils_ok = run_command(binutils_avx512_check, check: false).returncode() == 0 if not binutils_ok and cc.has_argument('-mno-avx512f') machine_args += '-mno-avx512f' warning('Binutils error with AVX512 assembly, disabling AVX512 support') diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build index 43d70c1324..7e64583b4a 100644 --- a/drivers/common/mlx5/linux/meson.build +++ b/drivers/common/mlx5/linux/meson.build @@ -37,7 +37,7 @@ foreach libname:libnames endforeach if static_ibverbs or dlopen_ibverbs # Build without adding shared libs to Requires.private - ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() + ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check: true).stdout() ext_deps += declare_dependency(compile_args: ibv_cflags.split()) endif if static_ibverbs diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index d7602b748e..467fa25a3c 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -42,7 +42,7 @@ foreach libname:libnames endforeach if static_ibverbs or dlopen_ibverbs # Build without adding shared libs to Requires.private - ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() + ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check:true).stdout() ext_deps += declare_dependency(compile_args: ibv_cflags.split()) endif if static_ibverbs diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build index 0eedbd6cb1..1e642ec9d4 100644 --- a/kernel/linux/kni/meson.build +++ b/kernel/linux/kni/meson.build @@ -5,7 +5,7 @@ # Ref: https://jira.devtools.intel.com/browse/DPDK-29263 kmod_cflags = '' file_path = kernel_source_dir + '/include/linux/netdevice.h' -run_cmd = run_command('grep', 'ndo_tx_timeout', file_path) +run_cmd = run_command('grep', 'ndo_tx_timeout', file_path, check: false) if run_cmd.stdout().contains('txqueue') == true kmod_cflags = '-DHAVE_ARG_TX_QUEUE' diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index 76eb279d9e..b23298b1fd 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -11,7 +11,7 @@ endif kernel_dir = get_option('kernel_dir') if kernel_dir == '' # use default path for native builds - kernel_version = run_command('uname', '-r').stdout().strip() + kernel_version = run_command('uname', '-r', check: true).stdout().strip() kernel_dir = '/lib/modules/' + kernel_version endif @@ -23,7 +23,7 @@ endif # test running make in kernel directory, using "make kernelversion" make_returncode = run_command('make', '-sC', kernel_dir + '/build', - 'kernelversion').returncode() + 'kernelversion', check: true).returncode() if make_returncode != 0 error('Cannot compile kernel modules as requested - are kernel headers installed?') endif diff --git a/meson.build b/meson.build index 8e051f7f4e..4463c40018 100644 --- a/meson.build +++ b/meson.build @@ -5,7 +5,7 @@ project('DPDK', 'C', # Get version number from file. # Fallback to "more" for Windows compatibility. version: run_command(find_program('cat', 'more'), - files('VERSION')).stdout().strip(), + files('VERSION'), check: true).stdout().strip(), license: 'BSD', default_options: ['buildtype=release', 'default_library=static'], meson_version: '>= 0.47.1' -- 2.30.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-02-18 12:37:40.605349870 +0000 +++ 0068-build-fix-warnings-when-running-external-commands.patch 2022-02-18 12:37:37.742793082 +0000 @@ -1 +1 @@ -From ecb904cc4596b33aa182e2a7c9edc3104ff981c3 Mon Sep 17 00:00:00 2001 +From 14421740c492df1d9267892566ef33e784790c1c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ecb904cc4596b33aa182e2a7c9edc3104ff981c3 ] + @@ -18 +19,0 @@ -Cc: stable@dpdk.org @@ -24,12 +25,10 @@ - app/test/meson.build | 2 +- - buildtools/meson.build | 2 +- - config/arm/meson.build | 2 +- - config/meson.build | 5 +++-- - config/x86/meson.build | 2 +- - drivers/common/mlx5/linux/meson.build | 2 +- - drivers/common/mlx5/windows/meson.build | 4 ++-- - drivers/net/mlx4/meson.build | 2 +- - kernel/linux/kni/meson.build | 2 +- - kernel/linux/meson.build | 9 +++++---- - meson.build | 2 +- - 11 files changed, 18 insertions(+), 16 deletions(-) + app/test/meson.build | 2 +- + config/arm/meson.build | 2 +- + config/meson.build | 2 +- + config/x86/meson.build | 2 +- + drivers/common/mlx5/linux/meson.build | 2 +- + drivers/net/mlx4/meson.build | 2 +- + kernel/linux/kni/meson.build | 2 +- + kernel/linux/meson.build | 4 ++-- + meson.build | 2 +- + 9 files changed, 10 insertions(+), 10 deletions(-) @@ -38 +37 @@ -index 725a218f4a..5476c180ee 100644 +index 49fbb5e18e..c2f0d24c1d 100644 @@ -41,3 +40,3 @@ -@@ -457,7 +457,7 @@ dpdk_test = executable('dpdk-test', - driver_install_path), - install: true) +@@ -437,7 +437,7 @@ dpdk_test = executable('dpdk-test', + driver_install_path), + install: true) @@ -50,13 +48,0 @@ -diff --git a/buildtools/meson.build b/buildtools/meson.build -index 22ea0ba375..400b88f251 100644 ---- a/buildtools/meson.build -+++ b/buildtools/meson.build -@@ -45,7 +45,7 @@ if host_machine.system() != 'windows' - endif - foreach module : python3_required_modules - script = 'import importlib.util; import sys; exit(importlib.util.find_spec("@0@") is None)' -- if run_command(py3, '-c', script.format(module)).returncode() != 0 -+ if run_command(py3, '-c', script.format(module), check: false).returncode() != 0 - error('missing python module: @0@'.format(module)) - endif - endforeach @@ -64 +50 @@ -index c3a3f2faaf..e102381af5 100644 +index 42b4e43c74..fcbcf1ca56 100644 @@ -67,9 +53,9 @@ -@@ -463,7 +463,7 @@ else - # 'Primary Part number', 'Revision'] - detect_vendor = find_program(join_paths(meson.current_source_dir(), - 'armv8_machine.py')) -- cmd = run_command(detect_vendor.path()) -+ cmd = run_command(detect_vendor.path(), check: false) - if cmd.returncode() == 0 - cmd_output = cmd.stdout().to_lower().strip().split(' ') - implementer_id = cmd_output[0] +@@ -156,7 +156,7 @@ else + # 'Primary Part number', 'Revision'] + detect_vendor = find_program(join_paths( + meson.current_source_dir(), 'armv8_machine.py')) +- cmd = run_command(detect_vendor.path()) ++ cmd = run_command(detect_vendor.path(), check: false) + if cmd.returncode() == 0 + cmd_output = cmd.stdout().to_lower().strip().split(' ') + endif @@ -77 +63 @@ -index 805d5d51d0..ee12318d4f 100644 +index a19f67ec5a..7275946e66 100644 @@ -80,2 +66 @@ -@@ -22,7 +22,8 @@ is_ms_linker = is_windows and (cc.get_id() == 'clang') - # depending on the configuration options +@@ -23,7 +23,7 @@ is_ms_linker = is_windows and (cc.get_id() == 'clang') @@ -84,3 +69,3 @@ --abi_version = run_command(find_program('cat', 'more'), abi_version_file).stdout().strip() -+abi_version = run_command(find_program('cat', 'more'), abi_version_file, -+ check: true).stdout().strip() + abi_version = run_command(find_program('cat', 'more'), +- abi_version_file).stdout().strip() ++ abi_version_file, check: true).stdout().strip() @@ -90,9 +74,0 @@ -@@ -334,7 +335,7 @@ if max_lcores == 'detect' - error('Discovery of max_lcores is not supported for cross-compilation.') - endif - # overwrite the default value with discovered values -- max_lcores = run_command(get_cpu_count_cmd).stdout().to_int() -+ max_lcores = run_command(get_cpu_count_cmd, check: true).stdout().to_int() - min_lcores = 2 - # DPDK must be built for at least 2 cores - if max_lcores < min_lcores @@ -100 +76 @@ -index e25ed316f4..54345c4da3 100644 +index 0007b6b49f..918a29008b 100644 @@ -106,6 +82,6 @@ - if is_linux or cc.get_id() == 'gcc' -- binutils_ok = run_command(binutils_avx512_check).returncode() == 0 -+ binutils_ok = run_command(binutils_avx512_check, check: false).returncode() == 0 - if not binutils_ok and cc.has_argument('-mno-avx512f') - machine_args += '-mno-avx512f' - warning('Binutils error with AVX512 assembly, disabling AVX512 support') + if not is_windows and (is_linux or cc.get_id() == 'gcc') +- binutils_ok = run_command(binutils_avx512_check).returncode() == 0 ++ binutils_ok = run_command(binutils_avx512_check, check: false).returncode() == 0 + if not binutils_ok and cc.has_argument('-mno-avx512f') + machine_args += '-mno-avx512f' + warning('Binutils error with AVX512 assembly, disabling AVX512 support') @@ -113 +89 @@ -index 7909f23e21..4c7b53b9bd 100644 +index 43d70c1324..7e64583b4a 100644 @@ -116 +92 @@ -@@ -36,7 +36,7 @@ foreach libname:libnames +@@ -37,7 +37,7 @@ foreach libname:libnames @@ -119,4 +95,4 @@ - # Build without adding shared libs to Requires.private -- ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() -+ ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check: true).stdout() - ext_deps += declare_dependency(compile_args: ibv_cflags.split()) + # Build without adding shared libs to Requires.private +- ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() ++ ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check: true).stdout() + ext_deps += declare_dependency(compile_args: ibv_cflags.split()) @@ -125,15 +100,0 @@ -diff --git a/drivers/common/mlx5/windows/meson.build b/drivers/common/mlx5/windows/meson.build -index 980f76b11c..edbbaa9ae1 100644 ---- a/drivers/common/mlx5/windows/meson.build -+++ b/drivers/common/mlx5/windows/meson.build -@@ -8,8 +8,8 @@ sources += files( - 'mlx5_common_os.c', - ) - --res_lib = run_command(python3, '-c', 'import os; print(os.environ["DEVX_LIB_PATH"])') --res_inc = run_command(python3, '-c', 'import os; print(os.environ["DEVX_INC_PATH"])') -+res_lib = run_command(python3, '-c', 'import os; print(os.environ["DEVX_LIB_PATH"])', check: false) -+res_inc = run_command(python3, '-c', 'import os; print(os.environ["DEVX_INC_PATH"])', check: false) - - if (res_lib.returncode() != 0 or res_inc.returncode() != 0) - build = false @@ -141 +102 @@ -index 99a30eab8f..a038c1ec1b 100644 +index d7602b748e..467fa25a3c 100644 @@ -147,4 +108,4 @@ - # Build without adding shared libs to Requires.private -- ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() -+ ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check:true).stdout() - ext_deps += declare_dependency(compile_args: ibv_cflags.split()) + # Build without adding shared libs to Requires.private +- ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() ++ ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check:true).stdout() + ext_deps += declare_dependency(compile_args: ibv_cflags.split()) @@ -154 +115 @@ -index c683fc7b36..dae8c37b37 100644 +index 0eedbd6cb1..1e642ec9d4 100644 @@ -167 +128 @@ -index 0637452e95..d8fb20c1c3 100644 +index 76eb279d9e..b23298b1fd 100644 @@ -170 +131,8 @@ -@@ -11,7 +11,7 @@ cross_args = [] +@@ -11,7 +11,7 @@ endif + kernel_dir = get_option('kernel_dir') + if kernel_dir == '' + # use default path for native builds +- kernel_version = run_command('uname', '-r').stdout().strip() ++ kernel_version = run_command('uname', '-r', check: true).stdout().strip() + kernel_dir = '/lib/modules/' + kernel_version + endif @@ -172,23 +140 @@ - if not meson.is_cross_build() - # native build -- kernel_version = run_command('uname', '-r').stdout().strip() -+ kernel_version = run_command('uname', '-r', check: true).stdout().strip() - kernel_install_dir = '/lib/modules/' + kernel_version + '/extra/dpdk' - if kernel_build_dir == '' - # use default path for native builds -@@ -24,14 +24,14 @@ if not meson.is_cross_build() - - # test running make in kernel directory, using "make kernelversion" - make_returncode = run_command('make', '-sC', kernel_build_dir, -- 'kernelversion').returncode() -+ 'kernelversion', check: true).returncode() - if make_returncode != 0 - # backward compatibility: - # the headers could still be in the 'build' subdir - if not kernel_build_dir.endswith('build') and not kernel_build_dir.endswith('build/') - kernel_build_dir = join_paths(kernel_build_dir, 'build') - make_returncode = run_command('make', '-sC', kernel_build_dir, -- 'kernelversion').returncode() -+ 'kernelversion', check: true).returncode() - endif - endif +@@ -23,7 +23,7 @@ endif @@ -196 +142,6 @@ -@@ -54,7 +54,8 @@ if kernel_build_dir == '' + # test running make in kernel directory, using "make kernelversion" + make_returncode = run_command('make', '-sC', kernel_dir + '/build', +- 'kernelversion').returncode() ++ 'kernelversion', check: true).returncode() + if make_returncode != 0 + error('Cannot compile kernel modules as requested - are kernel headers installed?') @@ -198,8 +148,0 @@ - cross_compiler = find_program('c').path() - if cross_compiler.endswith('gcc') -- cross_prefix = run_command([py3, '-c', 'print("' + cross_compiler + '"[:-3])']).stdout().strip() -+ cross_prefix = run_command([py3, '-c', 'print("' + cross_compiler + '"[:-3])'], -+ check: true).stdout().strip() - elif cross_compiler.endswith('clang') - cross_prefix = '' - found_target = false @@ -207 +150 @@ -index 12cb6e0e83..1223b79d74 100644 +index 8e051f7f4e..4463c40018 100644 @@ -211,8 +154,8 @@ - # Get version number from file. - # Fallback to "more" for Windows compatibility. - version: run_command(find_program('cat', 'more'), -- files('VERSION')).stdout().strip(), -+ files('VERSION'), check: true).stdout().strip(), - license: 'BSD', - default_options: ['buildtype=release', 'default_library=static'], - meson_version: '>= 0.49.2' + # Get version number from file. + # Fallback to "more" for Windows compatibility. + version: run_command(find_program('cat', 'more'), +- files('VERSION')).stdout().strip(), ++ files('VERSION'), check: true).stdout().strip(), + license: 'BSD', + default_options: ['buildtype=release', 'default_library=static'], + meson_version: '>= 0.47.1'