added wasm support (crossplatform build)

This commit is contained in:
Andrei Yankovich 2020-09-21 19:33:40 +03:00
parent a10b5073fe
commit 8d71bd1bd9
2 changed files with 44 additions and 4 deletions

View File

@ -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")

View File

@ -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()