Cómo cruzar Clion, Emscripten y Cmake

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:

  1. Descarga de la última versión de Emscripten

    ./emsdk install latest
  2. 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. , .

  1. , , .js

    set(CMAKE_EXECUTABLE_SUFFIX .js)
  2. 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'. .

  3. , . emscripten .js nodejs. .js nodejs :



    target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)

, CLion Emscripten.








All Articles