Files
cjs-lite/step0/Web.cmake
2026-06-12 18:48:27 +02:00

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)