return
visited_dirs.add(key)
relpath = os.path.relpath(abspath, ctx.path.abspath())
- if ctxclass in ['tmp', 'OptionsContext', 'ConfigurationContext', 'BuildContext', 'ClangDbContext']:
+ if ctxclass in ['OptionsContext',
+ 'ConfigurationContext',
+ 'BuildContext',
+ 'CleanContext',
+ 'InstallContext',
+ 'UninstallContext',
+ 'ListContext',
+ 'ClangDbContext']:
return ctx.recurse(relpath)
if 'waflib.extras.compat15' in sys.modules:
return ctx.recurse(relpath)
from waflib import ConfigSet
from waflib.TaskGen import feature, after
from waflib.Configure import conf, ConfigurationContext
-from waflib.extras import clang_compilation_database
from waflib.Tools.flex import decide_ext
decider = decide_ext,
)
-
-for y in (Build.BuildContext, Build.CleanContext, Build.InstallContext, Build.UninstallContext, Build.ListContext, clang_compilation_database.ClangDbContext):
- class tmp(y):
- variant = 'default'
+Build.BuildContext.variant = 'default'
+Build.CleanContext.variant = 'default'
+Build.InstallContext.variant = 'default'
+Build.UninstallContext.variant = 'default'
+Build.ListContext.variant = 'default'
def abspath(self, env=None):
if env and hasattr(self, 'children'):
action="store_true",
dest='undefined_sanitizer',
default=False)
+ gr.add_option('--enable-clangdb',
+ help=("Enable use of clang_compilation_database"),
+ action="store_true", dest='enable_clangdb', default=False)
gr.add_option('--enable-libfuzzer',
help=("Build fuzzing binaries (use ADDITIONAL_CFLAGS to specify compiler options for libFuzzer or use CC=honggfuzz/hfuzz-cc)"),
action="store_true", dest='enable_libfuzzer', default=False)
conf.DEFINE('FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION', 1)
conf.env.FUZZ_TARGET_LDFLAGS = Options.options.FUZZ_TARGET_LDFLAGS
- conf.load('clang_compilation_database')
-
- # Create a symlink of the compile db for clangd
- symlink(os.path.join(conf.bldnode.abspath(), 'default/compile_commands.json'),
- os.path.join(conf.srcnode.abspath(), 'compile_commands.json'),
- force=True)
+ conf.env.enable_clangdb = Options.options.enable_clangdb
+ if conf.env.enable_clangdb:
+ conf.load('clang_compilation_database')
+ # Create a symlink of the compile db for clangd
+ symlink(os.path.join(conf.bldnode.abspath(), 'default/compile_commands.json'),
+ os.path.join(conf.srcnode.abspath(), 'compile_commands.json'),
+ force=True)
conf.SAMBA_BUILD_ENV()