Skusím Vám nyní posat postup při rozchození webassembly projektu v CLion. Co víc, chtěl bych, aby měl 3 konfigurace, debug, debug-wasm a release-wasm, přepínal mezi nimi selectboxem v panelu nástrojů CLion.
Jděte na File > Settings > Toolchains. Uvidíe asi něco takového:
Já mám jako defaultní C++ nastaven clang, protože CLang interně používá emscripten. Vyhnu se tak problémům s kompatibilitou jazyka. Nainstaluji ho jednoduše:
sudo apt-get update
sudo apt-get install clang
Pak ho ještě musím aktivovat
sudo update-alternatives --config c++
A vyberu...
Klikněte na "+" a vytvořte toolchain "Emscripten".
Nyní je třeba vědět, kam jste nainstalovali emscripten z prerekvizit. Já třeba do <emsdk> = ˜/dev/emsdk. Cestu zvolte absolutně. Nastavíte cc na <emsdk>/upstream/emscripten/emcc a c++ na <emsdk>/upstream/emscripten/em++. Asi takto:
Jděte na File > Settings > CMake. Uvidíe asi něco takového:
Vytvoříme nastavení pro překlad jako samostaný projekt. Všiměte si, že defaultní nastavení toolchainu jsme nepřemazali, ale vytvořili nové pro WebAsembly. Zvolíme tedy Toolchain Default, Nějaké inteligentní jméno a Build Type na Debug. Ostatní řádky nemusíme plnit, až na jeden. V nastavení se inspirujte oprázkem výše. Co je ale důležité, je nastavení řádku CMake options. Vložíme tam -DCMAKE_BUILD_TYPE=Debug, tím od sebe později různé konfigurace roslišíme.
Nyní vytvoříme kofiguraci pro debug-wasm. Tlačítkem "+" Vytvoříte novou konfiguraci, pojmenujete ji a zvolíte nový Toolchain Emscripten. Řádek CMake options musíme upravit takto: -DCMAKE_BUILD_TYPE=debug-wasm abychom i tuto konfiguraci nějak pojmenovali, ale ještě je třeba přidat -DCMAKE_TOOLCHAIN_FILE=<emsdk>/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake. Nakonec nastavíte Environment na EMSCRIPTEN_ROOT=<emsdk>/upstream/emscripten.
Obdobně vytvoříme kofiguraci pro release-wasm. Tlačítkem "+" Vytvoříte novou konfiguraci, pojmenujete ji a vlastně jediné, čím se bude lišit od předchozí je Build Type nasteveno na Release. v řádku CMake options nezapomňte upravit jméno konfugurace na release-wasm.