You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Inno Setup is an open-source installation builder for Windows applications by Jordan Russell and Martijn Laan. Since its introduction in 1997, Inno Setup has been trusted by developers and organizations of all sizes to reliably deploy software to millions of PCs worldwide.
6
-
- Inno Setup comes in two editions: 64-bit and 32-bit. Both editions can build either 32-bit or 64-bit installers.
7
-
- Inno Setup is copyrighted software. There are some restrictions on distribution and use; see the `LICENSE.TXT` file for details.
8
-
- All commercial users of Inno Setup are requested to purchase a commercial license.
4
+
- Source code of Inno Setup, an open-source installation builder for Windows applications by Jordan Russell and Martijn Laan, first released in 1997.
5
+
- Comes in 64-bit and 32-bit editions; both can build 32-bit or 64-bit installers.
6
+
- Copyrighted software; see `LICENSE.TXT` for distribution restrictions. Commercial users are requested to purchase a commercial license.
|`ISHelpGen`| EXE | Generates XML files for help and Pascal Script autocomplete |
29
27
30
28
## Core System
31
-
- Delphi codebase targeting Windows 7 and later using the Windows API.
32
-
- All projects support both 64-bit x64 and 32-bit x86 builds.
29
+
- Delphi codebase targeting Windows 7 and later via the Windows API. All projects build for x64 and x86.
33
30
- Primary project-specific source lives in `Projects/Src/` using namespace prefixes: `Compiler.*`, `Compression.*`, `IDE.*`, `ISPP.*`, `Setup.*`, `SetupLdrAndSetup.*`, `Shared.*`. Projects also compile shared units from `Components/`, and `ISIDE` additionally consumes the generated `ISHelp\isxclasses_wordlists_generated.pas`. New project-specific source files must follow the namespace convention and be placed in `Projects/Src/`.
34
31
-`Shared.Struct.pas` defines cross-project record layouts, and `Shared.CompilerInt.Struct.pas` defines the compiler/front-end interface layout. Changing either requires reviewing every consumer and recompiling the relevant projects.
35
32
- Other shared units live under `Components` and `Projects\Src\Shared.*.pas`.
36
33
-`SetupLdrAndSetup.*` units are shared by SetupLdr, Setup, and SetupCustomStyle; changes must account for all three.
37
-
-`SetupCustomStyle` uses the same source files as `Setup`(plus `Vcl.Themes`/`Vcl.Styles` and `Setup.TaskDialogForm`).
34
+
-`SetupCustomStyle` uses the same sources as `Setup` plus `Vcl.Themes`/`Vcl.Styles` and `Setup.TaskDialogForm`.
38
35
- Many UI units in `Projects/Src/` are paired with checked-in `.dfm` files; form changes often require coordinated `.pas` and `.dfm` edits.
39
-
- Compression engines pull native code from `Projects\Src\Compression.*`
36
+
- Compression engines pull native code from `Projects\Src\Compression.*`.
40
37
- Pascal Script integration sits in `Compiler.Script*.pas` and `Setup.Script*.pas`; changes must be mirrored on both compiler and setup sides.
41
-
- Setup path redirection: `ApplyPathRedirRules` rewrites System32/SysWOW64/Sysnative and converts to super paths. Unless explicitly documented otherwise, functions should receive current-process-bit paths. Use `ApplyRedirToRunEntryPaths` for run entries and `ApplyRedirForRegistrationOperation` for registration/shared-count operations. Old-style FS redirection disabling is still used when running 64-bit system executables from a 32-bit Setup process.
38
+
- Setup path redirection: `ApplyPathRedirRules` rewrites System32/SysWOW64/Sysnative and converts to super paths. Unless documented otherwise, functions should receive current-process-bit paths. Use `ApplyRedirToRunEntryPaths` for run entries and `ApplyRedirForRegistrationOperation` for registration/shared-count operations. Old-style FS redirection disabling is still used when running 64-bit system executables from a 32-bit Setup process.
42
39
- Extended-length (super) paths (`\\?\`) are used by Setup to avoid MAX_PATH issues and are produced by `ApplyPathRedirRules` unless `rfNormalPath` is used. Only pass super paths to APIs known to accept them; when in doubt (especially for shell APIs or user-facing strings), convert back to a normal path.
43
40
44
41
## Build
45
-
- Run `compile.bat x64` or `compile.bat x86`; outputs go to `Files`. Debug binaries go to `Projects\Bin`; release binaries go to `Files`.
42
+
- Run `compile.bat x64` or `compile.bat x86`. Release outputs go to `Files`, debug binaries to `Projects\Bin`.
46
43
- Compiler path is configured in `compilesettings.bat`.
47
-
-`build.bat` orchestrates full release builds
44
+
-`build.bat` orchestrates full release builds.
48
45
49
46
## Code Conventions
50
-
- Pascal coding style and review guidelines are in `.github/instructions/pascal.instructions.md` (auto-applied to `.pas`, `.dpr`, `.inc` files).
51
-
- UniPs (Pascal Script) component guidelines are in `.github/instructions/unips.instructions.md` (auto-applied to `Components/UniPs/**` files).
47
+
- Pascal style and review guidelines: `.github/instructions/pascal.instructions.md` (auto-applied to `.pas`, `.dpr`, `.inc`).
48
+
- UniPs (Pascal Script) component guidelines: `.github/instructions/unips.instructions.md` (auto-applied to `Components/UniPs/**`).
52
49
53
50
## Docs
54
51
-`whatsnew.htm` contains the Revision History.
55
-
- Help content lives under `ISHelp`; regenerate CHM/Web help whenever editing `ISHelp\*`: run `compile.bat x64 ishelpgen` then `ISHelp\compile.bat` and verify 0 errors. Do not skip because this regenerates `isxclasses_wordlists_generated.pas` which is in Git.
56
-
-`ISHelp\isxclasses.pas` declares Pascal Script classes for help generation. When a `uPSC_*.pas` registration changes for Inno Setup (`PS_MINIVCL` is defined, `FPC` and `CLX` are not), update `isxclasses.pas` to match and regenerate `isxclasses_wordlists_generated.pas` as described above.
57
-
-Files `ispp_generated.xml`, `isxclasses_generated.xml`, `isxclasses_wordlists_generated.pas`, and `isxfunc_generated.xml` are automatically generated by `ISHelpGen`, so do not edit those.
52
+
- Help content lives under `ISHelp`. When editing `ISHelp\*`, regenerate CHM/Web help: run `compile.bat x64 ishelpgen` then `ISHelp\compile.bat` and verify 0 errors. Do not skip; this regenerates `isxclasses_wordlists_generated.pas`, which is in Git.
53
+
-`ISHelp\isxclasses.pas` declares Pascal Script classes for help generation. When a `uPSC_*.pas` registration changes for Inno Setup (`PS_MINIVCL` is defined, `FPC` and `CLX` are not), update `isxclasses.pas` to match and regenerate as above.
54
+
-Do not edit files generated by `ISHelpGen`: `ispp_generated.xml`, `isxclasses_generated.xml`, `isxclasses_wordlists_generated.pas`, `isxfunc_generated.xml`.
58
55
- In `whatsnew.htm` and help, wrap script keywords in `<tt></tt>` for monospaced display.
59
-
- Do not use em dashes or en dashes. Use periods or commas instead.
56
+
- Do not use em dashes or en dashes; use periods or commas instead.
0 commit comments