EasyRPG / buildscripts

The scripts used to compile needed libraries for supported platform ports on our Jenkins server
https://ci.easyrpg.org/view/Toolchains/
Other
16 stars 17 forks source link

Emscripten toolchain fails to build Harfbuzz/Freetype on aarch64 macOS #141

Open patapancakes opened 1 year ago

patapancakes commented 1 year ago

Building the Emscripten toolchain fails on macOS while compiling Harfbuzz/Freetype. Commenting out those libraries in the shell script makes the build succeed.

[1/3] Building CXX object CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o
FAILED: CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o 
/opt/homebrew/Cellar/emscripten/3.1.28/libexec/em++ -DHAVE_ATEXIT -DHAVE_FREETYPE=1 -DHAVE_FT_DONE_MM_VAR -DHAVE_FT_GET_VAR_BLEND_COORDINATES -DHAVE_FT_SET_VAR_BLEND_COORDINATES -DHAVE_GETPAGESIZE -DHAVE_ISATTY -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_PTHREAD -DHAVE_STDBOOL_H -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/build/src -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/include/freetype2 -O2 -g0 -sUSE_SDL=0 -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/include -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -O2 -g -DNDEBUG -MD -MT CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o -MF CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o.d -o CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o -c /Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/harfbuzz.cc
In file included from /Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/harfbuzz.cc:14:
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:790:5: error: cast from 'int (*)(const FT_Vector *, hb_draw_session_t *)' (aka 'int (*)(const FT_Vector_ *, hb_draw_session_t *)') to 'FT_Outline_MoveToFunc' (aka 'int (*)(const FT_Vector_ *, void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    (FT_Outline_MoveToFunc) _hb_ft_move_to,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:791:5: error: cast from 'int (*)(const FT_Vector *, hb_draw_session_t *)' (aka 'int (*)(const FT_Vector_ *, hb_draw_session_t *)') to 'FT_Outline_LineToFunc' (aka 'int (*)(const FT_Vector_ *, void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    (FT_Outline_LineToFunc) _hb_ft_line_to,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:792:5: error: cast from 'int (*)(const FT_Vector *, const FT_Vector *, hb_draw_session_t *)' (aka 'int (*)(const FT_Vector_ *, const FT_Vector_ *, hb_draw_session_t *)') to 'FT_Outline_ConicToFunc' (aka 'int (*)(const FT_Vector_ *, const FT_Vector_ *, void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    (FT_Outline_ConicToFunc) _hb_ft_conic_to,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:793:5: error: cast from 'int (*)(const FT_Vector *, const FT_Vector *, const FT_Vector *, hb_draw_session_t *)' (aka 'int (*)(const FT_Vector_ *, const FT_Vector_ *, const FT_Vector_ *, hb_draw_session_t *)') to 'FT_Outline_CubicToFunc' (aka 'int (*)(const FT_Vector_ *, const FT_Vector_ *, const FT_Vector_ *, void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    (FT_Outline_CubicToFunc) _hb_ft_cubic_to,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:1005:73: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
  if (unlikely (!ft_face->generic.data || ft_face->generic.finalizer != (FT_Generic_Finalizer) hb_ft_face_finalize))
                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb.hh:248:46: note: expanded from macro 'unlikely'
#define unlikely(expr) (__builtin_expect (!!(expr), 0))
                                             ^~~~
In file included from /Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/harfbuzz.cc:14:
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:1011:34: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
    ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/hb-ft.cc:1274:32: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
  ft_face->generic.finalizer = (FT_Generic_Finalizer) _release_blob;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 errors generated.
em++: error: '/opt/homebrew/Cellar/emscripten/3.1.28/libexec/llvm/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN --sysroot=/opt/homebrew/Cellar/emscripten/3.1.28/libexec/cache/sysroot -Xclang -iwithsysroot/include/compat -DHAVE_ATEXIT -DHAVE_FREETYPE=1 -DHAVE_FT_DONE_MM_VAR -DHAVE_FT_GET_VAR_BLEND_COORDINATES -DHAVE_FT_SET_VAR_BLEND_COORDINATES -DHAVE_GETPAGESIZE -DHAVE_ISATTY -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_PTHREAD -DHAVE_STDBOOL_H -DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/build/src -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/include/freetype2 -O2 -g0 -I/Users/maru/Developer/EasyRPG/buildscripts/emscripten/include -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -O2 -g3 -DNDEBUG -MD -MT CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o -MF CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o.d -c /Users/maru/Developer/EasyRPG/buildscripts/emscripten/harfbuzz-5.3.1/src/harfbuzz.cc -o CMakeFiles/harfbuzz.dir/src/harfbuzz.cc.o' failed (returned 1)
ninja: build stopped: subcommand failed.
carstene1ns commented 3 months ago

We have bumped the versions since then, can you check if this works nowadays? Thanks! :)