summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorNathan Rossi <nathan.rossi@xilinx.com>2013-09-04 16:44:20 +1000
committerNathan Rossi <nathan.rossi@xilinx.com>2013-09-04 18:38:58 +1000
commit5527261cec9017c5bf77166241422a74625beab0 (patch)
tree233e11fb46cd4ac77075c9a2a46c02f7d3bbfa63 /classes
parentcc54f70d15afdb882341951d13c7da2d45ddb93b (diff)
downloadmeta-xilinx-5527261cec9017c5bf77166241422a74625beab0.tar.gz
linux-machine-config.inc: Refactored useful python functions
* Refactored the useful python functions into more generic form and placed them in the 'xilinx-utils.bbclass' which can be inherited for the functions. Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'classes')
-rw-r--r--classes/xilinx-utils.bbclass58
1 files changed, 58 insertions, 0 deletions
diff --git a/classes/xilinx-utils.bbclass b/classes/xilinx-utils.bbclass
new file mode 100644
index 00000000..0d007b94
--- /dev/null
+++ b/classes/xilinx-utils.bbclass
@@ -0,0 +1,58 @@
1# Utility functions for various Xilinx specific recipes
2
3# Returns a ':' seperated list of expanded '${BBPATH}/$path'
4def get_additional_bbpath_filespath(path, d):
5 board_extrapaths = []
6 bbpath = d.getVar("BBPATH", True) or ""
7 for i in bbpath.split(":"):
8 board_extrapaths.append(os.path.join(i, path))
9 if len(board_extrapaths):
10 return ":".join(board_extrapaths) + ":"
11 return ""
12
13# Add a prefix or suffix to all paths in the list of paths
14# e.g. add 'file://' to all paths
15def paths_affix(paths, suffix = "", prefix = ""):
16 if paths:
17 files=set()
18 for path in paths.split():
19 newpath = path
20 if suffix and len(suffix) != 0:
21 newpath = newpath + suffix
22 if prefix and len(prefix) != 0:
23 newpath = prefix + newpath
24 files.add(newpath)
25 if len(files) != 0:
26 return ' '.join(files)
27 return ''
28
29# Expand all relative paths to absolute based on the WORKDIR location
30def expand_workdir_paths(variable, d):
31 workdir = d.getVar("WORKDIR", True)
32 variable_value = d.getVar(variable, True) or ''
33 if variable_value:
34 files=set()
35 for path in variable_value.split():
36 if workdir:
37 files.add(os.path.join(workdir, path))
38 else:
39 files.add(path)
40 if len(files) != 0:
41 return ' '.join(files)
42 return ''
43
44# Returns a space seperated list of all files which match the extension, joined
45# with the dir path.
46def expand_dir_basepaths_by_extension(variable, dir, extension, d):
47 variable_value = d.getVar(variable, True) or ''
48 if variable_value:
49 files=set()
50 for path in variable_value.split():
51 if os.path.splitext(path)[1] == extension or extension == None:
52 if dir:
53 files.add(os.path.join(dir, os.path.basename(path)))
54 else:
55 files.add(os.path.basename(path))
56 if len(files) != 0:
57 return ' '.join(files)
58 return ''