كيفية عبور Clion و Emscripten و Cmake

في هذه المقالة ، أود أن أستعرض وأعرض النقاط الرئيسية لكيفية تكوين CLion IDE لتجميع مشروع CMake باستخدام Emscripten. عندما كنت أقوم بهذا العبور ، كان علي أن أقضي يومًا أو يومين في التجربة. وفي هذا المنشور سأقوم بتجميع بعض "كيفية" التي نجحت في النهاية.

من هم كل هؤلاء الناس؟

Emscripten عبارة عن مجموعة من الأدوات لترجمة كود C ++ إلى Asm.js / WebAssembly. أصبح WebAssembly الآن في المقدمة بالفعل ،

CMake هو نظام لتوليد برنامج نصي لبناء مشروع.

CLion هي بيئة تطوير لمشروعات C / C ++ بنيت في الأصل حول استخدام CMake كأداة بناء. لكن النسخ الاحتياطي لـ Emscripten لم يكن بهذه السهولة

المتطلبات الأساسية

يعد المطلب الرئيسي لبدء كل شيء من نصف ركلة مهمًا جدًا أن تكون قد قمت بالفعل بتثبيت Python ، ويفضل الإصدار 3. كما يجب أن تكون لغة python متاحة من سطر الأوامر \

سيحتاج CMake إلى الإصدار  3.13 على الأقل

وبالطبع ، لا تنسى Git

إعداد Emscripten

تحميل emsdk. (https://github.com/emscripten-core/emsdk)

ومن سطر الأوامر نقوم بالخطوات التالية:

  1. تنزيل أحدث إصدار من Emscripten

    ./emsdk install latest
  2. نقوم بتنشيط أحدث إصدار

    ./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