diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2017-08-14 05:20:44 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2017-09-20 13:36:42 +0530 |
commit | 20991c06696d25c495f0003ea37a66027c90e789 (patch) | |
tree | 4969b17fed14246fcb9ea77e121dd4a1e9378ef1 | |
parent | 59473e9ed7b1333ff42efab0d5268d8d74bcc3b0 (diff) | |
download | meson-20991c06696d25c495f0003ea37a66027c90e789.zip meson-20991c06696d25c495f0003ea37a66027c90e789.tar.gz meson-20991c06696d25c495f0003ea37a66027c90e789.tar.bz2 |
dependencies: Add version detection to pcap
-rw-r--r-- | mesonbuild/dependencies/misc.py | 12 | ||||
-rw-r--r-- | test cases/frameworks/19 pcap/meson.build | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index 12e0239..adc4e45 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 909d7cd..c505960 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) |