Skip to content

Latest commit

 

History

History
71 lines (56 loc) · 1.56 KB

File metadata and controls

71 lines (56 loc) · 1.56 KB

Building plug

Toolchain Prerequisites

  • Rust (stable, targeting wasm32-unknown-unknown)
  • CMake (v3.20+), Ninja
  • C++ Compiler (MSVC 2022 on Windows, GCC/Clang on Linux with GTK4 developer libraries)

On Linux (Debian/Ubuntu):

sudo apt-get update && sudo apt-get install -y libgtk-4-dev pkg-config ninja-build libx11-dev build-essential

1. Automatic Builds

Run the platform-specific scripts to compile the Rust core runtime, build WASM plugins, and generate the C++ executable:

Windows

cd plug.cross\windows
.\make.bat

Outputs: plug.cross/release/x64/plug-x64.exe and plugins/

Linux

cd plug.cross/linux
./make.sh

Outputs: plug.cross/release/x86_64/plug-x64 and plugins/


2. Manual Step-by-Step Compilation

Rust Runtime Static Library

cd plug.app/rt
cargo build --release --lib

Generates: plug.app/rt/target/release/tm_main.lib (Windows) or libtm_main.a (Linux).

WASM Plugins

rustc --target wasm32-unknown-unknown --crate-type cdylib \
      plug.app/rt/src_plugins/pTerm/pTerm.rs \
      -o plugins/pTerm.wasm \
      -C opt-level=z -C lto=true

CMake Configuration and Compilation

Windows

cd plug.cross\windows
mkdir build
cd build
cmake -G Ninja -DRUST_LIB_PATH=../../../plug.app/rt/target/release/tm_main.lib -DCMAKE_BUILD_TYPE=Release ..
ninja

Linux

cd plug.cross/linux
mkdir build
cd build
cmake -G Ninja -DRUST_LIB_PATH=../../../plug.app/rt/target/release/libtm_main.a -DCMAKE_BUILD_TYPE=Release ..
ninja