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:
Baixando a última versão do Emscripten
./emsdk install latest
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. , .
, , .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'. .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