aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/interpreter.py b/interpreter.py
index 6c4f07e..33dbbef 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -19,6 +19,7 @@ import dependencies
import mlog
import build
import optinterpreter
+import wrap
import os, sys, platform, subprocess, shutil, uuid
class InterpreterException(coredata.MesonException):
@@ -915,7 +916,12 @@ class Interpreter():
subdir = os.path.join('subprojects', dirname)
abs_subdir = os.path.join(self.build.environment.get_source_dir(), subdir)
if not os.path.isdir(abs_subdir):
- raise InterpreterException('Subproject directory does not exist.')
+ r = wrap.Resolver(os.path.join(self.build.environment.get_source_dir(), 'subprojects'))
+ resolved = r.resolve(dirname)
+ if resolved is None:
+ raise InterpreterException('Subproject directory does not exist and can not be downloaded.')
+ subdir = os.path.join('subprojects', resolved)
+ abs_subdir = os.path.join(self.build.environment.get_source_dir(), 'subprojects', subdir)
self.global_args_frozen = True
mlog.log('\nExecuting subproject ', mlog.bold(dirname), '.\n', sep='')
subi = Interpreter(self.build, dirname, subdir)