aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2017-12-04 15:29:35 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2017-12-16 12:51:08 +0200
commit63d2f0bf0736cdd3e7f13ecb720030684c8f987f (patch)
tree6c6626d77381e9c3237084bdb769ff6bffe22768
parent54d0faa3ddc66ddfd2198b9cf18da0e4eb2c37dd (diff)
downloadmeson-63d2f0bf0736cdd3e7f13ecb720030684c8f987f.zip
meson-63d2f0bf0736cdd3e7f13ecb720030684c8f987f.tar.gz
meson-63d2f0bf0736cdd3e7f13ecb720030684c8f987f.tar.bz2
Do not extract object for header sources
Closes #2716
-rw-r--r--mesonbuild/backend/backends.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 3f1e4ce..5a5db22 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -346,6 +346,11 @@ class Backend:
assert isinstance(source, mesonlib.File)
build_dir = self.environment.get_build_dir()
rel_src = source.rel_to_builddir(self.build_to_src)
+
+ if (not self.environment.is_source(rel_src) or
+ self.environment.is_header(rel_src)) and not is_unity:
+ return None
+
# foo.vala files compile down to foo.c and then foo.c.o, not foo.vala.o
if rel_src.endswith(('.vala', '.gs')):
# See description in generate_vala_compile for this logic.
@@ -393,8 +398,9 @@ class Backend:
return [objpath]
for osrc in extobj.srclist:
objname = self.object_filename_from_source(extobj.target, osrc, False)
- objpath = os.path.join(proj_dir_to_build_root, targetdir, objname)
- result.append(objpath)
+ if objname:
+ objpath = os.path.join(proj_dir_to_build_root, targetdir, objname)
+ result.append(objpath)
return result
def get_pch_include_args(self, compiler, target):