28 lines
1.1 KiB
CMake
28 lines
1.1 KiB
CMake
# WebAssembly vcpkg + Emscripten toolchain loader
|
|
# Chain-loads the vcpkg toolchain which then chain-loads the Emscripten compiler toolchain.
|
|
|
|
if(NOT DEFINED ENV{EMSDK})
|
|
message(FATAL_ERROR "EMSDK environment variable not set. Please activate Emscripten SDK first.")
|
|
endif()
|
|
|
|
if(NOT DEFINED ENV{VCPKG_ROOT})
|
|
message(FATAL_ERROR "VCPKG_ROOT environment variable not set. Please set VCPKG_ROOT first.")
|
|
endif()
|
|
|
|
set(VCPKG_TARGET_TRIPLET "wasm32-emscripten" CACHE STRING "vcpkg WASM triplet")
|
|
|
|
# Emscripten toolchain path
|
|
set(EMSDK_TOOLCHAIN "$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
|
|
if(NOT EXISTS "${EMSDK_TOOLCHAIN}")
|
|
message(FATAL_ERROR "Emscripten toolchain not found at: ${EMSDK_TOOLCHAIN}")
|
|
endif()
|
|
|
|
# Instruct vcpkg to chain-load the Emscripten toolchain file
|
|
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${EMSDK_TOOLCHAIN}" CACHE STRING "vcpkg chainload toolchain")
|
|
|
|
# Include the main vcpkg toolchain
|
|
include("$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
|
|
|
|
# Allow heap memory growth
|
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-sALLOW_MEMORY_GROWTH=1")
|