aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
blob: 8effc723bbab1c3361b9804d3acc450bf968f413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- a/bear/main.py.in
+++ b/bear/main.py.in
@@ -49,6 +49,7 @@ import tempfile
 import shutil
 import contextlib
 import logging
+from distutils.spawn import find_executable
 
 # Map of ignored compiler option for the creation of a compilation database.
 # This map is used in _split_command method, which classifies the parameters
@@ -569,7 +570,15 @@ class Compilation:
                 (compiler, language, rest of the command) otherwise """
 
         if command:  # not empty list will allow to index '0' and '1:'
-            executable = os.path.basename(command[0])  # type: str
+            executable_file = find_executable(command[0])
+            if executable_file:
+                absolute_executable = os.path.realpath(executable_file)
+                # Ignore Nix wrappers.
+                if 'wrapper' in absolute_executable:
+                    return None
+                executable = os.path.basename(absolute_executable)
+            else:
+                executable = os.path.basename(command[0])
             parameters = command[1:]  # type: List[str]
             # 'wrapper' 'parameters' and
             # 'wrapper' 'compiler' 'parameters' are valid.