aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dependencies.py14
-rwxr-xr-xenvironment.py1
-rwxr-xr-xinterpreter.py4
3 files changed, 9 insertions, 10 deletions
diff --git a/dependencies.py b/dependencies.py
index 9e71a96..1fd734d 100644
--- a/dependencies.py
+++ b/dependencies.py
@@ -21,8 +21,7 @@
# Currently one file, should probably be split into a
# package before this gets too big.
-import os, stat, glob, subprocess
-from interpreter import InvalidArguments
+import os, stat, glob, subprocess, shutil
from coredata import MesonException
class DependencyException(MesonException):
@@ -125,7 +124,10 @@ class PkgConfigDependency(Dependency):
class ExternalProgram():
def __init__(self, name, fullpath=None):
self.name = name
- self.fullpath = fullpath
+ if fullpath is not None:
+ self.fullpath = fullpath
+ else:
+ self.fullpath = shutil.which(name)
def found(self):
return self.fullpath is not None
@@ -182,19 +184,19 @@ class BoostDependency():
def get_requested(self, kwargs):
modules = 'modules'
if not modules in kwargs:
- raise InvalidArguments('Boost dependency must specify "%s" keyword.' % modules)
+ raise DependencyException('Boost dependency must specify "%s" keyword.' % modules)
candidates = kwargs[modules]
if isinstance(candidates, str):
return [candidates]
for c in candidates:
if not isinstance(c, str):
- raise InvalidArguments('Boost module argument is not a string.')
+ raise DependencyException('Boost module argument is not a string.')
return candidates
def validate_requested(self):
for m in self.requested_modules:
if m not in self.src_modules:
- raise InvalidArguments('Requested Boost module "%s" not found.' % m)
+ raise DependencyException('Requested Boost module "%s" not found.' % m)
def found(self):
return self.version is not None
diff --git a/environment.py b/environment.py
index 2d8ae13..6a04fcf 100755
--- a/environment.py
+++ b/environment.py
@@ -16,7 +16,6 @@
import subprocess, os.path, platform
import coredata
-import dependencies
from glob import glob
build_filename = 'meson.build'
diff --git a/interpreter.py b/interpreter.py
index 7375cf8..5b32cc7 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -20,7 +20,6 @@ import environment
import coredata
import dependencies
import os, sys, platform
-import shutil
class InterpreterException(Exception):
pass
@@ -654,8 +653,7 @@ class Interpreter():
if exename in self.coredata.ext_progs and\
self.coredata.ext_progs[exename].found():
return ExternalProgramHolder(self.coredata.ext_progs[exename])
- result = shutil.which(exename) # Does .exe appending on Windows.
- extprog = dependencies.ExternalProgram(exename, result)
+ extprog = dependencies.ExternalProgram(exename)
progobj = ExternalProgramHolder(extprog)
self.coredata.ext_progs[exename] = extprog
if required and not progobj.found():