diff mupdf-source/thirdparty/harfbuzz/src/check-libstdc++.py @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/harfbuzz/src/check-libstdc++.py	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+import sys, os, shutil, subprocess
+
+os.chdir (os.getenv ('srcdir', os.path.dirname (__file__)))
+
+libs = os.getenv ('libs', '.libs')
+
+ldd = os.getenv ('LDD', shutil.which ('ldd'))
+if not ldd:
+	otool = os.getenv ('OTOOL', shutil.which ('otool'))
+	if otool:
+		ldd = otool + ' -L'
+	else:
+		print ('check-libstdc++.py: \'ldd\' not found; skipping test')
+		sys.exit (77)
+
+stat = 0
+tested = False
+
+# harfbuzz-icu links to libstdc++ because icu does.
+for soname in ['harfbuzz', 'harfbuzz-subset', 'harfbuzz-gobject']:
+	for suffix in ['so', 'dylib']:
+		so = os.path.join (libs, 'lib%s.%s' % (soname, suffix))
+		if not os.path.exists (so): continue
+
+		print ('Checking that we are not linking to libstdc++ or libc++ in %s' % so)
+		ldd_result = subprocess.check_output (ldd.split() + [so])
+		if (b'libstdc++' in ldd_result) or (b'libc++' in ldd_result):
+			print ('Ouch, %s is linked to libstdc++ or libc++' % so)
+			stat = 1
+
+		tested = True
+
+if not tested:
+	print ('check-libstdc++.py: libharfbuzz shared library not found; skipping test')
+	sys.exit (77)
+
+sys.exit (stat)