--- a/python/mozbuild/mozbuild/compilation/database.py
+++ b/python/mozbuild/mozbuild/compilation/database.py
@@ -41,24 +41,24 @@ class CompileDBBackend(CommonBackend):
def consume_object(self, obj):
consumed = CommonBackend.consume_object(self, obj)
if consumed:
return True
- if isinstance(obj, Sources) or isinstance(obj, HostSources) or \
- isinstance(obj, GeneratedSources):
+ # We ignore host compilations for now, the code doesn't handle them
+ # properly.
+ if isinstance(obj, (Sources, GeneratedSources)):
# For other sources, include each source file.
for f in obj.files:
flags = self._get_dir_flags(obj.objdir)
self._build_db_line(obj.objdir, self.environment, f,
- obj.canonical_suffix, flags,
- isinstance(obj, HostSources))
+ obj.canonical_suffix, flags)
return True
def consume_finished(self):
CommonBackend.consume_finished(self)
import json
# Output the database (a JSON file) to objdir/compile_commands.json
@@ -67,35 +67,35 @@ class CompileDBBackend(CommonBackend):
json.dump(self._db, jsonout, indent=0)
def _process_unified_sources(self, obj):
# For unified sources, only include the unified source file.
# Note that unified sources are never used for host sources.
for f in obj.unified_source_mapping:
flags = self._get_dir_flags(obj.objdir)
self._build_db_line(obj.objdir, self.environment, f[0],
- obj.canonical_suffix, flags, False)
+ obj.canonical_suffix, flags)
def _handle_idl_manager(self, idl_manager):
pass
def _handle_ipdl_sources(self, ipdl_dir, sorted_ipdl_sources,
unified_ipdl_cppsrcs_mapping):
flags = self._get_dir_flags(ipdl_dir)
for f in unified_ipdl_cppsrcs_mapping:
self._build_db_line(ipdl_dir, self.environment, f[0],
- '.cpp', flags, False)
+ '.cpp', flags)
def _handle_webidl_build(self, bindings_dir, unified_source_mapping,
webidls, expected_build_output_files,
global_define_files):
flags = self._get_dir_flags(bindings_dir)
for f in unified_source_mapping:
self._build_db_line(bindings_dir, self.environment, f[0],
- '.cpp', flags, False)
+ '.cpp', flags)
def _get_dir_flags(self, directory):
if directory in self._flags:
return self._flags[directory]
from mozbuild.util import resolve_target_to_make
make_dir, make_target = resolve_target_to_make(self.environment.topobjdir, directory)
@@ -110,27 +110,25 @@ class CompileDBBackend(CommonBackend):
if name not in build_vars:
continue
build_vars[name] = util.sanitize_cflags(shell_split(build_vars[name]))
self._flags[directory] = build_vars
return self._flags[directory]
- def _build_db_line(self, objdir, cenv, filename, canonical_suffix, flags, ishost):
- # Distinguish between host and target files.
- prefix = 'HOST_' if ishost else ''
+ def _build_db_line(self, objdir, cenv, filename, canonical_suffix, flags):
if canonical_suffix in ('.c', '.m'):
- compiler = cenv.substs[prefix + 'CC']
+ compiler = cenv.substs['CC']
cflags = list(flags['COMPILE_CFLAGS'])
# Add the Objective-C flags if needed.
if canonical_suffix == '.m':
cflags.extend(flags['COMPILE_CMFLAGS'])
elif canonical_suffix in ('.cpp', '.mm'):
- compiler = cenv.substs[prefix + 'CXX']
+ compiler = cenv.substs['CXX']
cflags = list(flags['COMPILE_CXXFLAGS'])
# Add the Objective-C++ flags if needed.
if canonical_suffix == '.mm':
cflags.extend(flags['COMPILE_CMMFLAGS'])
else:
return
cmd = compiler.split() + [