fontconfig: Branch 'master'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 src/cutout.py   |   16 ++++++++++++++--
 src/meson.build |    5 ++++-
 2 files changed, 18 insertions(+), 3 deletions(-)

New commits:
commit ae9ac2a1bfb6fa800b99791b6fc36711dd0c1fbc
Author: Tim-Philipp Müller <tim@xxxxxxxxxxxxxxx>
Date:   Sun Jan 17 12:51:59 2021 +0000

    meson: fix cross-compilation issues with gperf header file preprocessing
    
    Pass c_args to the compiler when preprocessing the gperf header file,
    they might contain important bits without which compilation/preprocessing
    might fail (e.g. with clang on Android). cc.cmd_array() does not include
    the c_args and we can't easily look them up from the meson.build file, so
    we have to retrieve from the introspection info.
    
    This is basically the Meson equivalent to commit 57103773.

diff --git a/src/cutout.py b/src/cutout.py
index 96cafd2..323eec8 100644
--- a/src/cutout.py
+++ b/src/cutout.py
@@ -1,5 +1,6 @@
 import argparse
 import subprocess
+import json
 import os
 import re
 
@@ -7,12 +8,23 @@ if __name__== '__main__':
     parser = argparse.ArgumentParser()
     parser.add_argument('input')
     parser.add_argument('output')
+    parser.add_argument('buildroot')
 
     args = parser.parse_known_args()
-    print (args[0].output)
+
+    # c_args might contain things that are essential for crosscompilation, but
+    # are not included in cc.cmd_array(), so we have to look them up ourselves
+    host_cargs = []
+    buildroot = args[0].buildroot
+    with open(os.path.join(buildroot, 'meson-info', 'intro-buildoptions.json')) as json_file:
+        bopts = json.load(json_file)
+        for opt in bopts:
+            if opt['name'] == 'c_args' and opt['section'] == 'compiler' and opt['machine'] == 'host':
+                host_cargs = opt['value']
+                break
 
     cpp = args[1]
-    ret = subprocess.run(cpp + [args[0].input], stdout=subprocess.PIPE, check=True)
+    ret = subprocess.run(cpp + host_cargs + [args[0].input], stdout=subprocess.PIPE, check=True)
 
     stdout = ret.stdout.decode('utf8')
 
diff --git a/src/meson.build b/src/meson.build
index f2a4861..7f9bf31 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -44,10 +44,13 @@ endif
 
 cpp += ['-I', join_paths(meson.current_source_dir(), '..')]
 
+# Can use meson.project_build_dir() once we require Meson 0.56
+project_build_dir = meson.current_build_dir() / '..'
+
 fcobjshash_gperf = custom_target('fcobjshash.gperf',
   input: 'fcobjshash.gperf.h',
   output: 'fcobjshash.gperf',
-  command: [python3, files('cutout.py')[0], '@INPUT@', '@OUTPUT@', cpp],
+  command: [python3, files('cutout.py')[0], '@INPUT@', '@OUTPUT@', project_build_dir, cpp],
   build_by_default: true,
 )
 
_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/fontconfig




[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux