Support to build Python module without pkg-config
authorKentaro Hayashi <kenhys@gmail.com>
Mon, 21 Nov 2022 13:13:33 +0000 (22:13 +0900)
committerKentaro Hayashi <kenhys@xdump.org>
Mon, 21 Nov 2022 13:43:46 +0000 (13:43 +0000)
Gbp-Pq: Name support-python-module-in-place.patch

python/setup.py

index fdf939491b8ac7e254ae098297a2be961f50081f..5170d9a2bfa3eea47a615b6210d4ebf229e49df0 100755 (executable)
@@ -77,25 +77,29 @@ class build_ext(_build_ext):
   """Override build_extension to run cmake."""
 
   def build_extension(self, ext):
-    cflags, libs = get_cflags_and_libs('../build/root')
-    if len(libs) == 0:
-      cflags, libs = get_cflags_and_libs('./bundled/root')
-
-    if len(libs) == 0:
-      if is_sentencepiece_installed():
-        cflags = cflags + run_pkg_config('cflags')
-        libs = run_pkg_config('libs')
-      else:
-        subprocess.check_call(['./build_bundled.sh', __version__])
-        cflags, libs = get_cflags_and_libs('./bundled/root')
+    cflags, libs = get_cflags_and_libs('../build/root')
+    if len(libs) == 0:
+      cflags, libs = get_cflags_and_libs('./bundled/root')
+
+    if len(libs) == 0:
+      if is_sentencepiece_installed():
+        cflags = cflags + run_pkg_config('cflags')
+        libs = run_pkg_config('libs')
+      else:
+        subprocess.check_call(['./build_bundled.sh', __version__])
+        cflags, libs = get_cflags_and_libs('./bundled/root')
 
     # Fix compile on some versions of Mac OSX
     # See: https://github.com/neulab/xnmt/issues/199
-    if sys.platform == 'darwin':
-      cflags.append('-mmacosx-version-min=10.9')
-    else:
-      cflags.append('-Wl,-strip-all')
-      libs.append('-Wl,-strip-all')
+    # if sys.platform == 'darwin':
+    #   cflags.append('-mmacosx-version-min=10.9')
+    # else:
+    #   cflags.append('-Wl,-strip-all')
+    #   libs.append('-Wl,-strip-all')
+    cflags = ['-I../src']
+    cmd = "dpkg-architecture -q DEB_BUILD_GNU_TYPE"
+    arch = subprocess.check_output(cmd, shell=True).decode("utf-8").strip().split()[0]
+    libs = ["-L../obj-%s/src" % arch, "-lsentencepiece", "-lsentencepiece_train"]
     print('## cflags={}'.format(' '.join(cflags)))
     print('## libs={}'.format(' '.join(libs)))
     ext.extra_compile_args = cflags