5 releases (breaking)
Uses new Rust 2024
| new 0.6.0 | Nov 28, 2025 |
|---|---|
| 0.5.0 | Oct 24, 2025 |
| 0.4.0 | Oct 7, 2025 |
| 0.3.0 | Sep 30, 2025 |
| 0.1.0 | Sep 26, 2025 |
#13 in #multiview
150 downloads per month
Used in dear-imguizmo
5MB
93K
SLoC
dear-imguizmo-sys
Low-level FFI bindings for ImGuizmo via the cimguizmo C API. This crate pairs with dear-imgui-sys (cimgui C API) and exposes ImGuizmo_* functions/types for higher-level crates (dear-imguizmo).
Features
prebuilt: allow the build script to auto-download a release archive when available (or whenIMGUIZMO_SYS_USE_PREBUILT=1).build-from-source: force building native sources withcceven if a prebuilt could be linked.freetype: passthrough todear-imgui-sys/freetypeto enable FreeType in the workspace.package-bin: enable an internalbin/packagehelper to produce release artifacts.
Build Modes
This crate supports three ways to obtain the native dear_imguizmo static library:
- Source build (default)
- Compiles
cimguizmo.cppand upstreamImGuizmo/ImGuizmo.cppwithcc. - Inherits include paths and preprocessor defines from
dear-imgui-sys.
- Compiles
- System/prebuilt library
- Links an existing static library from a directory you provide (see env vars below).
- Docs.rs
- Generates Rust bindings only; native code is not compiled.
Environment Variables
IMGUIZMO_SYS_LIB_DIR- Directory containing the prebuilt static library.
- Expected names:
dear_imguizmo.lib(Windows/MSVC),libdear_imguizmo.a(Unix).
IMGUIZMO_SYS_PREBUILT_URL- Direct URL to the prebuilt static library file.
- The file is downloaded to
OUT_DIR/prebuilt/and reused on subsequent builds.
IMGUIZMO_SYS_SKIP_CC- If set, skips native C/C++ compilation. Typically used with one of the above.
The build script also consumes include paths and defines exported by dear-imgui-sys:
DEP_DEAR_IMGUI_IMGUI_INCLUDE_PATH,DEP_DEAR_IMGUI_CIMGUI_INCLUDE_PATHDEP_DEAR_IMGUI_DEFINE_*
Examples
- Default (source build):
cargo build -p dear-imguizmo-sys -p dear-imguizmo
- System/prebuilt (Windows):
$env:IMGUIZMO_SYS_LIB_DIR = "C:\\prebuilt\\imguizmo"
cargo build -p dear-imguizmo-sys
- System/prebuilt (Unix):
export IMGUIZMO_SYS_LIB_DIR=/opt/imguizmo/lib
cargo build -p dear-imguizmo-sys
- Remote prebuilt download:
# Windows: URL must point to dear_imguizmo.lib
$env:IMGUIZMO_SYS_PREBUILT_URL = "https://example.com/dear_imguizmo.lib"
# Unix: URL must point to libdear_imguizmo.a
export IMGUIZMO_SYS_PREBUILT_URL=https://example.com/libdear_imguizmo.a
cargo build -p dear-imguizmo-sys
Notes
- Linking to the base ImGui static library is provided by
dear-imgui-sys; this crate does not duplicatecargo:rustc-link-libfor it. - MSVC (Windows) builds align CRT and exception flags with
dear-imgui-sys. docs.rsbuilds generate bindings only and export include paths for downstream crates.- Higher-level Rust APIs live in
extensions/dear-imguizmo/. See that crate andexamples/imguizmo_basic.rsfor usage.
Dependencies
~5–25MB
~345K SLoC