From 8d71bd1bd96a86165197d769e8440a95b4ca9990 Mon Sep 17 00:00:00 2001 From: EndrII Date: Mon, 21 Sep 2020 19:33:40 +0300 Subject: [PATCH] added wasm support (crossplatform build) --- crossplatform/Linux/wasm32.cmake | 38 +++++++++++++++++++++++++++++++ crossplatform/crossplatform.cmake | 10 ++++---- 2 files changed, 44 insertions(+), 4 deletions(-) create mode 100755 crossplatform/Linux/wasm32.cmake diff --git a/crossplatform/Linux/wasm32.cmake b/crossplatform/Linux/wasm32.cmake new file mode 100755 index 0000000..796fbf4 --- /dev/null +++ b/crossplatform/Linux/wasm32.cmake @@ -0,0 +1,38 @@ +# +# Copyright (C) 2020-2020 QuasarApp. +# Distributed under the MIT software license, see the accompanying +# Everyone is permitted to copy and distribute verbatim copies +# of this license document, but changing it is not allowed. +# + +if(DEFINED CROSSPLATFORM_BUILD_TOOLCHAIN_WASM_32) + return() +else() + set(CROSSPLATFORM_BUILD_TOOLCHAIN_WASM_32 1) +endif() + +# the name of the target operating system + +message("Building from Linux for Wasm_32") + +add_link_options("SHELL:-s FETCH=1") +add_link_options("SHELL:-s WASM=1") +add_link_options("SHELL:-s FULL_ES2=1") +add_link_options("SHELL:-s FULL_ES3=1") +add_link_options("SHELL:-s USE_WEBGL2=1") +add_link_options("SHELL:-s EXIT_RUNTIME=1") +add_link_options("SHELL:-s ERROR_ON_UNDEFINED_SYMBOLS=1") +add_link_options("SHELL:-s EXTRA_EXPORTED_RUNTIME_METHODS=[\"UTF16ToString\",\"stringToUTF16\"]") + +add_link_options("--bind") + +set(CMAKE_C_COMPILER emcc) +#set_property(GLOBAL PROPERTY CMAKE_C_COMPILER emcc) +#add_definitions(-DCMAKE_C_COMPILER="emcc") + +set(CMAKE_CXX_COMPILER em++) +#set_property(GLOBAL PROPERTY CMAKE_CXX_COMPILER em++) +#add_definitions(-DCMAKE_CXX_COMPILER="em++") +set(BUILD_SHARED_LIBS OFF) +#set_property(GLOBAL PROPERTY BUILD_SHARED_LIBS OFF) +#add_definitions(-DBUILD_SHARED_LIBS="OFF") diff --git a/crossplatform/crossplatform.cmake b/crossplatform/crossplatform.cmake index 08aaf06..bc74b6e 100755 --- a/crossplatform/crossplatform.cmake +++ b/crossplatform/crossplatform.cmake @@ -11,17 +11,19 @@ else() set(CROSSPLATFORM_BUILD_TOOLCHAIN 1) endif() -# use TRGET_PLATFORM_LOOLCHAIN +# use TARGET_PLATFORM_TOOLCHAIN -set(CROSSPLATFORM_BUILD_TOOLCHAIN_PATH ${CMAKE_CURRENT_LIST_DIR}/${CMAKE_HOST_SYSTEM_NAME}/${TRGET_PLATFORM_TOOLCHAIN}.cmake) +set(CROSSPLATFORM_BUILD_TOOLCHAIN_PATH ${CMAKE_CURRENT_LIST_DIR}/${CMAKE_HOST_SYSTEM_NAME}/${TARGET_PLATFORM_TOOLCHAIN}.cmake) + +message("CROSSPLATFORM_BUILD_TOOLCHAIN_PATH = ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}") if(EXISTS ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}) - message("${TRGET_PLATFORM_TOOLCHAIN} exits in ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}") + message("${TARGET_PLATFORM_TOOLCHAIN} exits in ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}") include(${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}) else(EXISTS ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}) - message("${TRGET_PLATFORM_TOOLCHAIN} not exits in ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}") + message("${TARGET_PLATFORM_TOOLCHAIN} not exits in ${CROSSPLATFORM_BUILD_TOOLCHAIN_PATH}") endif()