diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-09-20 16:43:33 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-11 12:14:26 +0000 |
commit | e9bb56067af36eca5e31274596f5bb739e51f9e8 (patch) | |
tree | cd0fbdef680bc3c0f46ebc98a927a2259410fd79 | |
parent | 05d1e6995697ff27ee719a386bd8ec92b9468374 (diff) | |
download | poky-e9bb56067af36eca5e31274596f5bb739e51f9e8.tar.gz |
recipetool: ignore incidental kernel module source
If the source tree happens to contain a kernel module as an example, a
test or under a "contrib" directory then we shouldn't be picking it up
and making the determination that the entire thing is a kernel module.
An example that triggered this is zstd, which ships a kernel module
under contrib/linux-kernel:
https://github.com/facebook/zstd
(From OE-Core rev: c2b3154158d4bb0855daa56477393341139d4cf9)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | scripts/lib/recipetool/create.py | 6 | ||||
-rw-r--r-- | scripts/lib/recipetool/create_kmod.py | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 1532735ab8..055bdef436 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py | |||
@@ -156,10 +156,12 @@ class RecipeHandler(object): | |||
156 | RecipeHandler.recipebinmap[prog] = pn | 156 | RecipeHandler.recipebinmap[prog] = pn |
157 | 157 | ||
158 | @staticmethod | 158 | @staticmethod |
159 | def checkfiles(path, speclist, recursive=False): | 159 | def checkfiles(path, speclist, recursive=False, excludedirs=None): |
160 | results = [] | 160 | results = [] |
161 | if recursive: | 161 | if recursive: |
162 | for root, _, files in os.walk(path): | 162 | for root, dirs, files in os.walk(path, topdown=True): |
163 | if excludedirs: | ||
164 | dirs[:] = [d for d in dirs if d not in excludedirs] | ||
163 | for fn in files: | 165 | for fn in files: |
164 | for spec in speclist: | 166 | for spec in speclist: |
165 | if fnmatch.fnmatch(fn, spec): | 167 | if fnmatch.fnmatch(fn, spec): |
diff --git a/scripts/lib/recipetool/create_kmod.py b/scripts/lib/recipetool/create_kmod.py index 7cf188db21..4569b53c80 100644 --- a/scripts/lib/recipetool/create_kmod.py +++ b/scripts/lib/recipetool/create_kmod.py | |||
@@ -40,7 +40,7 @@ class KernelModuleRecipeHandler(RecipeHandler): | |||
40 | 40 | ||
41 | makefiles = [] | 41 | makefiles = [] |
42 | 42 | ||
43 | files = RecipeHandler.checkfiles(srctree, ['*.c', '*.h'], recursive=True) | 43 | files = RecipeHandler.checkfiles(srctree, ['*.c', '*.h'], recursive=True, excludedirs=['contrib', 'test', 'examples']) |
44 | if files: | 44 | if files: |
45 | for cfile in files: | 45 | for cfile in files: |
46 | # Look in same dir or parent for Makefile | 46 | # Look in same dir or parent for Makefile |