Comment croiser Clion, Emscripten et Cmake

Dans cet article, je voudrais passer en revue et montrer les principaux points de la configuration de l'IDE CLion pour compiler un projet CMake à l'aide d'Emscripten. Quand je faisais cette traversée, j'ai dû passer un jour ou deux à expérimenter. Et dans cet article, je vais rassembler quelques «comment» qui ont fonctionné à la fin.

Qui sont tous ces gens?

Emscripten est un ensemble d'outils pour compiler du code C ++ vers Asm.js / WebAssembly. Maintenant, WebAssembly est déjà venu au premier plan,

CMake est un système pour générer un script pour construire un projet.

CLion est un environnement de développement pour les projets C / C ++ construit à l'origine autour de l'utilisation de CMake comme outil de construction. Mais sauvegarder Emscripten n'a pas été facile

Conditions préalables

La condition principale pour que tout commence à partir d'un demi-coup de pied est très importante d'avoir déjà installé Python, de préférence la version 3. Python doit également être disponible à partir de la ligne de commande \

CMake aura besoin d'au moins la version  3.13

Et bien sûr, n'oubliez pas Git

Configurer Emscripten

Téléchargez emsdk. (https://github.com/emscripten-core/emsdk)

Et à partir de la ligne de commande, nous suivons les étapes suivantes:

  1. Téléchargement de la dernière version d'Emscripten

    ./emsdk install latest
  2. Nous activons la dernière version

    ./emsdk activate latest

Et nous laissons tout dans cet état. L'aide officielle pour emsdk contient plus d'étapes, mais elles sont nécessaires pour compiler à partir de la ligne de commande. Nous allons compiler à partir de l'IDE.

Configurer CLion

Commençons, créons un nouveau projet. Et allez dans Fichier -> Paramètres. Et dans la fenêtre qui apparaît, sélectionnez Build, Execution, Deployment -> Toolchains.

Si vous utilisez déjà CLion sur Windows, il est plus probable que MSYS2 (version moderne de MinGW) soit déjà installé. Par conséquent, je vais ignorer silencieusement le téléchargement et l'installation des packages gcc pour les en-têtes C ++.

Cette fenêtre est légèrement différente sous Linux, mais voici à quoi ressemble la fenêtre de configuration de la chaîne d'outils à la fin sous Windows:

Sélectionnez + et sélectionnez MinGW dans le menu qui apparaît.

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. Dans mon projet, j'ai besoin de créer des programmes utilitaires qui génèrent du code. Pour emscripten, les versions sont intégrées aux fichiers .js et exécutées à l'aide de nodejs. Et pour que le .js s'exécute à partir de nodejs, j'ajoute un petit indicateur pour compiler:



    target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)

Total

Dans cet article, nous avons examiné les principaux points rencontrés lors de la configuration de la compilation d'un projet à partir de CLion à l'aide d'Emscripten.



Espoir de critiques adéquates de la part de la communauté




All Articles