aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-04-21 16:00:46 +0530
committerJussi Pakkanen <jpakkane@gmail.com>2018-04-21 16:59:33 +0300
commita015804049bd7131e42cdfd6f97cca8024b65634 (patch)
tree79e685c1c0bbd296439c0b2d2cec27394d7c300a
parent8dd6b8c7eda1197d5ccf8d604c70ff183c84e634 (diff)
downloadmeson-a015804049bd7131e42cdfd6f97cca8024b65634.zip
meson-a015804049bd7131e42cdfd6f97cca8024b65634.tar.gz
meson-a015804049bd7131e42cdfd6f97cca8024b65634.tar.bz2
ninja backend: Fix shared library symbols path
The entire subdirectory was getting duplicated, which was exceeding the max path limit in Python on Windows and causing build failures. Example: subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/subprojects@gst-plugins-bad@gst-libs@gst@uridownloader@@gsturidownloader-1.0@sha/subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/gsturidownloader-1.0-0.dll.symbols This path is too long and opening it will cause a FileNotFoundError on Windows.
-rw-r--r--mesonbuild/backend/ninjabackend.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index d403cad..eeac388 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -2356,10 +2356,11 @@ rule FORTRAN_DEP_HACK%s
return pch_objects
def generate_shsym(self, outfile, target):
- target_name = self.get_target_filename(target)
+ target_name = target.get_filename()
+ target_file = self.get_target_filename(target)
targetdir = self.get_target_private_dir(target)
symname = os.path.join(targetdir, target_name + '.symbols')
- elem = NinjaBuildElement(self.all_outputs, symname, 'SHSYM', target_name)
+ elem = NinjaBuildElement(self.all_outputs, symname, 'SHSYM', target_file)
if self.environment.is_cross_build() and self.environment.cross_info.need_cross_compiler():
elem.add_item('CROSS', '--cross-host=' + self.environment.cross_info.config['host_machine']['system'])
elem.write(outfile)
@@ -2611,7 +2612,7 @@ rule FORTRAN_DEP_HACK%s
def get_dependency_filename(self, t):
if isinstance(t, build.SharedLibrary):
- return os.path.join(self.get_target_private_dir(t), self.get_target_filename(t) + '.symbols')
+ return os.path.join(self.get_target_private_dir(t), t.get_filename() + '.symbols')
elif isinstance(t, mesonlib.File):
if t.is_built:
return t.relative_name()