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( $<$:__wasi__> $<$:__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)