summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2017-08-14 05:20:44 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2017-09-20 13:36:42 +0530
commit20991c06696d25c495f0003ea37a66027c90e789 (patch)
tree4969b17fed14246fcb9ea77e121dd4a1e9378ef1
parent59473e9ed7b1333ff42efab0d5268d8d74bcc3b0 (diff)
downloadmeson-20991c06696d25c495f0003ea37a66027c90e789.tar.gz
dependencies: Add version detection to pcap
-rw-r--r--mesonbuild/dependencies/misc.py12
-rw-r--r--test cases/frameworks/19 pcap/meson.build3
2 files changed, 13 insertions, 2 deletions
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py
index 12e0239dc..adc4e45b1 100644
--- a/mesonbuild/dependencies/misc.py
+++ b/mesonbuild/dependencies/misc.py
@@ -577,6 +577,7 @@ class Python3Dependency(ExternalDependency):
else:
return [DependencyMethods.PKGCONFIG]
+
class PcapDependency(ExternalDependency):
def __init__(self, environment, kwargs):
super().__init__('pcap', environment, None, kwargs)
@@ -600,7 +601,7 @@ class PcapDependency(ExternalDependency):
self.compile_args = stdo.strip().split()
stdo = Popen_safe(['pcap-config', '--libs'])[1]
self.link_args = stdo.strip().split()
- self.version = '0'
+ self.version = self.get_pcap_lib_version()
self.is_found = True
mlog.log('Dependency', mlog.bold('pcap'), 'found:',
mlog.green('YES'), '(%s)' % pcapconf)
@@ -614,7 +615,9 @@ class PcapDependency(ExternalDependency):
self.is_found = True
self.compile_args = fwdep.get_compile_args()
self.link_args = fwdep.get_link_args()
- self.version = '2' # FIXME
+ # FIXME: Test on macOS
+ #self.version = self.get_pcap_lib_version()
+ self.version = '2' # FIXME
return
mlog.log('Dependency', mlog.bold('pcap'), 'found:', mlog.red('NO'))
@@ -624,6 +627,11 @@ class PcapDependency(ExternalDependency):
else:
return [DependencyMethods.PKGCONFIG, DependencyMethods.PCAPCONFIG]
+ def get_pcap_lib_version(self):
+ return self.compiler.get_return_value('pcap_lib_version', 'string',
+ '#include <pcap.h>', self.env, [], [self])
+
+
class CupsDependency(ExternalDependency):
def __init__(self, environment, kwargs):
super().__init__('cups', environment, None, kwargs)
diff --git a/test cases/frameworks/19 pcap/meson.build b/test cases/frameworks/19 pcap/meson.build
index 909d7cd4e..c5059602a 100644
--- a/test cases/frameworks/19 pcap/meson.build
+++ b/test cases/frameworks/19 pcap/meson.build
@@ -2,6 +2,9 @@ project('pcap test', 'c')
pcap_dep = dependency('pcap', version : '>=1.0')
+pcap_ver = pcap_dep.version()
+assert(pcap_ver.split('.').length() > 1, 'pcap version is "@0@"'.format(pcap_ver))
+
e = executable('pcap_prog', 'pcap_prog.c', dependencies : pcap_dep)
test('pcaptest', e)