|
|
- Some modules such as dynamic library maybe cann't be imported while cross compile,
- we just check whether does the module exist.
-
- Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
- --- a/buildtools/wafsamba/samba_bundled.py
- +++ b/buildtools/wafsamba/samba_bundled.py
- @@ -2,6 +2,7 @@
-
- import sys
- import Build, Options, Logs
- +import imp, os
- from Configure import conf
- from samba_utils import TO_LIST
-
- @@ -249,17 +250,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
- # versions
- minversion = minimum_library_version(conf, libname, minversion)
-
- - try:
- - m = __import__(modulename)
- - except ImportError:
- - found = False
- - else:
- + # Find module in PYTHONPATH
- + stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
- + if stuff:
- try:
- - version = m.__version__
- - except AttributeError:
- + m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2])
- + except ImportError:
- found = False
- +
- + if conf.env.CROSS_COMPILE:
- + # Some modules such as dynamic library maybe cann't be imported
- + # while cross compile, we just check whether the module exist
- + Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1]))
- + found = True
- else:
- - found = tuplize_version(version) >= tuplize_version(minversion)
- + try:
- + version = m.__version__
- + except AttributeError:
- + found = False
- + else:
- + found = tuplize_version(version) >= tuplize_version(minversion)
- + finally:
- + if stuff[0]:
- + stuff[0].close()
- + else:
- + found = False
- +
- if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
- Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
- sys.exit(1)
|