3ca05b2a2e
Compilation breaks on Windows and macOS hosts with USE_ZLIB=1.
In addition, it turns out that the versions of the libraries in
Emscripten Ports are outdated. Since we have newer versions
of these libraries in Qt already, we will just use those.
This is a revert of 70b558ad5b
.
Task-number: QTQAINFRA-2835
Change-Id: Ic2642b7d319a3447fd08843657eb0535255e0449
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
100 lines
2.9 KiB
Plaintext
100 lines
2.9 KiB
Plaintext
# qmake configuration for building with emscripten
|
|
MAKEFILE_GENERATOR = UNIX
|
|
QMAKE_PLATFORM = wasm unix
|
|
|
|
include(../common/gcc-base.conf)
|
|
include(../common/clang.conf)
|
|
|
|
load(device_config)
|
|
|
|
# Support setting WASM_OBJECT_FILES with -device-option WASM_OBJECT_FILES=1
|
|
!isEmpty(WASM_OBJECT_FILES): {
|
|
!equals(WASM_OBJECT_FILES, 1):!equals(WASM_OBJECT_FILES, 0): \
|
|
message(Error: The value for WASM_OBJECT_FILES must be 0 or 1)
|
|
QMAKE_CFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
|
|
QMAKE_CXXFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
|
|
QMAKE_LFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES
|
|
}
|
|
|
|
EMTERP_FLAGS = \
|
|
-s EMTERPRETIFY=1 \
|
|
-s EMTERPRETIFY_ASYNC=1 \
|
|
-s \"EMTERPRETIFY_FILE=\'data.binary\'\" \
|
|
-s ASSERTIONS=1 \
|
|
--profiling-funcs
|
|
|
|
EMCC_COMMON_LFLAGS = \
|
|
-s WASM=1 \
|
|
-s FULL_ES2=1 \
|
|
-s USE_WEBGL2=1 \
|
|
-s NO_EXIT_RUNTIME=0 \
|
|
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
|
|
--bind \
|
|
-s \"BINARYEN_TRAP_MODE=\'clamp\'\"
|
|
|
|
# The -s arguments can also be used with release builds,
|
|
# but are here in debug for clarity.
|
|
EMCC_COMMON_LFLAGS_DEBUG = \
|
|
$$EMCC_COMMON_LFLAGS \
|
|
-s ASSERTIONS=2 \
|
|
-s DEMANGLE_SUPPORT=1 \
|
|
# -s LIBRARY_DEBUG=1 \ #print out library calls, verbose
|
|
# -s SYSCALL_DEBUG=1 \ #print out sys calls, verbose
|
|
# -s FS_LOG=1 \ #print out filesystem ops, verbose
|
|
# -s SOCKET_DEBUG \ #print out socket,network data transfer
|
|
-s GL_DEBUG=1
|
|
|
|
# Set up debug/optimization flags
|
|
QMAKE_CXXFLAGS_RELEASE -= -O2
|
|
QMAKE_CFLAGS_RELEASE -= -O2
|
|
equals(WASM_OBJECT_FILES, 1) {
|
|
QMAKE_LFLAGS_DEBUG += -g
|
|
|
|
QMAKE_CXXFLAGS_RELEASE += -O3
|
|
QMAKE_CFLAGS_RELEASE += -O3
|
|
QMAKE_LFLAGS_RELEASE += -O3
|
|
QMAKE_CFLAGS_OPTIMIZE += -O3
|
|
QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz
|
|
} else {
|
|
# Practical debugging setup:
|
|
# "-g4" preserves function names for stack traces
|
|
# "-Os" produces reasonably sized binaries
|
|
QMAKE_CFLAGS_DEBUG -= -g
|
|
QMAKE_CXXFLAGS_DEBUG -= -g
|
|
QMAKE_CFLAGS_DEBUG += -Os -g4
|
|
QMAKE_CXXFLAGS_DEBUG += -Os -g4
|
|
QMAKE_LFLAGS_DEBUG += -Os -g4
|
|
|
|
QMAKE_CXXFLAGS_RELEASE += -O3
|
|
QMAKE_CFLAGS_RELEASE += -O3
|
|
QMAKE_LFLAGS_RELEASE += -O3
|
|
QMAKE_CFLAGS_OPTIMIZE += -O3
|
|
QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz
|
|
}
|
|
|
|
|
|
QMAKE_COMPILER += emscripten
|
|
|
|
QMAKE_CC = emcc
|
|
QMAKE_CXX = em++
|
|
|
|
QMAKE_LINK = $$QMAKE_CXX
|
|
QMAKE_LINK_SHLIB = $$QMAKE_CXX
|
|
QMAKE_LINK_C = $$QMAKE_CC
|
|
QMAKE_LINK_C_SHLIB = $$QMAKE_CC
|
|
|
|
QMAKE_LIBS_THREAD = $$QMAKE_CFLAGS_THREAD
|
|
|
|
QMAKE_LFLAGS += $$EMCC_COMMON_LFLAGS
|
|
QMAKE_LFLAGS_DEBUG += $$EMCC_COMMON_LFLAGS_DEBUG
|
|
|
|
QMAKE_PREFIX_SHLIB = lib
|
|
QMAKE_EXTENSION_SHLIB = so # llvm bitcode, linked to js in post_link
|
|
QMAKE_PREFIX_STATICLIB = lib
|
|
QMAKE_EXTENSION_STATICLIB = a # llvm bitcode
|
|
|
|
QMAKE_AR = emar cqs
|
|
QMAKE_DISTCLEAN += *.html *.js *.wasm
|
|
|
|
load(qt_config)
|