是否可以使用Emscripten编译GLib(然后编译Autotrace)?

时间:2020-03-29 12:44:58

标签: glib emscripten ninja meson-build

在典型的configuremakemake install工作流程中,使用Emscripten进行编译似乎非常容易。

我想编译Autotrace(使用此工作流程),但它需要GLib

在Emscripten文档中,提到了在这种情况下GLib必须使用Emscripten进行编译。但是GLib使用mesonninja作为编译工具。

是否可以用Emscripten编译GLib? (足以使Autotrace在浏览器中运行吗?)

1 个答案:

答案 0 :(得分:1)

Meson支持交叉编译,因此您可以通过编写“交叉文件”将Emscripten视为交叉编译器:

emscripten.txt

[binaries]
c = '/opt/emsdk-portable/emscripten/1.38.8/emcc'
cpp = '/opt/emsdk-portable/emscripten/1.38.8/em++'
ar = '/opt/emsdk-portable/emscripten/1.38.8/emar'
#exe_wrapper = 'node'

[properties]
root = '/opt/emsdk-portable/emscripten/1.38.8/system'
c_args = ['-s', 'WASM=1', '-O2']
c_link_args = ['-s', 'WASM=1','-O2']
cpp_args = ['-s', 'WASM=1','-O2']
cpp_link_args = ['-s', 'WASM=1','-O2']
shared_lib_suffix = 'js'
static_lib_suffix = 'js'
shared_module_suffix = 'js'
exe_suffix = 'js'

[host_machine]
system = 'emscripten'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

(摘自https://github.com/prozum/meson-samples/blob/master/emscripten.txt

将路径替换为Emscripten工具的路径。然后使用meson --cross-file=emscripten.txt调用介子。