return False
return True
-def __LIB_MUST_BE(liblist, libname):
+def __LIB_MUST_BE(liblist_in, defaults, libname):
+ liblist = []
+ for lib in liblist_in:
+ if lib == "DEFAULT":
+ liblist += defaults
+ else:
+ liblist += [lib]
+
if libname in liblist:
return True
if '!%s' % libname in liblist:
@conf
def LIB_MUST_BE_BUNDLED(conf, libname):
- return __LIB_MUST_BE(conf.env.BUNDLED_LIBS, libname)
+ return __LIB_MUST_BE(conf.env.BUNDLED_LIBS, [], libname)
@conf
def LIB_MUST_BE_PRIVATE(conf, libname):
- return __LIB_MUST_BE(conf.env.PRIVATE_LIBS, libname)
+ return __LIB_MUST_BE(conf.env.PRIVATE_LIBS, conf.env.DEFAULT_PRIVATE_LIBS, libname)
@conf
def CHECK_BUNDLED_SYSTEM_PKG(conf, libname, minversion='0.0.0',
not use these libraries and they are placed in a private filesystem
prefix.
+Likewise, it allows the value of DEFAULT (currently {','.join(Context.g_module.DEFAULT_PRIVATE_LIBS) if getattr(Context.g_module, 'DEFAULT_PRIVATE_LIBS', False) else "''"})
+to be overridden, allowing a private-by-default library to be exposed.
+
May include !LIBNAME to disable making a library private in order to
-limit the effect of 'ALL' '''),
- action="store", dest='PRIVATE_LIBS', default='')
+limit the effect of 'ALL' and 'DEFAULT'.'''),
+ action="store", dest='PRIVATE_LIBS', default='DEFAULT')
extension_default = default_value('PRIVATE_EXTENSION_DEFAULT')
gr.add_option('--private-library-extension',
conf.env.PRIVATELIBDIR = Options.options.PRIVATELIBDIR
conf.env.BUNDLED_LIBS = Options.options.BUNDLED_LIBS.split(',')
conf.env.SYSTEM_LIBS = ()
+
+ if getattr(Context.g_module, 'DEFAULT_PRIVATE_LIBS', False):
+ conf.env.DEFAULT_PRIVATE_LIBS = Context.g_module.DEFAULT_PRIVATE_LIBS
+
conf.env.PRIVATE_LIBS = Options.options.PRIVATE_LIBS.split(',')
conf.env.BUILTIN_LIBRARIES = Options.options.BUILTIN_LIBRARIES.split(',')
conf.env.NONSHARED_BINARIES = Options.options.NONSHARED_BINARIES.split(',')