#manifest #resources #windows

build winscribe

Inscribe Windows resource & manifest files onto your executables

2 releases

0.1.1 Nov 10, 2024
0.1.0 Nov 10, 2024

#152 in Build Utils

Download history 102/week @ 2024-11-04 113/week @ 2024-11-11 9/week @ 2024-11-18

224 downloads per month

MIT/Apache

36KB
741 lines

Winscribe

A build script to create, compile and include Windows resource and manifest files in your executables.

This crate is in early stages of development.

Usage

Add it as a build dependency to your Cargo.toml.

[build-dependencies]
winscribe = "0.1.0"

In your build.rs use ResBuilder to customize your resource file then call .compile() on it to link it to your binary.

use winscribe::icon::Icon;
use winscribe::manifest::{DpiMode, Feature, Manifest};
use winscribe::{ResBuilder, ResError};

fn main() {
    // Only run it if the target is Windows
    if std::env::var("CARGO_CFG_WINDOWS").is_ok() {
        resource().expect("Failed to include resource!");
    }
}

fn resource() -> Result<(), ResError> {
    // Use Cargo's environment variables to fill in some file details
    ResBuilder::from_env()?
        // Add an application icon as a resource
        .push(Icon::app("./assets/application.ico"))
        // Compose a new manifest with DPI awareness and usage of Controls DLL v6
        .push(Manifest::from([
            Feature::DpiAware(DpiMode::PerMonitorV2),
            Feature::ControlsV6,
        ]))
        // Compile and link the resource to the binary
        .compile()
}

Requirements

To compile the resource file a Windows SDK version 10 or later needs to be installed.

Special Thanks

Winscribe started out as a heavily modifed version of:

License

Licensed under either of

at your option.

Dependencies

~0–4.5MB