work-calendar/libs/libhydrogen/cmake/wasm32-wasi-toolchain.cmake
Ammerhai c277ab10d9 add encrypting for save files
add libhydrogen for encrypting and decrypting

#9
2026-04-03 14:59:37 +02:00

59 lines
2.0 KiB
CMake

# Cross-compilation file for WebAssembly with WASI.
# To use, pass -DCMAKE_TOOLCHAIN_FILE=cmake/wasm32-wasi-toolchain.cmake in your CMake command line.
# You'll also need to specify a sysroot directory with -DHYDROGEN_WASM32_WASI_SYSROOT_DIR=XXX.
cmake_minimum_required(VERSION 3.12)
set(project_setting_prefix HYDROGEN)
set(setting_prefix "${project_setting_prefix}_WASM32_WASI")
function(get_setting setting_name setting_type setting_description)
string(TOUPPER "${setting_prefix}_${setting_name}" setting_external_name)
set("${setting_external_name}" "" CACHE "${setting_type}" "${setting_description}")
set("${setting_name}" "${${setting_external_name}}" PARENT_SCOPE)
endfunction()
# Sysroot setting
get_setting(sysroot_dir STRING "Directory containing the wasm32-wasi sysroot.")
# Locate toolchain programs
set(program_prefix "${setting_prefix}_PROGRAM")
function(find_in_toolchain program_name)
string(TOUPPER "${program_prefix}_${program_name}" program_external_name)
string(REPLACE "_" "-" program_file_name "${program_name}")
find_program("${program_external_name}" "${program_file_name}")
if("${${program_external_name}}" STREQUAL "${program_external_name}-NOTFOUND")
message(FATAL_ERROR "Couldn't find toolchain program ${program_file_name}")
else()
set("${program_name}" "${${program_external_name}}" PARENT_SCOPE)
endif()
endfunction()
find_in_toolchain(clang)
find_in_toolchain(llvm_ranlib)
find_in_toolchain(llvm_ar)
find_in_toolchain(llvm_nm)
find_in_toolchain(llvm_strip)
# Configure CMake toolchain settings
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER "${clang}")
set(CMAKE_ASM_COMPILER "${clang}")
set(CMAKE_RANLIB "${llvm_ranlib}")
set(CMAKE_AR "${llvm_ar}")
set(CMAKE_NM "${llvm_nm}")
set(CMAKE_STRIP "${llvm_strip}")
set(CMAKE_C_OUTPUT_EXTENSION .o)
set(CMAKE_ASM_OUTPUT_EXTENSION .o)
# Set compile flags
string(CONCAT CMAKE_C_FLAGS " -DED25519_NONDETERMINISTIC=1 --target=wasm32-wasi"
" --sysroot=${sysroot_dir} -Wl,--stack-first")