aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorAleksey Gurtovoy <agurtovoy@acm.org>2019-11-01 15:24:58 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2019-11-02 16:16:09 +0200
commit48e6db89ab702c0f7c0fb8b9cbcac857dce9c6ef (patch)
treebbc4f72a5b06176f5eeb20cf6a3b8e2abea73d70 /mesonbuild/backend/ninjabackend.py
parent025e11c9a72f313c6fa667e085b1de0e55a38781 (diff)
downloadmeson-48e6db89ab702c0f7c0fb8b9cbcac857dce9c6ef.zip
meson-48e6db89ab702c0f7c0fb8b9cbcac857dce9c6ef.tar.gz
meson-48e6db89ab702c0f7c0fb8b9cbcac857dce9c6ef.tar.bz2
Ask Ninja to expand rsp files in compile_commands.json
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r--mesonbuild/backend/ninjabackend.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 0f65253..985b910 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -285,9 +285,10 @@ int dummy;
def generate(self, interp):
self.interpreter = interp
- self.ninja_command = environment.detect_ninja(log=True)
- if self.ninja_command is None:
+ ninja = environment.detect_ninja_command_and_version(log=True)
+ if ninja is None:
raise MesonException('Could not detect Ninja v1.5 or newer')
+ (self.ninja_command, self.ninja_version) = ninja
outfilename = os.path.join(self.environment.get_build_dir(), self.ninja_filename)
tempfilename = outfilename + '~'
with open(tempfilename, 'w', encoding='utf-8') as outfile:
@@ -342,7 +343,8 @@ int dummy;
for lang in self.environment.coredata.compilers[for_machine]:
rules += [self.get_compiler_rule_name(lang, for_machine)]
rules += [self.get_pch_rule_name(lang, for_machine)]
- ninja_compdb = [self.ninja_command, '-t', 'compdb'] + rules
+ compdb_options = ['-x'] if mesonlib.version_compare(self.ninja_version, '>=1.9') else []
+ ninja_compdb = [self.ninja_command, '-t', 'compdb'] + compdb_options + rules
builddir = self.environment.get_build_dir()
try:
jsondb = subprocess.check_output(ninja_compdb, cwd=builddir)