Можно ли скомпилировать GLib (а затем скомпилировать Autotrace) с Emscripten? - PullRequest
1 голос
/ 29 марта 2020

Компиляция с Emscripten кажется действительно простой с типичными configure, make и make install рабочими процессами.

Я хотел бы скомпилировать Autotrace (который использует этот рабочий процесс), но он требует GLib .

В Emscripten do c упоминается, что в таком случае GLib должен быть скомпилирован с Emscripten. Однако GLib использует meson и ninja в качестве инструментов компиляции.

Возможно ли скомпилировать GLib с Emscripten? (и будет ли этого достаточно, чтобы Autotrace работал в браузере?)

1 Ответ

1 голос
/ 31 марта 2020

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.

...