diff options
| -rw-r--r-- | meta/classes/externalsrc.bbclass | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index bdf23ec6be..39789ea30f 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass | |||
| @@ -124,11 +124,13 @@ python () { | |||
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | python externalsrc_configure_prefunc() { | 126 | python externalsrc_configure_prefunc() { |
| 127 | s_dir = d.getVar('S') | ||
| 127 | # Create desired symlinks | 128 | # Create desired symlinks |
| 128 | symlinks = (d.getVar('EXTERNALSRC_SYMLINKS') or '').split() | 129 | symlinks = (d.getVar('EXTERNALSRC_SYMLINKS') or '').split() |
| 130 | newlinks = [] | ||
| 129 | for symlink in symlinks: | 131 | for symlink in symlinks: |
| 130 | symsplit = symlink.split(':', 1) | 132 | symsplit = symlink.split(':', 1) |
| 131 | lnkfile = os.path.join(d.getVar('S'), symsplit[0]) | 133 | lnkfile = os.path.join(s_dir, symsplit[0]) |
| 132 | target = d.expand(symsplit[1]) | 134 | target = d.expand(symsplit[1]) |
| 133 | if len(symsplit) > 1: | 135 | if len(symsplit) > 1: |
| 134 | if os.path.islink(lnkfile): | 136 | if os.path.islink(lnkfile): |
| @@ -140,6 +142,19 @@ python externalsrc_configure_prefunc() { | |||
| 140 | # File/dir exists with same name as link, just leave it alone | 142 | # File/dir exists with same name as link, just leave it alone |
| 141 | continue | 143 | continue |
| 142 | os.symlink(target, lnkfile) | 144 | os.symlink(target, lnkfile) |
| 145 | newlinks.append(symsplit[0]) | ||
| 146 | # Hide the symlinks from git | ||
| 147 | try: | ||
| 148 | git_exclude_file = os.path.join(s_dir, '.git/info/exclude') | ||
| 149 | if os.path.exists(git_exclude_file): | ||
| 150 | with open(git_exclude_file, 'r+') as efile: | ||
| 151 | elines = efile.readlines() | ||
| 152 | for link in newlinks: | ||
| 153 | if link in elines or '/'+link in elines: | ||
| 154 | continue | ||
| 155 | efile.write('/' + link + '\n') | ||
| 156 | except IOError as ioe: | ||
| 157 | bb.note('Failed to hide EXTERNALSRC_SYMLINKS from git') | ||
| 143 | } | 158 | } |
| 144 | 159 | ||
| 145 | python externalsrc_compile_prefunc() { | 160 | python externalsrc_compile_prefunc() { |
