في هذه المقالة ، أود أن أستعرض وأعرض النقاط الرئيسية لكيفية تكوين 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)
ومن سطر الأوامر نقوم بالخطوات التالية:
تنزيل أحدث إصدار من Emscripten
./emsdk install latestنقوم بتنشيط أحدث إصدار
./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. , .
, , .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_optionsCmake .--preload-file, glsl , bundle'. ., . emscripten .js nodejs. .js nodejs :
target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)
, CLion Emscripten.