39 lines
1.2 KiB
CMake
39 lines
1.2 KiB
CMake
set(CMAKE_SYSTEM_NAME WASI)
|
|
set(CMAKE_SYSTEM_PROCESSOR WASM)
|
|
set(CMAKE_SYSTEM_PROCESSOR_FAMILY WASM)
|
|
set(WASM ON)
|
|
set(WEB ON)
|
|
|
|
# Find clang/clang++ as compiler
|
|
find_program(CMAKE_C_COMPILER clang)
|
|
find_program(CMAKE_CXX_COMPILER clang++)
|
|
find_program(CMAKE_ASM_COMPILER llvm-mc)
|
|
|
|
# Some options that affect the generated output
|
|
set(WASM_OPTS -mbulk-memory -matomics -fignore-exceptions -msimd128)
|
|
|
|
add_compile_definitions(
|
|
$<$<COMPILE_LANGUAGE:C,CXX>:__wasi__>
|
|
$<$<COMPILE_LANGUAGE:C,CXX>:__WASM__>
|
|
)
|
|
add_compile_options(${WASM_OPTS})
|
|
add_link_options(-nostdlib ${WASM_OPTS})
|
|
|
|
set(CMAKE_CROSSCOMPILING TRUE)
|
|
set(CMAKE_EXECUTABLE_SUFFIX_CXX ".wasm")
|
|
set(CMAKE_EXECUTABLE_SUFFIX_C ".wasm")
|
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
set(CMAKE_C_COMPILER_TARGET unknown-unknown-wasm32-web)
|
|
set(CMAKE_CXX_COMPILER_TARGET unknown-unknown-wasm32-web)
|
|
set(CMAKE_ASM_COMPILER_TARGET unknown-unknown-wasm32-web)
|
|
|
|
# adjust the default behavior of the FIND_XXX() commands:
|
|
# search programs in the host environment
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
|
|
# search headers and libraries in the target environment
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|