aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2018-09-02 22:03:02 +0200
committerDavid Seifert <soap@gentoo.org>2018-09-02 22:03:02 +0200
commit0aa973777f388e655b9d528e5e564e774da28d6a (patch)
treeefb51ce2e4443a94436f3427d30c7e07f059876b
parent3d86a24b5537db3e04795d9c3e94f57def28cf5d (diff)
downloadmeson-0aa973777f388e655b9d528e5e564e774da28d6a.zip
meson-0aa973777f388e655b9d528e5e564e774da28d6a.tar.gz
meson-0aa973777f388e655b9d528e5e564e774da28d6a.tar.bz2
Prefer pkgconfig for `GTestDependency`
-rw-r--r--mesonbuild/dependencies/dev.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index 0876391..e68b3c1 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):