Skip to content

feat: support custom Inno Setup installation path via INNO_SETUP_PATH env var#341

Merged
lijy91 merged 2 commits into
mainfrom
feat/inno-setup-env-path
Jun 19, 2026
Merged

feat: support custom Inno Setup installation path via INNO_SETUP_PATH env var#341
lijy91 merged 2 commits into
mainfrom
feat/inno-setup-env-path

Conversation

@lijy91

@lijy91 lijy91 commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds support for specifying a custom Inno Setup 6 installation path via the INNO_SETUP_PATH environment variable, resolving the hardcoded path issue.

Changes

inno_setup_compiler.dart — The ISCC.exe lookup now follows this priority order:

  1. INNO_SETUP_PATH environment variable (if set and the directory contains ISCC.exe)
  2. Default path C:\Program Files (x86)\Inno Setup 6
  3. iscc command found in system PATH (compatible with Scoop and other package managers)

Docs — Both English (docs/en/makers/exe.md) and Chinese (docs/zh/makers/exe.md) documentation updated with usage examples for PowerShell and CMD.

Usage

# PowerShell
$env:INNO_SETUP_PATH = "D:\Tools\Inno Setup 6"
fastforge package --platform windows --targets exe

# CMD
set INNO_SETUP_PATH=D:\Tools\Inno Setup 6
fastforge package --platform windows --targets exe

When INNO_SETUP_PATH is not set, behavior is unchanged — it uses the default path first, then falls back to PATH.

Related Issues

Closes #244 — 能定义 Inno Setup 6 的安装位置吗?目前只能固定在 C 盘?
Closes #318 — flutter_app_packager 调用 inno setup 时使用了硬编码的地址,能否支持更灵活的
Closes #334 — innoset 自定义安装路径

… env var

Allow users to specify a custom Inno Setup 6 installation path via the
INNO_SETUP_PATH environment variable. If not set, falls back to the
default path (C:\Program Files (x86)\Inno Setup 6), then to 'iscc'
in system PATH (compatible with Scoop and other package managers).

Closes #244
Closes #318
Closes #334
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
fastforge-website 1362dbf Jun 19 2026, 03:31 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
fastforge-studio 1362dbf Jun 19 2026, 03:32 PM

Expose and use extra environment variables for Inno Setup and filter locales by available language files.

- Export InnoSetupCompiler from package entrypoint.
- Add InnoSetupCompiler._extraEnv, setExtraEnv(), and public resolveIsccPath() so callers (e.g. distributor) can inject env vars that take priority over Platform.environment when resolving ISCC.exe.
- Refactor _resolveIsccPath to use the injected env and unify resolution logic.
- In InnoSetupScript, add a map of locale -> .isl file names and implement _getAvailableLocales() to only include locales whose .isl files exist in the detected Inno Setup installation (or keep all locales when falling back to PATH). Use this filtered list for the template variable LOCALES.
- In UnifiedDistributor, pass provided variables (such as INNO_SETUP_PATH) to InnoSetupCompiler.setExtraEnv so distribution config can influence Inno Setup resolution.

These changes allow configuration-driven Inno Setup path resolution and avoid generating installers with locales for which language files are not present.
@lijy91 lijy91 merged commit 4c7e9a0 into main Jun 19, 2026
3 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant