Re: [PATCH v3 2/4] build: use dependency() instead of find_library()
From: Luca Boccassi <hidden>
Date: 2019-01-11 18:16:25
On Fri, 2019-01-11 at 17:21 +0000, Bruce Richardson wrote:
On Fri, Jan 11, 2019 at 04:26:06PM +0000, Luca Boccassi wrote:quoted
Whenever possible (if the library ships a pkg-config file) use meson's dependency() function to look for it, as it will automatically add it to the Requires.private list if needed, to allow for static builds to succeed for reverse dependencies of DPDK. Otherwise the recursive dependencies are not parsed, and users doing static builds have to resolve them manually by themselves. When using this API avoid additional checks that are superfluos andSpelling: superfluous
I _always_ get that one wrong :-)
quoted
take extra time, and avoid adding the linker flag manually which causes it to be duplicated. Signed-off-by: Luca Boccassi <redacted> --- v2: split libbsd change in a separate commit, remove CC to stable as a meson bump will be required drivers/crypto/ccp/meson.build | 1 - drivers/crypto/openssl/meson.build | 1 - drivers/crypto/qat/meson.build | 1 - drivers/meson.build | 2 +- drivers/net/bnx2x/meson.build | 2 +- drivers/net/mlx4/meson.build | 6 +++--- drivers/net/mlx5/meson.build | 6 +++--- drivers/net/pcap/meson.build | 5 ++--- lib/librte_bpf/meson.build | 4 ++-- lib/librte_telemetry/meson.build | 2 +- 10 files changed, 13 insertions(+), 17 deletions(-)diff --git a/drivers/crypto/ccp/meson.buildb/drivers/crypto/ccp/meson.build index e43b00591..915c4c854 100644--- a/drivers/crypto/ccp/meson.build +++ b/drivers/crypto/ccp/meson.build@@ -18,4 +18,3 @@ sources = files('rte_ccp_pmd.c','ccp_pmd_ops.c') ext_deps += dep -pkgconfig_extra_libs += '-lcrypto'diff --git a/drivers/crypto/openssl/meson.buildb/drivers/crypto/openssl/meson.build index c2a0dd8ba..80e5e8835 100644--- a/drivers/crypto/openssl/meson.build +++ b/drivers/crypto/openssl/meson.build@@ -8,4 +8,3 @@ endifdeps += 'bus_vdev' sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c') ext_deps += dep -pkgconfig_extra_libs += '-lcrypto'diff --git a/drivers/crypto/qat/meson.buildb/drivers/crypto/qat/meson.build index 9cc98d2c2..21f969735 100644--- a/drivers/crypto/qat/meson.build +++ b/drivers/crypto/qat/meson.build@@ -13,6 +13,5 @@ if dep.found()'qat_sym.c', 'qat_sym_session.c') qat_ext_deps += dep - pkgconfig_extra_libs += '-lcrypto' qat_cflags += '-DBUILD_QAT_SYM' endifdiff --git a/drivers/meson.build b/drivers/meson.build index e37d4fe2b..d17ca76eb 100644 --- a/drivers/meson.build +++ b/drivers/meson.build@@ -46,7 +46,7 @@ foreach class:driver_classes# set up internal deps. Drivers can append/override as necessary deps = std_deps # ext_deps: Stores external library dependency got - # using dependency() or cc.find_library(). For most cases, we + # using dependency() (preferred) or find_library(). For most cases, we # probably also need to specify the "-l" flags in # pkgconfig_extra_libs variable too, so that it can be reflected # in the pkgconfig output for static buildsThe last part of this comment can now be deleted, right? If we use dependency() we don't need to use pkgconfig_extra_libs. Is the pkgconfig_extra_libs variable still needed after these changes? /Bruce
Yes, as we can't use dependency() for everything unfortunately - only for those projects that ship a pkg-config file, a cmake file or that Meson has built-in knowledge of (like llvm or libpcap). I'll update that comment accordingly in v4. -- Kind regards, Luca Boccassi