Pada artikel ini, saya ingin membahas dan menunjukkan poin utama tentang cara mengkonfigurasi CLion IDE untuk mengkompilasi proyek CMake menggunakan Emscripten. Ketika saya melakukan penyeberangan ini, saya harus menghabiskan satu atau dua hari untuk bereksperimen. Dan dalam posting ini saya akan mengumpulkan beberapa "bagaimana" yang berhasil pada akhirnya.
Siapakah orang-orang ini?
Emscripten adalah seperangkat alat untuk mengkompilasi kode C ++ ke Asm.js / WebAssembly. Sekarang WebAssembly telah menjadi yang terdepan,
CMake adalah sistem untuk menghasilkan skrip untuk membangun proyek.
CLion adalah lingkungan pengembangan untuk proyek C / C ++ yang awalnya dibuat dengan menggunakan CMake sebagai alat build. Tetapi mencadangkan Emscripten tidaklah mudah
Prasyarat
Persyaratan utama untuk semuanya dimulai dari setengah tendangan sangat penting untuk menginstal Python, lebih disukai versi 3. Juga python harus tersedia dari baris perintah \
CMake membutuhkan setidaknya versi 3.13
Dan tentu saja, jangan lupakan Git
Menyiapkan Emscripten
Unduh emsdk. (https://github.com/emscripten-core/emsdk)
Dan dari baris perintah, kami mengambil langkah-langkah berikut:
Mengunduh Emscripten versi terbaru
./emsdk install latest
Kami mengaktifkan versi terbaru
./emsdk activate latest
Dan kami meninggalkan semuanya dalam keadaan ini. Bantuan resmi untuk emsdk berisi lebih banyak langkah, tetapi langkah tersebut diperlukan untuk dikompilasi dari baris perintah. Kami akan mengkompilasi dari IDE.
Mengonfigurasi CLion
Mari kita mulai, buat proyek baru. Dan buka File -> Pengaturan. Dan di jendela yang muncul, pilih Build, Execution, Deployment -> Toolchains.
Jika Anda sudah menggunakan CLion di Windows, kemungkinan besar Anda sudah menginstal MSYS2 (versi modern MinGW). Oleh karena itu, saya akan melewati pengunduhan dan penginstalan paket gcc untuk header C ++ secara diam-diam.
Jendela ini sedikit berbeda di Linux, tetapi seperti inilah tampilan jendela konfigurasi Toolchain pada akhirnya di Windows:
Pilih + dan pilih MinGW di menu yang muncul.
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'. .Dalam proyek saya, saya perlu membangun program pembantu yang menghasilkan kode. Untuk emscripten, versi dibangun ke dalam file .js dan dijalankan menggunakan nodejs. Dan untuk membuat .js dijalankan dari nodejs, lihat sistem file yang sebenarnya, saya menambahkan satu bendera kecil untuk mengkompilasi:
target_link_options(glslangValidator PUBLIC -s NODERAWFS=1)
Total
Dalam artikel ini, kami memeriksa poin-poin utama yang ditemui saat mengkonfigurasi kompilasi proyek dari CLion menggunakan Emscripten.
Saya berharap kritik yang memadai dari masyarakat