Don't fail loading subprojects if subprojects_dir is in a subdirectory
@@ -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
+ 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
