mirror of https://gitlab.com/ita1024/waf.git
Merge branch 'python_flat_install' into 'master'
Allow for flat install of python files via `py` feature See merge request ita1024/waf!2249
This commit is contained in:
commit
0178e6a692
|
@ -0,0 +1,3 @@
|
|||
"""
|
||||
Nested file in bar/
|
||||
"""
|
|
@ -0,0 +1,3 @@
|
|||
"""
|
||||
Nested file in foo/
|
||||
"""
|
|
@ -50,3 +50,21 @@ def build(bld):
|
|||
source = 'test.c',
|
||||
target = 'test')
|
||||
|
||||
# Install files keeping their directory structure (default: relative_trick=True)
|
||||
#
|
||||
# This will create two files:
|
||||
# * lib/python2.7/site-packages/nested_scripts/bar/nested_bar.py
|
||||
# * lib/python2.7/site-packages/nested_scripts/foo/nested_foo.py
|
||||
bld(features='py',
|
||||
source=bld.path.ant_glob('nested_scripts/**/*.py'),
|
||||
install_from='.')
|
||||
|
||||
# Install files flatting the directory structure (relative_trick=False)
|
||||
#
|
||||
# This will create two files:
|
||||
# * lib/python2.7/site-packages/nested_bar.py
|
||||
# * lib/python2.7/site-packages/nested_foo.py
|
||||
bld(features='py',
|
||||
source=bld.path.ant_glob('nested_scripts/**/*.py'),
|
||||
relative_trick=False,
|
||||
install_from='.')
|
||||
|
|
|
@ -79,14 +79,19 @@ def process_py(self, node):
|
|||
"""
|
||||
Add signature of .py file, so it will be byte-compiled when necessary
|
||||
"""
|
||||
assert(hasattr(self, 'install_path')), 'add features="py"'
|
||||
assert(hasattr(self, 'install_path')), 'add features="py" for target "%s" in "%s/wscript".' % (self.target, self.path.nice_path())
|
||||
self.install_from = getattr(self, 'install_from', None)
|
||||
relative_trick = getattr(self, 'relative_trick', True)
|
||||
if self.install_from:
|
||||
assert isinstance(self.install_from, Node.Node), \
|
||||
'add features="py" for target "%s" in "%s/wscript" (%s).' % (self.target, self.path.nice_path(), type(self.install_from))
|
||||
|
||||
# where to install the python file
|
||||
if self.install_path:
|
||||
if self.install_from:
|
||||
self.add_install_files(install_to=self.install_path, install_from=node, cwd=self.install_from, relative_trick=True)
|
||||
self.add_install_files(install_to=self.install_path, install_from=node, cwd=self.install_from, relative_trick=relative_trick)
|
||||
else:
|
||||
self.add_install_files(install_to=self.install_path, install_from=node, relative_trick=True)
|
||||
self.add_install_files(install_to=self.install_path, install_from=node, relative_trick=relative_trick)
|
||||
|
||||
lst = []
|
||||
if self.env.PYC:
|
||||
|
@ -96,9 +101,11 @@ def process_py(self, node):
|
|||
|
||||
if self.install_path:
|
||||
if self.install_from:
|
||||
pyd = Utils.subst_vars("%s/%s" % (self.install_path, node.path_from(self.install_from)), self.env)
|
||||
target_dir = node.path_from(self.install_from) if relative_trick else node.name
|
||||
pyd = Utils.subst_vars("%s/%s" % (self.install_path, target_dir), self.env)
|
||||
else:
|
||||
pyd = Utils.subst_vars("%s/%s" % (self.install_path, node.path_from(self.path)), self.env)
|
||||
target_dir = node.path_from(self.path) if relative_trick else node.name
|
||||
pyd = Utils.subst_vars("%s/%s" % (self.install_path, target_dir), self.env)
|
||||
else:
|
||||
pyd = node.abspath()
|
||||
|
||||
|
@ -115,7 +122,7 @@ def process_py(self, node):
|
|||
tsk.pyd = pyd
|
||||
|
||||
if self.install_path:
|
||||
self.add_install_files(install_to=os.path.dirname(pyd), install_from=pyobj, cwd=node.parent.get_bld(), relative_trick=True)
|
||||
self.add_install_files(install_to=os.path.dirname(pyd), install_from=pyobj, cwd=node.parent.get_bld(), relative_trick=relative_trick)
|
||||
|
||||
class pyc(Task.Task):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue