From 0aa973777f388e655b9d528e5e564e774da28d6a Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sun, 2 Sep 2018 22:03:02 +0200 Subject: [PATCH] Prefer pkgconfig for `GTestDependency` --- mesonbuild/dependencies/dev.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index 087639107..e68b3c152 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -15,14 +15,14 @@ # This file contains the detection logic for external dependencies useful for # development purposes, such as testing, debugging, etc.. +import functools import os import re -from .. import mlog from .. import mesonlib from ..mesonlib import version_compare, stringlistify, extract_as_list from .base import ( - DependencyException, ExternalDependency, PkgConfigDependency, + DependencyException, DependencyMethods, ExternalDependency, PkgConfigDependency, strip_system_libdirs, ConfigToolDependency, ) @@ -80,6 +80,24 @@ class GTestDependency(ExternalDependency): else: 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): def __init__(self, environment, kwargs):