devtool / recipetool: support specifying a subdirectory within the fetched source
Sometimes you don't want to build an entire project, just a subdirectory of it; add a --src-subdir option to make that easier. (We still look for a single subdirectory in what gets unpacked, e.g. what you might find within a tarball, so whatever you specify with this option is added onto the end of that.) (From OE-Core rev: 59682d78f95732e014f78f13e0a05f843860d9bb) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
7e1691de0a
commit
50e40fc91f
|
@ -141,6 +141,8 @@ def add(args, config, basepath, workspace):
|
|||
extracmdopts += ' -b'
|
||||
if args.also_native:
|
||||
extracmdopts += ' --also-native'
|
||||
if args.src_subdir:
|
||||
extracmdopts += ' --src-subdir "%s"' % args.src_subdir
|
||||
|
||||
tempdir = tempfile.mkdtemp(prefix='devtool')
|
||||
try:
|
||||
|
@ -208,6 +210,9 @@ def add(args, config, basepath, workspace):
|
|||
if not rd:
|
||||
return 1
|
||||
|
||||
if args.src_subdir:
|
||||
srctree = os.path.join(srctree, args.src_subdir)
|
||||
|
||||
bb.utils.mkdirhier(os.path.dirname(appendfile))
|
||||
with open(appendfile, 'w') as f:
|
||||
f.write('inherit externalsrc\n')
|
||||
|
@ -1308,6 +1313,7 @@ def register_commands(subparsers, context):
|
|||
parser_add.add_argument('--no-git', '-g', help='If fetching source, do not set up source tree as a git repository', action="store_true")
|
||||
parser_add.add_argument('--binary', '-b', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure). Useful with binary packages e.g. RPMs.', action='store_true')
|
||||
parser_add.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true')
|
||||
parser_add.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR')
|
||||
parser_add.set_defaults(func=add)
|
||||
|
||||
parser_modify = subparsers.add_parser('modify', help='Modify the source for an existing recipe',
|
||||
|
|
|
@ -324,6 +324,12 @@ def create_recipe(args):
|
|||
srcuri = ''
|
||||
srctree = args.source
|
||||
|
||||
if args.src_subdir:
|
||||
srcsubdir = os.path.join(srcsubdir, args.src_subdir)
|
||||
srctree_use = os.path.join(srctree, args.src_subdir)
|
||||
else:
|
||||
srctree_use = srctree
|
||||
|
||||
if args.outfile and os.path.isdir(args.outfile):
|
||||
outfile = None
|
||||
outdir = args.outfile
|
||||
|
@ -343,7 +349,7 @@ def create_recipe(args):
|
|||
lines_before.append('# (Feel free to remove these comments when editing.)')
|
||||
lines_before.append('#')
|
||||
|
||||
licvalues = guess_license(srctree)
|
||||
licvalues = guess_license(srctree_use)
|
||||
lic_files_chksum = []
|
||||
if licvalues:
|
||||
licenses = []
|
||||
|
@ -472,7 +478,7 @@ def create_recipe(args):
|
|||
|
||||
extravalues = {}
|
||||
for handler in handlers:
|
||||
handler.process(srctree, classes, lines_before, lines_after, handled, extravalues)
|
||||
handler.process(srctree_use, classes, lines_before, lines_after, handled, extravalues)
|
||||
|
||||
if not realpv:
|
||||
realpv = extravalues.get('PV', None)
|
||||
|
@ -759,5 +765,6 @@ def register_commands(subparsers):
|
|||
parser_create.add_argument('-V', '--version', help='Version to use within recipe (PV)')
|
||||
parser_create.add_argument('-b', '--binary', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure)', action='store_true')
|
||||
parser_create.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true')
|
||||
parser_create.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR')
|
||||
parser_create.set_defaults(func=create_recipe)
|
||||
|
||||
|
|
Loading…
Reference in New Issue