En este artículo, me gustaría repasar y mostrar los puntos principales de cómo configurar el IDE de CLion para compilar un proyecto de CMake usando Emscripten. Cuando estaba haciendo este cruce, tuve que pasar uno o dos días experimentando. Y en esta publicación voy a reunir algunos "cómo" que funcionó al final.
¿Quienes son todas esas personas?
Emscripten es un conjunto de herramientas para compilar código C ++ en Asm.js / WebAssembly. Ahora WebAssembly ya ha pasado a primer plano,
CMake es un sistema para generar un script para construir un proyecto.
CLion es un entorno de desarrollo para proyectos C / C ++ originalmente construido alrededor del uso de CMake como herramienta de construcción. Pero hacer una copia de seguridad de Emscripten no fue fácil
Prerrequisitos
El principal requisito para que todo comience desde la mitad de una patada es muy importante tener Python instalado, preferiblemente la versión 3. Además, Python debe estar disponible desde la línea de comandos \
Cmake necesitará al menos la versión 3.13
Y por supuesto, no te olvides de Git
Configuración de Emscripten
Descarga el siguiente emsdk. (https://github.com/emscripten-core/emsdk)
Y desde la línea de comando, damos los siguientes pasos:
Descarga de la última versión de Emscripten
./emsdk install latest
Activamos la última versión
./emsdk activate latest
. help emsdk , . IDE.
CLion
, . File -> Settings. Build, Execution, Deployment -> Toolchains.
CLion Windows, MSYS2 ( MinGW ). gcc ++ header' .
Linux , Toolchain Windows:
+ MinGW.
Environment MSYS2. MSYS2 e:\msys64
CMake (, CLion CMake ).
! C Compiler C++ Compiler .bat . Linux .bat . , Emscripten python , shell python .
CMake. target :
Toolchains toolchain
: CMake Options -DCMAKE_TOOLCHAIN_FILE=
emsdk Emscripten.cmake.
Emscripten.cmake C Compiler C++ Compiler - .
CMake.
. Build->Build Project. , .
, , .js
set(CMAKE_EXECUTABLE_SUFFIX .js)
Emscripten . , emcc .js . , 1 ,
, linker', . :target_link_options(project PUBLIC "SHELL: --pre-js ${CMAKE_CURRENT_SOURCE_DIR}/prejs.js --js-library ${CMAKE_CURRENT_SOURCE_DIR}/jsLib.js") target_link_options(project PUBLIC "SHELL: -s USE_GLFW=3 --preload-file glsl -s ALLOW_MEMORY_GROWTH=1")
target_link_options
Cmake .--preload-file
, glsl , bundle'. ., . emscripten .js nodejs. .js nodejs :
target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)
, CLion Emscripten.