feat: windows app icon (#3753)

* default icon

* cli

* fix typos, fmt + icon fix

I don't think it's a good idea to do
[default.extend-words]
fo = "fo"

 as it's a very common mispelling for 'for'

* fix clippy

* return error on non implemented platforms instead of default dx icon

* fix

* fix

fix the amazing merge
renamed winres to windows
moved windows winres build request to windows

* fix typos

* fix schema

* Update schema.json

* fix schema again

* use default icon if no fallback

* wire up the rest of windows

* fmt

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
KlemenandJonathan Kelley authored and GitHub committed 2026-04-21 18:20:13 -07:00
1 parent 6d1f19067a
commit 3f82c45520
17 files changed
+1125 -25

No files matched your search

+68
View File
@@ -541,6 +541,13 @@
"null"
]
},
"name": {
"description": "Display name of the application",
"type": [
"string",
"null"
]
},
"out_dir": {
"type": [
"string",
@@ -649,6 +656,12 @@
"type": "string"
}
},
"file_version": {
"type": [
"string",
"null"
]
},
"icon": {
"type": [
"array",
@@ -680,6 +693,12 @@
}
]
},
"original_file_name": {
"type": [
"string",
"null"
]
},
"publisher": {
"type": [
"string",
@@ -701,6 +720,18 @@
"null"
]
},
"trademark": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"string",
"null"
]
},
"windows": {
"anyOf": [
{
@@ -2864,6 +2895,13 @@
"WindowsSettings": {
"type": "object",
"properties": {
"add_toolkit_include": {
"description": "Pass the host Windows SDK's `um/` and `shared/` headers to `rc.exe` via `/I` flags. Only relevant when cross-compiling to MSVC from a non-Windows host where the SDK headers aren't on the default include path. Has no effect for the GNU (`windres`) toolchain.",
"type": [
"boolean",
"null"
]
},
"allow_downgrades": {
"type": "boolean"
},
@@ -2873,18 +2911,48 @@
"null"
]
},
"comments": {
"description": "Free-form developer comments embedded in the executable's VERSIONINFO, surfaced in Windows Explorer → Properties → Details → Comments.",
"type": [
"string",
"null"
]
},
"digest_algorithm": {
"type": [
"string",
"null"
]
},
"extra_rc": {
"description": "Raw `.rc` snippet appended verbatim to the generated resource file. Use this to add custom resources not covered by other settings — application manifests, custom string tables, accelerators, etc. Contents are not escaped.",
"type": [
"string",
"null"
]
},
"icon_path": {
"type": [
"string",
"null"
]
},
"internal_name": {
"description": "Internal name embedded in the executable's VERSIONINFO. Most apps leave this equal to the product name; override only if the binary is known internally by a different identifier (e.g. an original codename).",
"type": [
"string",
"null"
]
},
"language": {
"description": "VERSIONINFO LANGID for the resource block. Hex form like `0x0409` (en-US) or `0x0407` (de-DE). Defaults to `0x0000` (neutral). See <https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource#langID> for the full table.",
"type": [
"integer",
"null"
],
"format": "uint16",
"minimum": 0.0
},
"nsis": {
"anyOf": [
{