From a65d973660ea6978076b4445e004271271aa3ffd Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Fri, 8 Oct 2021 15:00:05 +0300 Subject: [PATCH] Extend library root signs with "include" and "src" dirs // Resolve #4073 --- platformio/package/manager/library.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/platformio/package/manager/library.py b/platformio/package/manager/library.py index 95f2db3f..ac18fd9f 100644 --- a/platformio/package/manager/library.py +++ b/platformio/package/manager/library.py @@ -60,15 +60,20 @@ class LibraryPackageManager(BasePackageManager): # pylint: disable=too-many-anc @staticmethod def find_library_root(path): + root_dir_signs = set(["include", "Include", "src", "Src"]) + root_file_signs = set( + [ + "conanfile.py", # Conan-based library + "CMakeLists.txt", # CMake-based library + ] + ) for root, dirs, files in os.walk(path): - # check if Conan-based library - if os.path.isfile(os.path.join(root, "conanfile.py")): - return root - # check if CMake-based library - if os.path.isfile(os.path.join(root, "CMakeLists.txt")): - return root if not files and len(dirs) == 1: continue + if set(root_dir_signs) & set(dirs): + return root + if set(root_file_signs) & set(files): + return root for fname in files: if not fname.endswith((".c", ".cpp", ".h", ".S")): continue