aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/interpreter.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 0dfe57d..9b1b45c 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -33,6 +33,7 @@ from .modules import ModuleReturnValue
import os, sys, shutil, uuid
import re, shlex
from collections import namedtuple
+from pathlib import PurePath
import importlib
@@ -2963,11 +2964,16 @@ different subdirectory.
def evaluate_subproject_info(self, path_from_source_root, subproject_dirname):
depth = 0
subproj_name = ''
- segs = path_from_source_root.split(os.path.sep)
- while segs and segs[0] == subproject_dirname:
- depth += 1
- subproj_name = segs[1]
- segs = segs[2:]
+ segs = PurePath(path_from_source_root).parts
+ segs_spd = PurePath(subproject_dirname).parts
+ while segs and segs[0] == segs_spd[0]:
+ if len(segs_spd) == 1:
+ subproj_name = segs[1]
+ segs = segs[2:]
+ depth += 1
+ else:
+ segs_spd = segs_spd[1:]
+ segs = segs[1:]
return (depth, subproj_name)
# Check that the indicated file is within the same subproject