diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 3f1783009..be62155a0 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -970,15 +970,14 @@ class DubDependency(ExternalDependency): return self.compiler def _find_right_lib_path(self, default_path, comp, description, folder_only=False, file_name=''): - path = '' - - module_build_path = lib_file_name = '' + module_path = lib_file_name = '' if folder_only: - module_build_path = default_path + module_path = default_path lib_file_name = file_name else: - module_build_path = os.path.dirname(default_path) + module_path = os.path.dirname(default_path) lib_file_name = os.path.basename(default_path) + module_build_path = os.path.join(module_path, '.dub', 'build') # Get D version implemented in the compiler # gdc doesn't support this @@ -994,19 +993,21 @@ class DubDependency(ExternalDependency): else: d_ver = '' # gdc + if not os.path.isdir(module_build_path): + return '' + # Ex.: library-debug-linux.posix-x86_64-ldc_2081-EF934983A3319F8F8FF2F0E107A363BA build_name = 'library-{}-{}-{}-{}_{}'.format(description['buildType'], '.'.join(description['platform']), '.'.join(description['architecture']), comp, d_ver) - for entry in os.listdir(os.path.join(module_build_path, '.dub', 'build')): + for entry in os.listdir(module_build_path): if entry.startswith(build_name): - for file in os.listdir(os.path.join(module_build_path, '.dub', 'build', entry)): + for file in os.listdir(os.path.join(module_build_path, entry)): if file == lib_file_name: if folder_only: - path = os.path.join(module_build_path, '.dub', 'build', entry) + return os.path.join(module_build_path, entry) else: - path = os.path.join(module_build_path, '.dub', 'build', entry, lib_file_name) - break + return os.path.join(module_build_path, entry, lib_file_name) - return path + return '' def _call_dubbin(self, args, env=None): p, out = Popen_safe(self.dubbin.get_command() + args, env=env)[0:2]