#!/bin/sh # Plug'n'Dose · compilation du noyau Tucuxi (tucuxi-core) en WebAssembly pour le démonstrateur du site. # Testé avec Emscripten 3.1.6 (clang 15), Ubuntu 24.04. set -e git clone --recursive https://github.com/sotalya/tucuxi-core cd tucuxi-core git checkout d09737e30095a72a0f8e599f0aa73f5cb6d46f2b git apply ../tucuxi-core-wasm.patch # exécution des calculs de percentiles sans threads (voir le correctif) mkdir -p ../build && cd ../build emcmake cmake -S ../tucuxi-core/src/tucucli -B . -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20 \ -DCMAKE_CXX_FLAGS="-fexceptions -DTUCU_SINGLETHREADEDPERCENTILECOMPUTATION -DTUCU_SINGLETHREADEDPERCENTILESORT" make -j2 S=../tucuxi-core; L=$S/libs em++ -std=c++20 -O2 -fexceptions -DUNICODE -I$S/src -I$S/src/tucucli \ -isystem $L/boost -isystem $L/spdlog/include -isystem $L/eigen -isystem $L/date/include \ -isystem $L/rapidxml -isystem $L/rapidjson/include -isystem $L/tiny-js -isystem $L/cxxopts/include \ -c ../tucuweb.cpp -o tucuweb.o em++ -O3 -fexceptions -sENVIRONMENT=worker -sMODULARIZE=1 -sEXPORT_NAME=createTucuxi -sALLOW_MEMORY_GROWTH=1 \ -sINITIAL_MEMORY=33554432 -sFORCE_FILESYSTEM=1 -sEXPORTED_FUNCTIONS=_tucu_compute \ -sEXPORTED_RUNTIME_METHODS=ccall,FS --no-entry \ tucuweb.o CMakeFiles/tucucli.dir/clicomputer.cpp.o tucuquery/libtucuquery.a tucucore/libtucucore.a \ tucucommon/libtucucommon_base.a tucucommon/tiny-js/libtiny-js.a -o tucuxi-core.js