build: disable experimental API check internally
[dpdk.git] / drivers / net / mlx4 / meson.build
index 7513516..5a25e11 100644 (file)
@@ -9,11 +9,11 @@ if not is_linux
 endif
 
 static_ibverbs = (get_option('ibverbs_link') == 'static')
-pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')
+dlopen_ibverbs = (get_option('ibverbs_link') == 'dlopen')
 LIB_GLUE_BASE = 'librte_pmd_mlx4_glue.so'
 LIB_GLUE_VERSION = '18.02.0'
 LIB_GLUE = LIB_GLUE_BASE + '.' + LIB_GLUE_VERSION
-if pmd_dlopen
+if dlopen_ibverbs
        dpdk_conf.set('RTE_IBVERBS_LINK_DLOPEN', 1)
        cflags += [
                '-DMLX4_GLUE="@0@"'.format(LIB_GLUE),
@@ -29,16 +29,27 @@ foreach libname:libnames
                lib = cc.find_library(libname, required:false)
        endif
        if lib.found()
-               libs += [ lib ]
+               libs += lib
+               if not static_ibverbs and not dlopen_ibverbs
+                       ext_deps += lib
+               endif
        else
                build = false
                reason = 'missing dependency, "' + libname + '"'
                subdir_done()
        endif
 endforeach
+if static_ibverbs or dlopen_ibverbs
+       # Build without adding shared libs to Requires.private
+       ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout()
+       ext_deps += declare_dependency(compile_args: ibv_cflags.split())
+endif
+if static_ibverbs
+       # Add static deps ldflags to internal apps and Libs.private
+       ibv_ldflags = run_command(ldflags_ibverbs_static, check:true).stdout()
+       ext_deps += declare_dependency(link_args:ibv_ldflags.split())
+endif
 
-allow_experimental_apis = true
-ext_deps += libs
 sources = files(
        'mlx4.c',
        'mlx4_ethdev.c',
@@ -51,7 +62,7 @@ sources = files(
        'mlx4_txq.c',
        'mlx4_utils.c',
 )
-if not pmd_dlopen
+if not dlopen_ibverbs
        sources += files('mlx4_glue.c')
 endif
 cflags_options = [
@@ -103,7 +114,7 @@ endforeach
 configure_file(output : 'mlx4_autoconf.h', configuration : config)
 
 # Build Glue Library
-if pmd_dlopen
+if dlopen_ibverbs
        dlopen_name = 'mlx4_glue'
        dlopen_lib_name = driver_name_fmt.format(dlopen_name)
        dlopen_so_version = LIB_GLUE_VERSION