diff options
| author | Nathan Rossi <nathan.rossi@xilinx.com> | 2013-09-04 16:44:20 +1000 |
|---|---|---|
| committer | Nathan Rossi <nathan.rossi@xilinx.com> | 2013-09-04 18:38:58 +1000 |
| commit | 5527261cec9017c5bf77166241422a74625beab0 (patch) | |
| tree | 233e11fb46cd4ac77075c9a2a46c02f7d3bbfa63 /classes | |
| parent | cc54f70d15afdb882341951d13c7da2d45ddb93b (diff) | |
| download | meta-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.bbclass | 58 |
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' | ||
| 4 | def 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 | ||
| 15 | def 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 | ||
| 30 | def 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. | ||
| 46 | def 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 '' | ||
