From e5c720ff607cdf3101de031ff3a36f434d77b0d1 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Sun, 29 Sep 2019 20:43:22 +0200 Subject: Move generate_system_dependency to Dependency --- mesonbuild/dependencies/base.py | 4 ++++ mesonbuild/interpreter.py | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 5584fbc08..1ccc343cf 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -222,6 +222,10 @@ class Dependency: return default_value raise DependencyException('No default provided for dependency {!r}, which is not pkg-config, cmake, or config-tool based.'.format(self)) + def generate_system_dependency(self, is_system: bool) -> typing.Type['Dependency']: + new_dep = copy.deepcopy(self) + new_dep.is_system = is_system + return new_dep class InternalDependency(Dependency): def __init__(self, version, incdirs, compile_args, link_args, libraries, whole_libraries, sources, ext_deps): diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index adb854e7b..eb0eaf7b4 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -36,7 +36,7 @@ from .cmake import CMakeInterpreter from pathlib import Path, PurePath import os, shutil, uuid -import re, shlex, copy +import re, shlex import subprocess from collections import namedtuple from itertools import chain @@ -492,8 +492,7 @@ class DependencyHolder(InterpreterObject, ObjectHolder): if not isinstance(args[0], bool): raise InterpreterException('as_system takes only a boolean value') new_is_system = args[0] - new_dep = copy.deepcopy(self.held_object) - new_dep.is_system = new_is_system + new_dep = self.held_object.generate_system_dependency(new_is_system) return DependencyHolder(new_dep, self.subproject) class ExternalProgramHolder(InterpreterObject, ObjectHolder): -- cgit v1.2.3