Como cruzar Clion, Emscripten e Cmake

Neste artigo, gostaria de percorrer e mostrar os principais pontos de como configurar o IDE CLion para compilar um projeto CMake usando Emscripten. Quando estava fazendo esta travessia, tive que passar um ou dois dias experimentando. E neste post vou juntar alguns "como fazer" que funcionou no final.

Quem são todas essas pessoas?

Emscripten é um conjunto de ferramentas para compilar código C ++ para Asm.js / WebAssembly. Agora, o WebAssembly já ganhou destaque,

CMake é um sistema de geração de script para construção de um projeto.

CLion é um ambiente de desenvolvimento para projetos C / C ++ originalmente construído em torno do uso do CMake como uma ferramenta de construção. Mas fazer backup do Emscripten não foi tão fácil

Pré-requisitos

O principal requisito para que tudo comece a partir de meio chute é muito importante já ter o Python instalado, de preferência a versão 3. Além disso, o python deve estar disponível na linha de comando \

O Cmake precisará de pelo menos a versão  3.13

E, claro, não se esqueça do Git

Configurando o Emscripten

Baixe emsdk. (https://github.com/emscripten-core/emsdk)

E a partir da linha de comando, executamos as seguintes etapas:

  1. Baixando a última versão do Emscripten

    ./emsdk install latest
  2. Nós ativamos a última versão

    ./emsdk activate latest

E deixamos tudo neste estado. A ajuda oficial do emsdk contém mais etapas, mas são necessárias para compilar a partir da linha de comando. Vamos compilar a partir do IDE.

Configurando CLion

Vamos começar, criar um novo projeto. E vá para Arquivo -> Configurações. E na janela que aparece, selecione Build, Execution, Deployment -> Toolchains.

Se já estiver usando o CLion no Windows, é mais provável que já tenha o MSYS2 (versão moderna do MinGW) instalado. Portanto, ignorarei silenciosamente o download e a instalação de pacotes gcc para cabeçalhos C ++.

Esta janela é um pouco diferente no Linux, mas é assim que a janela de configuração do conjunto de ferramentas parece no final no Windows:

Selecione + e selecione MinGW no menu que aparece.

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. Em meu projeto, preciso construir programas auxiliares que geram código. Para emscripten, as versões são construídas em arquivos .js e executadas usando nodejs. E para fazer o .js rodar a partir do nodejs olhar para o sistema de arquivos real, adiciono um pequeno sinalizador para compilar:



    target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)

Total

Neste artigo, examinamos os principais pontos que são encontrados ao configurar a compilação de um projeto do CLion usando o Emscripten.



Espero críticas adequadas da comunidade




All Articles