Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qt Wasm #956

Closed
kassane opened this issue Sep 16, 2020 · 18 comments
Closed

Qt Wasm #956

kassane opened this issue Sep 16, 2020 · 18 comments

Comments

@kassane
Copy link

kassane commented Sep 16, 2020

Taking advantage of the new feature of xmake that allows to compile in wasm, I tried to use it in a Qt quick project with emcc and official qt-wasm_sdk.

Command:

PATH=$PATH:/usr/lib/emscripten
xmake f --qt=~/Qt/5.15.1 --toolchain=emcc -c
xmake -vD

Error Output:

checking for the Qt SDK directory ... /home/kassane/Qt/5.15.1/wasm_32
checking for the Qt SDK version ... 5.15.1
checking for the c++ compiler (cxx) ... emcc
checking for the /usr/lib/emscripten/emcc ... ok
checking for the flags (-fvisibility-inlines-hidden) ... ok
> emcc "-fvisibility-inlines-hidden"
checking for the flags (-O3) ... ok
> emcc "-O3"
checking for the flags (-fPIC) ... ok
> emcc "-fPIC"
[ 60%]: compiling.qt.qrc src/qml.qrc
/home/kassane/Qt/5.15.1/wasm_32/bin/rcc -name qml src/qml.qrc -o build/.gens/test_Qt/linux/x86_64/release/rules/qt/qrc/qml.cpp
checking for the ccache ... /usr/bin/ccache
[ 40%]: ccache compiling.release src/main.cpp
/usr/bin/ccache /usr/lib/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/kassane/Qt/5.15.1/wasm_32/include/QtGui -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQuick -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQml -I/home/kassane/Qt/5.15.1/wasm_32/include/QtCore -I/home/kassane/Qt/5.15.1/wasm_32/include -I/home/kassane/Qt/5.15.1/wasm_32/mkspecs/linux-g++ -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -fPIC -o build/.objs/test_Qt/linux/x86_64/release/src/main.cpp.o src/main.cpp
/usr/bin/ccache /usr/lib/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/kassane/Qt/5.15.1/wasm_32/include/QtGui -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQuick -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQml -I/home/kassane/Qt/5.15.1/wasm_32/include/QtCore -I/home/kassane/Qt/5.15.1/wasm_32/include -I/home/kassane/Qt/5.15.1/wasm_32/mkspecs/linux-g++ -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -fPIC -o build/.objs/test_Qt/linux/x86_64/release/gens/rules/qt/qrc/qml.cpp.o build/.gens/test_Qt/linux/x86_64/release/rules/qt/qrc/qml.cpp
checking for the flags (-MMD -MF) ... ok
> emcc "-MMD" "-MF" "/dev/null"
checking for the flags (-fcolor-diagnostics) ... ok
> emcc "-fcolor-diagnostics"
checking for the em++ ... /usr/lib/emscripten/em++
checking for the linker (ld) ... em++
[ 80%]: linking.release test_Qt
/usr/lib/emscripten/em++ -o build/linux/x86_64/release/test_Qt build/.objs/test_Qt/linux/x86_64/release/src/main.cpp.o build/.objs/test_Qt/linux/x86_64/release/gens/rules/qt/qrc/qml.cpp.o -L/home/kassane/Qt/5.15.1/wasm_32/lib -s -lQt5Gui -lQt5Quick -lQt5Qml -lQt5Core
error: @programdir/modules/private/async/runjobs.lua:210: @programdir/actions/build/kinds/binary.lua:85: @programdir/core/sandbox/modules/os.lua:258: error: undefined symbol: _ZN15QNetworkRequest12setAttributeENS_9AttributeERK8QVariant (referenced by top-level compiled C/C++ code)
warning: Link with `-s LLD_REPORT_UNDEFINED` to get more information on undefined symbols
warning: To disable errors for undefined symbols use `-s ERROR_ON_UNDEFINED_SYMBOLS=0`
warning: __ZN15QNetworkRequest12setAttributeENS_9AttributeERK8QVariant may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequest12setRawHeaderERK10QByteArrayS2_ (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequest12setRawHeaderERK10QByteArrayS2_ may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequest6setUrlERK4QUrl (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequest6setUrlERK4QUrl may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequest9setHeaderENS_12KnownHeadersERK8QVariant (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequest9setHeaderENS_12KnownHeadersERK8QVariant may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequestC1ERK4QUrl (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequestC1ERK4QUrl may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequestC1ERKS_ (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequestC1ERKS_ may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequestC1Ev (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequestC1Ev may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN15QNetworkRequestD1Ev (referenced by top-level compiled C/C++ code)
warning: __ZN15QNetworkRequestD1Ev may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager14deleteResourceERK15QNetworkRequest (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager14deleteResourceERK15QNetworkRequest may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager3getERK15QNetworkRequest (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager3getERK15QNetworkRequest may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager3putERK15QNetworkRequestRK10QByteArray (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager3putERK15QNetworkRequestRK10QByteArray may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager4headERK15QNetworkRequest (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager4headERK15QNetworkRequest may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManager4postERK15QNetworkRequestRK10QByteArray (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManager4postERK15QNetworkRequestRK10QByteArray may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZN21QNetworkAccessManagerC1EP7QObject (referenced by top-level compiled C/C++ code)
warning: __ZN21QNetworkAccessManagerC1EP7QObject may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply10isFinishedEv (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply10isFinishedEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply13rawHeaderListEv (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply13rawHeaderListEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply3urlEv (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply3urlEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply5errorEv (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply5errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply9attributeEN15QNetworkRequest9AttributeE (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply9attributeEN15QNetworkRequest9AttributeE may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK13QNetworkReply9rawHeaderERK10QByteArray (referenced by top-level compiled C/C++ code)
warning: __ZNK13QNetworkReply9rawHeaderERK10QByteArray may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK15QNetworkRequest6headerENS_12KnownHeadersE (referenced by top-level compiled C/C++ code)
warning: __ZNK15QNetworkRequest6headerENS_12KnownHeadersE may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK15QNetworkRequest9attributeENS_9AttributeERK8QVariant (referenced by top-level compiled C/C++ code)
warning: __ZNK15QNetworkRequest9attributeENS_9AttributeERK8QVariant may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _ZNK15QNetworkRequest9rawHeaderERK10QByteArray (referenced by top-level compiled C/C++ code)
warning: __ZNK15QNetworkRequest9rawHeaderERK10QByteArray may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_blob_create (referenced by top-level compiled C/C++ code)
warning: _hb_blob_create may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_blob_get_empty (referenced by top-level compiled C/C++ code)
warning: _hb_blob_get_empty may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_face_create_for_tables (referenced by top-level compiled C/C++ code)
warning: _hb_face_create_for_tables may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_face_destroy (referenced by top-level compiled C/C++ code)
warning: _hb_face_destroy may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_face_is_immutable (referenced by top-level compiled C/C++ code)
warning: _hb_face_is_immutable may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_face_set_index (referenced by top-level compiled C/C++ code)
warning: _hb_face_set_index may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_face_set_upem (referenced by top-level compiled C/C++ code)
warning: _hb_face_set_upem may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_ot_layout_table_find_script (referenced by top-level compiled C/C++ code)
warning: _hb_ot_layout_table_find_script may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: hb_ot_tags_from_script (referenced by top-level compiled C/C++ code)
warning: _hb_ot_tags_from_script may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_code_free_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_code_free_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_compile_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_compile_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_config_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_config_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_get_ovector_pointer_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_get_ovector_pointer_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_jit_compile_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_jit_compile_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_jit_stack_assign_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_jit_stack_assign_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_jit_stack_create_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_jit_stack_create_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_jit_stack_free_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_jit_stack_free_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_match_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_match_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_match_context_create_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_match_context_create_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_match_context_free_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_match_context_free_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_match_data_create_from_pattern_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_match_data_create_from_pattern_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_match_data_free_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_match_data_free_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: pcre2_pattern_info_16 (referenced by top-level compiled C/C++ code)
warning: _pcre2_pattern_info_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_create_info_struct (referenced by top-level compiled C/C++ code)
warning: _png_create_info_struct may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_create_read_struct (referenced by top-level compiled C/C++ code)
warning: _png_create_read_struct may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_create_write_struct (referenced by top-level compiled C/C++ code)
warning: _png_create_write_struct may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_destroy_read_struct (referenced by top-level compiled C/C++ code)
warning: _png_destroy_read_struct may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_destroy_write_struct (referenced by top-level compiled C/C++ code)
warning: _png_destroy_write_struct may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_error (referenced by top-level compiled C/C++ code)
warning: _png_error may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_IHDR (referenced by top-level compiled C/C++ code)
warning: _png_get_IHDR may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_PLTE (referenced by top-level compiled C/C++ code)
warning: _png_get_PLTE may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_cHRM (referenced by top-level compiled C/C++ code)
warning: _png_get_cHRM may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_channels (referenced by top-level compiled C/C++ code)
warning: _png_get_channels may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_gAMA (referenced by top-level compiled C/C++ code)
warning: _png_get_gAMA may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_iCCP (referenced by top-level compiled C/C++ code)
warning: _png_get_iCCP may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_image_height (referenced by top-level compiled C/C++ code)
warning: _png_get_image_height may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_image_width (referenced by top-level compiled C/C++ code)
warning: _png_get_image_width may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_io_ptr (referenced by top-level compiled C/C++ code)
warning: _png_get_io_ptr may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_oFFs (referenced by top-level compiled C/C++ code)
warning: _png_get_oFFs may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_sRGB (referenced by top-level compiled C/C++ code)
warning: _png_get_sRGB may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_tRNS (referenced by top-level compiled C/C++ code)
warning: _png_get_tRNS may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_text (referenced by top-level compiled C/C++ code)
warning: _png_get_text may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_valid (referenced by top-level compiled C/C++ code)
warning: _png_get_valid may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_x_pixels_per_meter (referenced by top-level compiled C/C++ code)
warning: _png_get_x_pixels_per_meter may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_get_y_pixels_per_meter (referenced by top-level compiled C/C++ code)
warning: _png_get_y_pixels_per_meter may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_read_end (referenced by top-level compiled C/C++ code)
warning: _png_read_end may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_read_image (referenced by top-level compiled C/C++ code)
warning: _png_read_image may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_read_info (referenced by top-level compiled C/C++ code)
warning: _png_read_info may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_read_row (referenced by top-level compiled C/C++ code)
warning: _png_read_row may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_read_update_info (referenced by top-level compiled C/C++ code)
warning: _png_read_update_info may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_IHDR (referenced by top-level compiled C/C++ code)
warning: _png_set_IHDR may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_PLTE (referenced by top-level compiled C/C++ code)
warning: _png_set_PLTE may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_benign_errors (referenced by top-level compiled C/C++ code)
warning: _png_set_benign_errors may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_bgr (referenced by top-level compiled C/C++ code)
warning: _png_set_bgr may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_compression_level (referenced by top-level compiled C/C++ code)
warning: _png_set_compression_level may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_error_fn (referenced by top-level compiled C/C++ code)
warning: _png_set_error_fn may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_expand (referenced by top-level compiled C/C++ code)
warning: _png_set_expand may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_filler (referenced by top-level compiled C/C++ code)
warning: _png_set_filler may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_gAMA (referenced by top-level compiled C/C++ code)
warning: _png_set_gAMA may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_gamma (referenced by top-level compiled C/C++ code)
warning: _png_set_gamma may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_gray_to_rgb (referenced by top-level compiled C/C++ code)
warning: _png_set_gray_to_rgb may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_iCCP (referenced by top-level compiled C/C++ code)
warning: _png_set_iCCP may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_interlace_handling (referenced by top-level compiled C/C++ code)
warning: _png_set_interlace_handling may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_invert_mono (referenced by top-level compiled C/C++ code)
warning: _png_set_invert_mono may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_longjmp_fn (referenced by top-level compiled C/C++ code)
warning: _png_set_longjmp_fn may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_oFFs (referenced by top-level compiled C/C++ code)
warning: _png_set_oFFs may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_option (referenced by top-level compiled C/C++ code)
warning: _png_set_option may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_pHYs (referenced by top-level compiled C/C++ code)
warning: _png_set_pHYs may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_packing (referenced by top-level compiled C/C++ code)
warning: _png_set_packing may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_packswap (referenced by top-level compiled C/C++ code)
warning: _png_set_packswap may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_read_fn (referenced by top-level compiled C/C++ code)
warning: _png_set_read_fn may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_sig_bytes (referenced by top-level compiled C/C++ code)
warning: _png_set_sig_bytes may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_strip_16 (referenced by top-level compiled C/C++ code)
warning: _png_set_strip_16 may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_swap (referenced by top-level compiled C/C++ code)
warning: _png_set_swap may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_tRNS (referenced by top-level compiled C/C++ code)
warning: _png_set_tRNS may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_text (referenced by top-level compiled C/C++ code)
warning: _png_set_text may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_set_write_fn (referenced by top-level compiled C/C++ code)
warning: _png_set_write_fn may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_write_chunk (referenced by top-level compiled C/C++ code)
warning: _png_write_chunk may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_write_end (referenced by top-level compiled C/C++ code)
warning: _png_write_end may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_write_image (referenced by top-level compiled C/C++ code)
warning: _png_write_image may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_write_info (referenced by top-level compiled C/C++ code)
warning: _png_write_info may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: png_write_rows (referenced by top-level compiled C/C++ code)
warning: _png_write_rows may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
Error: Aborting compilation due to previous errors
em++: error: '/usr/bin/node /usr/lib/emscripten/src/compiler.js /tmp/tmpz_860yyp.txt' failed (1)

stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:792]: in function 'raise'
    [@programdir/core/sandbox/modules/os.lua:258]: in function 'runv'
    [@programdir/modules/core/tools/gcc.lua:334]:
    [C]: in function 'link'
    [@programdir/actions/build/kinds/binary.lua:85]: in function '_do_link_target'
    [@programdir/actions/build/kinds/binary.lua:109]:
    [@programdir/actions/build/kinds/binary.lua:130]: in function '_link_target'
    [@programdir/actions/build/kinds/binary.lua:152]: in function 'jobfunc'
    [@programdir/modules/private/async/runjobs.lua:188]:
    [C]: in function 'trycall'
    [@programdir/core/sandbox/modules/try.lua:121]: in function 'try'
    [@programdir/modules/private/async/runjobs.lua:182]: in function 'cotask'
    [@programdir/core/base/scheduler.lua:317]:

stack traceback:
        [C]: in function 'error'
        @programdir/core/base/os.lua:792: in function 'raise'
        @programdir/modules/private/async/runjobs.lua:210: in function 'catch'
        @programdir/core/sandbox/modules/try.lua:127: in function 'try'
        @programdir/modules/private/async/runjobs.lua:182: in function 'cotask'
        @programdir/core/base/scheduler.lua:317: in function <@programdir/core/base/scheduler.lua:315>

Please provide compiling and running environment information:

  • xmake version: 2.3.7
  • os: Arch Linux
  • target platform: x86_64
@waruqi
Copy link
Member

waruqi commented Sep 16, 2020

official qt-wasm_sdk.?is this --qt=~/Qt/5.15.1?

undefined symbol: png_read_image (referenced by top-level compiled C/C++ code)

The libpng library inside does not seem to support wasm

@kassane
Copy link
Author

kassane commented Sep 16, 2020

@waruqi , qt-wasm_sdk was just a reference of mine to say that I am using the official Qt installation. Right at the beginning of the post I mentioned the command line!
As for libpng, I hadn't seen the inclusion of it. Because I used the default project available in xmake.

@waruqi
Copy link
Member

waruqi commented Sep 16, 2020

For qt projects, xmake will automatically link some basic dependent libraries inside qt sdk, such as libpng, etc., which are all required

First of all, we need to confirm whether the qt sdk supports wasm, the native qt library does not contain wasm bytecode, I don’t think it can be used directly

@waruqi
Copy link
Member

waruqi commented Sep 16, 2020

Maybe we need to download the qt binary sdk that supports wasm, or cross compile the qt sdk that supports wasm from the source code.

https://doc.qt.io/qt-5/wasm.html

@kassane
Copy link
Author

kassane commented Sep 17, 2020

Currently Qt only compiles for wasm using qmake. So just below I put the makefile generated by qmake.

Makefile (generated by qmake):

#############################################################################
# Makefile for building: ./test.js
# Generated by qmake (3.1) (Qt 5.15.1)
# Project:  ../test.pro
# Template: app
# Command: /home/kassane/Qt/5.15.1/wasm_32/bin/qmake -o Makefile ../test.pro
#############################################################################

MAKEFILE      = Makefile

EQ            = =

####### Compiler, tools and options

CC            = emcc
CXX           = em++
DEFINES       = -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
CFLAGS        = -pipe -O2 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra $(DEFINES)
CXXFLAGS      = -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra $(DEFINES)
INCPATH       = -I../../test -I. -I../../../../Qt/5.15.1/wasm_32/include -I../../../../Qt/5.15.1/wasm_32/include/QtQuick -I../../../../Qt/5.15.1/wasm_32/include/QtGui -I../../../../Qt/5.15.1/wasm_32/include/QtQmlModels -I../../../../Qt/5.15.1/wasm_32/include/QtQml -I../../../../Qt/5.15.1/wasm_32/include/QtNetwork -I../../../../Qt/5.15.1/wasm_32/include/QtCore -I. -I/home/kassane/.emscripten_ports/openssl/include -I../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten
QMAKE         = /home/kassane/Qt/5.15.1/wasm_32/bin/qmake
DEL_FILE      = rm -f
CHK_DIR_EXISTS= test -d
MKDIR         = mkdir -p
COPY          = cp -f
COPY_FILE     = cp -f
COPY_DIR      = cp -f -R
INSTALL_FILE  = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR   = cp -f -R
QINSTALL      = /home/kassane/Qt/5.15.1/wasm_32/bin/qmake -install qinstall
QINSTALL_PROGRAM = /home/kassane/Qt/5.15.1/wasm_32/bin/qmake -install qinstall -exe
DEL_FILE      = rm -f
SYMLINK       = ln -f -s
DEL_DIR       = rmdir
MOVE          = mv -f
TAR           = tar -cf
COMPRESS      = gzip -9f
DISTNAME      = test.js1.0.0
DISTDIR = /home/kassane/Documentos/Projetos/test/build/.tmp/test.js1.0.0
LINK          = em++
LFLAGS        = -s WASM=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 -s EXIT_RUNTIME=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"] --bind -s FETCH=1 -O2 -s ALLOW_MEMORY_GROWTH=1
LIBS          = $(SUBLIBS) /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/libqwasm.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5EventDispatcherSupport.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5FontDatabaseSupport.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtfreetype.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5EglSupport.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqgif.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqicns.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqico.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqjpeg.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqtga.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqtiff.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqwbmp.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqwebp.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQml/libqmlplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQml/Models.2/libmodelsplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Window.2/libwindowplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick.2/libqtquick2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QuickControls2.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QuickTemplates2.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Quick.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Gui.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtlibpng.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtharfbuzz.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QmlModels.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Qml.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Network.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Core.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtpcre2.a   
AR            = emar cqs
RANLIB        = 
SED           = sed
STRIP         = 

####### Output directory

OBJECTS_DIR   = ./

####### Files

SOURCES       = ../main.cpp /home/kassane/Documentos/Projetos/test/build/test.js_plugin_import.cpp \
		/home/kassane/Documentos/Projetos/test/build/test.js_qml_plugin_import.cpp \
		qrc_qml.cpp
OBJECTS       = main.o \
		test.js_plugin_import.o \
		test.js_qml_plugin_import.o \
		qrc_qml.o
DIST          = /home/Qt/5.15.1/wasm_32/mkspecs/features/spec_pre.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/common/sanitize.conf \
		/home/Qt/5.15.1/wasm_32/mkspecs/common/gcc-base.conf \
		/home/Qt/5.15.1/wasm_32/mkspecs/common/clang.conf \
		/home/Qt/5.15.1/wasm_32/mkspecs/qdevice.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/device_config.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/wasm/emcc_ver.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/qconfig.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_accessibility_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_bootstrap_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_edid_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_egl_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fb_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmldevtools_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickparticles_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickshapes_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_service_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_theme_support_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uiplugin.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_zlib_private.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_eglvideonode.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qgif.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qicns.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qico.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qjpeg.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvg.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvgicon.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtga.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtiff.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwasm.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwbmp.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwebp.pri \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/qt_functions.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/qt_config.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten/qmake.conf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/spec_post.prf \
		../../.qmake.stash \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/exclusive_builds.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/toolchain.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/default_pre.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/wasm/default_pre.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/resolve_config.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/default_post.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/wasm/wasm.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/warn_on.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/qt.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/resources_functions.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/resources.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/moc.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/unix/opengl.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/qmake_use.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/file_copies.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/testcase_targets.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/exceptions.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/yacc.prf \
		/home/Qt/5.15.1/wasm_32/mkspecs/features/lex.prf \
		../../test.pro  ../main.cpp
QMAKE_TARGET  = test.js
DESTDIR       = ./
TARGET        = ./test.js


first: all
####### Build rules

./test.js: /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Quick.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Gui.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QmlModels.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Qml.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Network.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Core.a $(OBJECTS)  apphtml appjs appsvg
	@test -d ./ || mkdir -p ./
	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

Makefile: ../test.pro ../../../../Qt/5.15.1/wasm_32/mkspecs/features/spec_pre.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/common/sanitize.conf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/common/gcc-base.conf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/common/clang.conf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/qdevice.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/device_config.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/emcc_ver.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/qconfig.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_accessibility_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_bootstrap_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_edid_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_egl_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fb_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmldevtools_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickparticles_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickshapes_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_service_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_theme_support_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uiplugin.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_zlib_private.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_eglvideonode.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qgif.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qicns.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qico.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qjpeg.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvg.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvgicon.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtga.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtiff.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwasm.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwbmp.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwebp.pri \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt_functions.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt_config.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten/qmake.conf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/spec_post.prf \
		../.qmake.stash \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/exclusive_builds.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/toolchain.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/default_pre.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/default_pre.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/resolve_config.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/default_post.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/wasm.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/warn_on.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/resources_functions.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/resources.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/moc.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/unix/opengl.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/qmake_use.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/file_copies.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/testcase_targets.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/exceptions.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/yacc.prf \
		../../../../Qt/5.15.1/wasm_32/mkspecs/features/lex.prf \
		../test.pro \
		../qml.qrc \
		../../../../Qt/5.15.1/wasm_32/plugins/platforms/libqwasm.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqgif.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqicns.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqico.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqjpeg.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqtga.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqtiff.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqwbmp.prl \
		../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqwebp.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5Quick.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5Gui.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5QmlModels.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5Qml.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5Network.prl \
		../../../../Qt/5.15.1/wasm_32/lib/libQt5Core.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick.2/libqtquick2plugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQml/libqmlplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQml/Models.2/libmodelsplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Window.2/libwindowplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin.prl \
		../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin.prl
	$(QMAKE) -o Makefile ../test.pro
../../../../Qt/5.15.1/wasm_32/mkspecs/features/spec_pre.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/common/sanitize.conf:
../../../../Qt/5.15.1/wasm_32/mkspecs/common/gcc-base.conf:
../../../../Qt/5.15.1/wasm_32/mkspecs/common/clang.conf:
../../../../Qt/5.15.1/wasm_32/mkspecs/qdevice.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/device_config.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/emcc_ver.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/qconfig.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_accessibility_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_bootstrap_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_core_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_edid_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_egl_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fb_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gamepad_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_gui_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimedia_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_network_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_opengl_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_openglextensions_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_printsupport_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qml_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmldevtools_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmlmodels_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qmltest_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quick_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickparticles_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickshapes_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_quickwidgets_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_remoteobjects_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_repparser_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_scxml_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_sensors_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_service_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_svg_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_testlib_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_texttospeech_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_theme_support_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uiplugin.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_uitools_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webchannel_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_websockets_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_webview_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_widgets_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xml_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_lib_zlib_private.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_eglvideonode.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qgif.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qicns.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qico.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qjpeg.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvg.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qsvgicon.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtga.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtiff.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtsensors_generic.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qtuiotouchplugin.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwasm.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwbmp.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/modules/qt_plugin_qwebp.pri:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt_functions.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt_config.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten/qmake.conf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/spec_post.prf:
../.qmake.stash:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/exclusive_builds.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/toolchain.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/default_pre.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/default_pre.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/resolve_config.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/default_post.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/wasm/wasm.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/warn_on.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/qt.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/resources_functions.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/resources.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/moc.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/unix/opengl.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/qmake_use.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/file_copies.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/testcase_targets.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/exceptions.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/yacc.prf:
../../../../Qt/5.15.1/wasm_32/mkspecs/features/lex.prf:
../test.pro:
../qml.qrc:
../../../../Qt/5.15.1/wasm_32/plugins/platforms/libqwasm.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqgif.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqicns.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqico.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqjpeg.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqtga.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqtiff.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqwbmp.prl:
../../../../Qt/5.15.1/wasm_32/plugins/imageformats/libqwebp.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5Quick.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5Gui.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5QmlModels.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5Qml.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5Network.prl:
../../../../Qt/5.15.1/wasm_32/lib/libQt5Core.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick.2/libqtquick2plugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQml/libqmlplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQml/Models.2/libmodelsplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Window.2/libwindowplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin.prl:
../../../../Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin.prl:
qmake: FORCE
	@$(QMAKE) -o Makefile ../test.pro

qmake_all: FORCE


all: Makefile ./test.js

dist: distdir FORCE
	(cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)

distdir: FORCE
	@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
	$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
	$(COPY_FILE) --parents ../qml.qrc $(DISTDIR)/
	$(COPY_FILE) --parents ../../../../Qt/5.15.1/wasm_32/mkspecs/features/data/dummy.cpp $(DISTDIR)/
	$(COPY_FILE) --parents ../main.cpp $(DISTDIR)/


clean: compiler_clean 
	-$(DEL_FILE) $(OBJECTS)
	-$(DEL_FILE) *~ core *.core


distclean: clean 
	-$(DEL_FILE) $(TARGET) 
	-$(DEL_FILE) *.html *.js *.wasm /home/kassane/Documentos/Projetos/test/build/test.js_plugin_import.cpp /home/kassane/Documentos/Projetos/test/build/test.js_qml_plugin_import.cpp
	-$(DEL_FILE) Makefile


####### Sub-libraries

apphtml: /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/wasm_shell.html
	sed -e s/@APPNAME@/test/g /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/wasm_shell.html > /home/kassane/Documentos/Projetos/test/build/test.html

appjs: /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtloader.js
	cp -f /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtloader.js /home/kassane/Documentos/Projetos/test/build

appsvg: /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtlogo.svg
	cp -f /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtlogo.svg /home/kassane/Documentos/Projetos/test/build

shellfiles: apphtml appjs appsvg

mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean

mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all

check: first

benchmark: first

compiler_apphtml_make_all:
compiler_apphtml_clean:
	-$(DEL_FILE) test.html
compiler_appjs_make_all:
compiler_appjs_clean:
	-$(DEL_FILE) qtloader.js
compiler_appsvg_make_all:
compiler_appsvg_clean:
	-$(DEL_FILE) qtlogo.svg
compiler_rcc_make_all: qrc_qml.cpp
compiler_rcc_clean:
	-$(DEL_FILE) qrc_qml.cpp
qrc_qml.cpp: ../qml.qrc \
		../../../../Qt/5.15.1/wasm_32/bin/rcc \
		../qtquickcontrols2.conf \
		../main.qml
	/home/kassane/Qt/5.15.1/wasm_32/bin/rcc -name qml ../qml.qrc -o qrc_qml.cpp

compiler_moc_predefs_make_all: moc_predefs.h
compiler_moc_predefs_clean:
	-$(DEL_FILE) moc_predefs.h
moc_predefs.h: ../../../../Qt/5.15.1/wasm_32/mkspecs/features/data/dummy.cpp
	em++ -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -dM -E -o moc_predefs.h ../../../../Qt/5.15.1/wasm_32/mkspecs/features/data/dummy.cpp

compiler_moc_header_make_all:
compiler_moc_header_clean:
compiler_moc_objc_header_make_all:
compiler_moc_objc_header_clean:
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean 

####### Compile

main.o: ../main.cpp ../../../../Qt/5.15.1/wasm_32/include/QtGui/QGuiApplication \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qguiapplication.h \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qtguiglobal.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qglobal.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qconfig-bootstrapped.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qconfig.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qtcore-config.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qsystemdetection.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qprocessordetection.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcompilerdetection.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qtypeinfo.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qsysinfo.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qlogging.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qflags.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qatomic.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qbasicatomic.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qatomic_bootstrap.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qgenericatomic.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qatomic_cxx11.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qatomic_msvc.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qglobalstatic.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qmutex.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qnumeric.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qversiontagging.h \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qtgui-config.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcoreapplication.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstring.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qchar.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qbytearray.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qrefcount.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qnamespace.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qarraydata.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringliteral.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringalgorithms.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringview.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringbuilder.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qobject.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qobjectdefs.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qobjectdefs_impl.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qlist.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qalgorithms.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qiterator.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qhashfunctions.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qpair.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qvector.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcontainertools_impl.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qpoint.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qbytearraylist.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringlist.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qregexp.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qstringmatcher.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcoreevent.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qscopedpointer.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qmetatype.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qvarlengtharray.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcontainerfwd.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qobject_impl.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qeventloop.h \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qwindowdefs.h \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qwindowdefs_win.h \
		../../../../Qt/5.15.1/wasm_32/include/QtGui/qinputmethod.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qlocale.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qvariant.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qmap.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qdebug.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qhash.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qtextstream.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qiodevice.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qset.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qcontiguouscache.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qsharedpointer.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qshareddata.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qsharedpointer_impl.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qsize.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qmargins.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/QQmlApplicationEngine \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlapplicationengine.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlengine.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qurl.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qurlquery.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qjsengine.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qjsvalue.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qtqmlglobal.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qtqml-config.h \
		../../../../Qt/5.15.1/wasm_32/include/QtNetwork/qtnetworkglobal.h \
		../../../../Qt/5.15.1/wasm_32/include/QtNetwork/qtnetwork-config.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmldebug.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqml.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlprivate.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlparserstatus.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmllist.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlpropertyvaluesource.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qpointer.h \
		../../../../Qt/5.15.1/wasm_32/include/QtCore/qmetaobject.h \
		../../../../Qt/5.15.1/wasm_32/include/QtQml/qqmlerror.h
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp

test.js_plugin_import.o: /home/kassane/Documentos/Projetos/test/build/test.js_plugin_import.cpp 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o test.js_plugin_import.o /home/kassane/Documentos/Projetos/test/build/test.js_plugin_import.cpp

test.js_qml_plugin_import.o: /home/kassane/Documentos/Projetos/test/build/test.js_qml_plugin_import.cpp 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o test.js_qml_plugin_import.o /home/kassane/Documentos/Projetos/test/build/test.js_qml_plugin_import.cpp

qrc_qml.o: qrc_qml.cpp 
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_qml.o qrc_qml.cpp

####### Install

install_target: first FORCE
	@test -d $(INSTALL_ROOT)/opt/test/bin || mkdir -p $(INSTALL_ROOT)/opt/test/bin
	$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/test/bin/$(QMAKE_TARGET)

uninstall_target: FORCE
	-$(DEL_FILE) $(INSTALL_ROOT)/opt/test/bin/$(QMAKE_TARGET)
	-$(DEL_DIR) $(INSTALL_ROOT)/opt/test/bin/ 


install_js_file: first FORCE
	@test -d $(INSTALL_ROOT)/opt/test/bin || mkdir -p $(INSTALL_ROOT)/opt/test/bin
	$(QINSTALL_PROGRAM) /home/kassane/Documentos/Projetos/test/test.js $(INSTALL_ROOT)/opt/test/bin/test.js

uninstall_js_file: FORCE
	-$(DEL_FILE) -r $(INSTALL_ROOT)/opt/test/bin/test.js
	-$(DEL_DIR) $(INSTALL_ROOT)/opt/test/bin/ 


install: install_target install_js_file  FORCE

uninstall: uninstall_target uninstall_js_file  FORCE

FORCE:

Output

QMake:
Project WARNING: This Qt was built with Emscripten version 1.39.8. You have 2.0.1. The difference may cause issues.

Make:

em++ -c -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../test3 -I. -I../../../../Qt/5.15.1/wasm_32/include -I../../../../Qt/5.15.1/wasm_32/include/QtQuick -I../../../../Qt/5.15.1/wasm_32/include/QtGui -I../../../../Qt/5.15.1/wasm_32/include/QtQmlModels -I../../../../Qt/5.15.1/wasm_32/include/QtQml -I../../../../Qt/5.15.1/wasm_32/include/QtNetwork -I../../../../Qt/5.15.1/wasm_32/include/QtCore -I. -I/home/kassane/.emscripten_ports/openssl/include -I../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -o main.o ../main.cpp
em++ -c -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../test3 -I. -I../../../../Qt/5.15.1/wasm_32/include -I../../../../Qt/5.15.1/wasm_32/include/QtQuick -I../../../../Qt/5.15.1/wasm_32/include/QtGui -I../../../../Qt/5.15.1/wasm_32/include/QtQmlModels -I../../../../Qt/5.15.1/wasm_32/include/QtQml -I../../../../Qt/5.15.1/wasm_32/include/QtNetwork -I../../../../Qt/5.15.1/wasm_32/include/QtCore -I. -I/home/kassane/.emscripten_ports/openssl/include -I../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -o test3.js_plugin_import.o /home/kassane/Documentos/Projetos/test3/build/test3.js_plugin_import.cpp
em++ -c -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../test3 -I. -I../../../../Qt/5.15.1/wasm_32/include -I../../../../Qt/5.15.1/wasm_32/include/QtQuick -I../../../../Qt/5.15.1/wasm_32/include/QtGui -I../../../../Qt/5.15.1/wasm_32/include/QtQmlModels -I../../../../Qt/5.15.1/wasm_32/include/QtQml -I../../../../Qt/5.15.1/wasm_32/include/QtNetwork -I../../../../Qt/5.15.1/wasm_32/include/QtCore -I. -I/home/kassane/.emscripten_ports/openssl/include -I../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -o test3.js_qml_plugin_import.o /home/kassane/Documentos/Projetos/test3/build/test3.js_qml_plugin_import.cpp
/home/kassane/Qt/5.15.1/wasm_32/bin/rcc -name qml ../qml.qrc -o qrc_qml.cpp
em++ -c -pipe -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../test3 -I. -I../../../../Qt/5.15.1/wasm_32/include -I../../../../Qt/5.15.1/wasm_32/include/QtQuick -I../../../../Qt/5.15.1/wasm_32/include/QtGui -I../../../../Qt/5.15.1/wasm_32/include/QtQmlModels -I../../../../Qt/5.15.1/wasm_32/include/QtQml -I../../../../Qt/5.15.1/wasm_32/include/QtNetwork -I../../../../Qt/5.15.1/wasm_32/include/QtCore -I. -I/home/kassane/.emscripten_ports/openssl/include -I../../../../Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -o qrc_qml.o qrc_qml.cpp
sed -e s/@APPNAME@/test3/g /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/wasm_shell.html > /home/kassane/Documentos/Projetos/test3/build/test3.html
cp -f /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtloader.js /home/kassane/Documentos/Projetos/test3/build
cp -f /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/qtlogo.svg /home/kassane/Documentos/Projetos/test3/build
em++ -s WASM=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 -s EXIT_RUNTIME=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"] --bind -s FETCH=1 -O2 -s ALLOW_MEMORY_GROWTH=1 -o ./test3.js main.o test3.js_plugin_import.o test3.js_qml_plugin_import.o qrc_qml.o   /home/kassane/Qt/5.15.1/wasm_32/plugins/platforms/libqwasm.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5EventDispatcherSupport.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5FontDatabaseSupport.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtfreetype.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5EglSupport.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqgif.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqicns.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqico.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqjpeg.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqtga.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqtiff.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqwbmp.a /home/kassane/Qt/5.15.1/wasm_32/plugins/imageformats/libqwebp.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQml/libqmlplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQml/Models.2/libmodelsplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Window.2/libwindowplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick.2/libqtquick2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QuickControls2.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QuickTemplates2.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Quick.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Gui.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtlibpng.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtharfbuzz.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5QmlModels.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Qml.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Network.a /home/kassane/Qt/5.15.1/wasm_32/lib/libQt5Core.a /home/kassane/Qt/5.15.1/wasm_32/lib/libqtpcre2.a   
cache:INFO: generating system library: libembind-rtti.a... (this will be cached in "/home/kassane/.emscripten_cache/wasm/libembind-rtti.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libfetch.a... (this will be cached in "/home/kassane/.emscripten_cache/wasm/libfetch.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libgl-webgl2-full_es3.a... (this will be cached in "/home/kassane/.emscripten_cache/wasm/libgl-webgl2-full_es3.a" for subsequent builds)
cache:INFO:  - ok
Since Acorn 8.0.0, options.ecmaVersion is required.
Defaulting to 2020, but this will stop working in the future.

@waruqi
Copy link
Member

waruqi commented Sep 18, 2020

Ok, I will look at it.

@waruqi waruqi added this to the v2.3.8 milestone Sep 18, 2020
@waruqi
Copy link
Member

waruqi commented Sep 18, 2020

Did you compile the Qt SDK with wasm_32 from Qt source or install it from a binary package?

@kassane
Copy link
Author

kassane commented Sep 18, 2020

Did you compile the Qt SDK with wasm_32 from Qt source or install it from a binary package?

I am using the binary version without registration using this:
https://github.com/miurahr/aqtinstall

Command: aqt install 5.15.1 linux desktop wasm_32 --outputdir ~/Qt

@waruqi
Copy link
Member

waruqi commented Sep 18, 2020

ok, thanks! 👍

@waruqi
Copy link
Member

waruqi commented Sep 20, 2020

I have supported Qt/wasm, you can update to dev and try it again.

xmake f -p wasm [--qt=/Qt]
widgetapp$ xmake f -p wasm
checking for architecture ... wasm32
checking for Qt SDK directory ... /home/ruki/Qt/5.15.1/wasm_32
checking for Qt SDK version ... 5.15.1
widgetapp$ xmake -rv
[ 28%]: compiling.qt.ui src/mainwindow.ui
/home/ruki/Qt/5.15.1/wasm_32/bin/uic src/mainwindow.ui -o build/.gens/demo/wasm/wasm32/release/rules/qt/ui/ui_mainwindow.h
[ 42%]: compiling.qt.moc src/mainwindow.h
/home/ruki/Qt/5.15.1/wasm_32/bin/moc -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_CORE_LIB -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtWidgets -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -I/mnt/xmake/tests/projects/qt/widgetapp/build/.gens/demo/wasm/wasm32/release/rules/qt/ui src/mainwindow.h -o build/.gens/demo/wasm/wasm32/release/rules/qt/moc/moc_mainwindow.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtWidgets -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -I/mnt/xmake/tests/projects/qt/widgetapp/build/.gens/demo/wasm/wasm32/release/rules/qt/ui -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_CORE_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/moc/moc_mainwindow.cpp.o build/.gens/demo/wasm/wasm32/release/rules/qt/moc/moc_mainwindow.cpp
[ 57%]: ccache compiling.release src/mainwindow.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtWidgets -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -I/mnt/xmake/tests/projects/qt/widgetapp/build/.gens/demo/wasm/wasm32/release/rules/qt/ui -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_CORE_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/src/mainwindow.cpp.o src/mainwindow.cpp
[ 71%]: ccache compiling.release src/main.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtWidgets -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -I/mnt/xmake/tests/projects/qt/widgetapp/build/.gens/demo/wasm/wasm32/release/rules/qt/ui -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_CORE_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/src/main.cpp.o src/main.cpp
checking for flags (-s ERROR_ON_UNDEFINED_SYMBOLS=1) ... ok
checking for flags (-s EXTRA_EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"]) ... ok
checking for flags (-s ALLOW_MEMORY_GROWTH=1) ... ok
[ 85%]: linking.release demo.wasm
/tmp/emsdk/upstream/emscripten/em++ -o build/wasm/wasm32/release/demo.wasm build/.objs/demo/wasm/wasm32/release/src/mainwindow.cpp.o build/.objs/demo/wasm/wasm32/release/src/main.cpp.o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/moc/moc_mainwindow.cpp.o -L/home/ruki/Qt/5.15.1/wasm_32/lib -lQt5Gui -lQt5Widgets -lQt5Core -lqtfreetype -lqtharfbuzz -lqtlibpng -lqtpcre2 -s WASM=1 -s FETCH=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 -s EXIT_RUNTIME=1 --bind -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[UTF16ToString,stringToUTF16] -s ALLOW_MEMORY_GROWTH=1

@waruqi
Copy link
Member

waruqi commented Sep 20, 2020

But for compiling quickapp/wasm, I still encountered some linking problems, and I may need to look at it again.

quickapp$ xmake -rv
[ 40%]: ccache compiling.release src/main.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuick -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQml -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/src/main.cpp.o src/main.cpp
[ 60%]: compiling.qt.qrc src/qml.qrc
/home/ruki/Qt/5.15.1/wasm_32/bin/rcc -name qml src/qml.qrc -o build/.gens/demo/wasm/wasm32/release/rules/qt/qrc/qml.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuick -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQml -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o build/.gens/demo/wasm/wasm32/release/rules/qt/qrc/qml.cpp
[ 80%]: linking.release demo.wasm
/tmp/emsdk/upstream/emscripten/em++ -o build/wasm/wasm32/release/demo.wasm build/.objs/demo/wasm/wasm32/release/src/main.cpp.o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o -L/home/ruki/Qt/5.15.1/wasm_32/lib -lQt5Gui -lQt5Quick -lQt5Qml -lQt5Core -lQt5Network -lqtfreetype -lqtharfbuzz -lqtlibpng -lqtpcre2 -s WASM=1 -s FETCH=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 -s EXIT_RUNTIME=1 --bind -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[UTF16ToString,stringToUTF16] -s ALLOW_MEMORY_GROWTH=1
error: error: undefined symbol: emscripten_fetch
warning: Link with `-s LLD_REPORT_UNDEFINED` to get more information on undefined symbols
warning: To disable errors for undefined symbols use `-s ERROR_ON_UNDEFINED_SYMBOLS=0`
error: undefined symbol: emscripten_fetch_attr_init
error: undefined symbol: emscripten_fetch_close
error: undefined symbol: emscripten_fetch_get_response_headers
error: undefined symbol: emscripten_fetch_get_response_headers_length
Error: Aborting compilation due to previous errors

Although I added the -s FETCH=1 link option, it seems to have no effect.

@kassane
Copy link
Author

kassane commented Sep 20, 2020

My test using xmake dev:

asciicast

Command: xmake -rv

checking for em++ ... /usr/lib/emscripten/em++
checking for the linker (ld) ... em++
checking for the c++ compiler (cxx) ... emcc
checking for /usr/lib/emscripten/emcc ... ok
checking for flags (-fvisibility-inlines-hidden) ... ok
checking for flags (-O3) ... ok
checking for flags (-fPIC) ... ok
[ 60%]: compiling.qt.qrc src/qml.qrc
/home/kassane/Qt/5.15.1/wasm_32/bin/rcc -name qml src/qml.qrc -o build/.gens/test_Qt/wasm/wasm32/release/rules/qt/qrc/qml.cpp
checking for ccache ... /usr/bin/ccache
[ 40%]: ccache compiling.release src/main.cpp
/usr/bin/ccache /usr/lib/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/kassane/Qt/5.15.1/wasm_32/include/QtGui -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQuick -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQml -I/home/kassane/Qt/5.15.1/wasm_32/include/QtCore -I/home/kassane/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/kassane/Qt/5.15.1/wasm_32/include -I/home/kassane/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/test_Qt/wasm/wasm32/release/src/main.cpp.o src/main.cpp
/usr/bin/ccache /usr/lib/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/kassane/Qt/5.15.1/wasm_32/include/QtGui -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQuick -I/home/kassane/Qt/5.15.1/wasm_32/include/QtQml -I/home/kassane/Qt/5.15.1/wasm_32/include/QtCore -I/home/kassane/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/kassane/Qt/5.15.1/wasm_32/include -I/home/kassane/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/test_Qt/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o build/.gens/test_Qt/wasm/wasm32/release/rules/qt/qrc/qml.cpp
checking for flags (-MMD -MF) ... ok
checking for flags (-fcolor-diagnostics) ... ok
checking for /usr/lib/emscripten/em++ ... ok
checking for flags (-s WASM=1) ... ok
checking for flags (-s FETCH=1) ... ok
checking for flags (-s FULL_ES2=1) ... ok
checking for flags (-s FULL_ES3=1) ... ok
checking for flags (-s USE_WEBGL2=1) ... ok
checking for flags (-s EXIT_RUNTIME=1) ... ok
checking for flags (--bind) ... ok
checking for flags (-s ERROR_ON_UNDEFINED_SYMBOLS=1) ... ok
checking for flags (-s EXTRA_EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"]) ... ok
checking for flags (-s ALLOW_MEMORY_GROWTH=1) ... ok
[ 80%]: linking.release test_Qt.wasm
/usr/lib/emscripten/em++ -o build/wasm/wasm32/release/test_Qt.wasm build/.objs/test_Qt/wasm/wasm32/release/src/main.cpp.o build/.objs/test_Qt/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o -L/home/kassane/Qt/5.15.1/wasm_32/lib -lQt5Gui -lQt5Quick -lQt5Qml -lQt5Core -lQt5Network -lqtlibpng -lqtfreetype -lqtpcre2 -lqtharfbuzz -s WASM=1 -s FETCH=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 -s EXIT_RUNTIME=1 --bind -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[UTF16ToString,stringToUTF16] -s ALLOW_MEMORY_GROWTH=1
error: shared:INFO: EM_IGNORE_SANITY set, ignoring sanity checks
em++: error: Explictly setting EXIT_RUNTIME not compatible with STANDALONE_WASM.  EXIT_RUNTIME will always be True for programs (with a main function) and False for reactors (not main function).

@waruqi
Copy link
Member

waruqi commented Sep 20, 2020

I have improved it and try it again. xmake update -s dev

@kassane
Copy link
Author

kassane commented Sep 21, 2020

I have improved it and try it again. xmake update -s dev

Ok! Testing...
asciicast

Note: It would be good to have a simple file in js and html to run the application.

@kassane
Copy link
Author

kassane commented Sep 21, 2020

@waruqi, I took advantage of the construction model of the project using qmake (which generates html and js together with wasm file). I realized that there is a big difference in relation to the size of the wasm file, and the file generated by xmake in the project resulted in this:
xmake_qt-wasm

Wasm file [Release]:
QMake project = 20.6 MiB
XMake project = 8.6 MiB

@waruqi
Copy link
Member

waruqi commented Sep 21, 2020

Ok, I will look at it.

@waruqi
Copy link
Member

waruqi commented Sep 22, 2020

I have improved it, you can try it again.

And you need create quickapp/widgetapp with the static link mode to link all libraries/plugins for wasm.

xmake create -t qt.quickapp_static quickapp
xmake create -t qt.widgetapp_static widgetapp

xmake will build and generate xxx.js, xxx.wasm and xxx.html to build/release/wasm32/ directory.

$ xmake -rv
checking for Qt SDK directory ... /home/ruki/Qt/5.15.1/wasm_32
checking for Qt SDK version ... 5.15.1
checking for /tmp/emsdk/upstream/emscripten/emcc ... ok
checking for flags (-fvisibility-inlines-hidden) ... ok
checking for flags (-O3) ... ok
checking for flags (-fPIC) ... ok
[ 66%]: compiling.qt.qrc src/qml.qrc
/home/ruki/Qt/5.15.1/wasm_32/bin/rcc -name qml src/qml.qrc -o build/.gens/demo/wasm/wasm32/release/rules/qt/qrc/qml.cpp
checking for ccache ... /usr/bin/ccache
[ 50%]: ccache compiling.release build/.qt/plugin/demo/static_import.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickControls2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickTemplates2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuick -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQml -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQmlModels -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_QUICKCONTROLS2_LIB -DQT_QUICKTEMPLATES2_LIB -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_QMLMODELS_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/build/.qt/plugin/demo/static_import.cpp.o build/.qt/plugin/demo/static_import.cpp
[ 33%]: ccache compiling.release src/main.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickControls2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickTemplates2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuick -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQml -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQmlModels -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_QUICKCONTROLS2_LIB -DQT_QUICKTEMPLATES2_LIB -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_QMLMODELS_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/src/main.cpp.o src/main.cpp
/usr/bin/ccache /tmp/emsdk/upstream/emscripten/emcc -c -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++11 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickControls2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuickTemplates2 -I/home/ruki/Qt/5.15.1/wasm_32/include/QtGui -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQuick -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQml -I/home/ruki/Qt/5.15.1/wasm_32/include/QtQmlModels -I/home/ruki/Qt/5.15.1/wasm_32/include/QtCore -I/home/ruki/Qt/5.15.1/wasm_32/include/QtNetwork -I/home/ruki/Qt/5.15.1/wasm_32/include -I/home/ruki/Qt/5.15.1/wasm_32/mkspecs/wasm-emscripten -DQT_NO_DEBUG -DQT_DEPRECATED_WARNINGS -DQT_QUICKCONTROLS2_LIB -DQT_QUICKTEMPLATES2_LIB -DQT_GUI_LIB -DQT_QUICK_LIB -DQT_QML_LIB -DQT_QMLMODELS_LIB -DQT_CORE_LIB -DQT_NETWORK_LIB -fPIC -o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o build/.gens/demo/wasm/wasm32/release/rules/qt/qrc/qml.cpp
checking for flags (-MMD -MF) ... ok
checking for flags (-fcolor-diagnostics) ... ok
checking for /tmp/emsdk/upstream/emscripten/em++ ... ok
checking for flags (-s WASM=1) ... ok
checking for flags (-s FETCH=1) ... ok
checking for flags (-s FULL_ES2=1) ... ok
checking for flags (-s FULL_ES3=1) ... ok
checking for flags (-s USE_WEBGL2=1) ... ok
checking for flags (--bind) ... ok
checking for flags (-s ERROR_ON_UNDEFINED_SYMBOLS=1) ... ok
checking for flags (-s EXTRA_EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"]) ... ok
checking for flags (-s ALLOW_MEMORY_GROWTH=1) ... ok
[ 83%]: linking.release demo.js
/tmp/emsdk/upstream/emscripten/em++ -o build/wasm/wasm32/release/demo.js build/.objs/demo/wasm/wasm32/release/src/main.cpp.o build/.objs/demo/wasm/wasm32/release/build/.qt/plugin/demo/static_import.cpp.o build/.objs/demo/wasm/wasm32/release/gens/rules/qt/qrc/qml.cpp.o -L/home/ruki/Qt/5.15.1/wasm_32/qml/QtQuick.2 -L/home/ruki/Qt/5.15.1/wasm_32/qml/QtQuick/Window.2 -L/home/ruki/Qt/5.15.1/wasm_32/qml/QtQuick/Controls.2 -L/home/ruki/Qt/5.15.1/wasm_32/qml/QtQuick/Templates.2 -L/home/ruki/Qt/5.15.1/wasm_32/plugins/platforms -L/home/ruki/Qt/5.15.1/wasm_32/lib -lqtquick2plugin -lwindowplugin -lqtquickcontrols2plugin -lqtquicktemplates2plugin -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -lQt5EglSupport -lqwasm -lQt5QuickControls2 -lQt5QuickTemplates2 -lQt5Gui -lQt5Quick -lQt5Qml -lQt5QmlModels -lQt5Core -lQt5Network -lqtfreetype -lqtharfbuzz -lqtlibpng -lqtpcre2 -s WASM=1 -s FETCH=1 -s FULL_ES2=1 -s FULL_ES3=1 -s USE_WEBGL2=1 --bind -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[UTF16ToString,stringToUTF16] -s ALLOW_MEMORY_GROWTH=1
> copy /home/ruki/Qt/5.15.1/wasm_32/plugins/platforms/wasm_shell.html to build/wasm/wasm32/release/demo.html
> copy /home/ruki/Qt/5.15.1/wasm_32/plugins/platforms/qtloader.js to build/wasm/wasm32/release
> copy /home/ruki/Qt/5.15.1/wasm_32/plugins/platforms/qtlogo.svg to build/wasm/wasm32/release

QuickApp (static)

Snip20200922_158

WidgetApp (static)

image

@kassane
Copy link
Author

kassane commented Sep 22, 2020

@waruqi, well done! 👍

@kassane kassane closed this as completed Sep 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants