Prefer pkgconfig for `GTestDependency`

This commit is contained in:
David Seifert 2018-09-02 22:03:02 +02:00
parent 3d86a24b55
commit 0aa973777f
No known key found for this signature in database
GPG Key ID: CE36E117202E3842
1 changed files with 20 additions and 2 deletions

View File

@ -15,14 +15,14 @@
# This file contains the detection logic for external dependencies useful for # This file contains the detection logic for external dependencies useful for
# development purposes, such as testing, debugging, etc.. # development purposes, such as testing, debugging, etc..
import functools
import os import os
import re import re
from .. import mlog
from .. import mesonlib from .. import mesonlib
from ..mesonlib import version_compare, stringlistify, extract_as_list from ..mesonlib import version_compare, stringlistify, extract_as_list
from .base import ( from .base import (
DependencyException, ExternalDependency, PkgConfigDependency, DependencyException, DependencyMethods, ExternalDependency, PkgConfigDependency,
strip_system_libdirs, ConfigToolDependency, strip_system_libdirs, ConfigToolDependency,
) )
@ -80,6 +80,24 @@ class GTestDependency(ExternalDependency):
else: else:
return 'building self' return 'building self'
@classmethod
def _factory(cls, environment, kwargs):
methods = cls._process_method_kw(kwargs)
candidates = []
if DependencyMethods.PKGCONFIG in methods:
pcname = 'gtest_main' if kwargs.get('main', False) else 'gtest'
candidates.append(functools.partial(PkgConfigDependency, pcname, environment, kwargs))
if DependencyMethods.SYSTEM in methods:
candidates.append(functools.partial(GTestDependency, environment, kwargs))
return candidates
@staticmethod
def get_methods():
return [DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM]
class GMockDependency(ExternalDependency): class GMockDependency(ExternalDependency):
def __init__(self, environment, kwargs): def __init__(self, environment, kwargs):