X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=distrib%2Fghc.iss.in;h=151fefcfee7f95f20531b05b9c8a813186d37809;hp=bd3886107fc0b8c82d64b46a01695a733574fa7a;hb=e5c3b478b3cd1707cf122833822f44b2ac09b8e9;hpb=96f9e8f315bb37a4815eba62f4d522cf0dd6e9f1 diff --git a/distrib/ghc.iss.in b/distrib/ghc.iss.in index bd38861..151fefc 100644 --- a/distrib/ghc.iss.in +++ b/distrib/ghc.iss.in @@ -1,3 +1,4 @@ +; Inno Setup documentation: http://www.jrsoftware.org/ishelp/ [Setup] AppName=GHC @@ -11,26 +12,46 @@ SolidCompression=yes PrivilegesRequired=none ChangesAssociations=yes ChangesEnvironment=yes +LicenseFile=distrib/windows-installer-licences.txt +; tasks can be disabled selectively +[Tasks] +Name: fileassoc; Description: "Associate with .hs/.lhs files" +Name: fileassoc\default; Description: "Make this version of GHCi the default" +Name: fileassoc\addon; Description: "Add versioned GHCi to right-click menu" +Name: fileassoc\icon; Description: "Add icon" +Name: path; Description: "Add bin directories to PATH" +; install main payload, license file and icon [Files] Source: "bindistprep\ghc-@ProjectVersion@\*"; DestDir: "{app}"; Flags: recursesubdirs +Source: "distrib\windows-installer-licences.txt"; DestDir: "{app}\doc" +Source: "distrib\hsicon.ico"; DestDir: "{app}\icons" +; Start Menu shortcuts [Icons] -Name: "{group}\@ProjectVersion@\GHCi"; Filename: "{app}\bin\ghci.exe" -Name: "{group}\@ProjectVersion@\GHC Documentation"; Filename: "{app}\doc\index.html" -Name: "{group}\@ProjectVersion@\GHC Library Documentation"; Filename: "{app}\doc\libraries\index.html" -Name: "{group}\@ProjectVersion@\GHC Flag Reference"; Filename: "{app}\doc\users_guide\flag-reference.html" +Name: "{group}\@ProjectVersion@\GHCi"; Filename: "{app}\bin\ghci.exe"; WorkingDir: "{app}\bin" +Name: "{group}\@ProjectVersion@\GHC Documentation"; Filename: "{app}\doc\html\index.html" +Name: "{group}\@ProjectVersion@\GHC Library Documentation"; Filename: "{app}\doc\html\libraries\index.html" +Name: "{group}\@ProjectVersion@\GHC Flag Reference"; Filename: "{app}\doc\html\users_guide\flag-reference.html" [Registry] -; set up icon associations -; this does _not_ follow the "play nice" proposal +; set up file associations +; this does _not_ entirely follow the "play nice" proposal (cf. ticket #916) ; future version should -Root: HKCR; Subkey: ".hs"; ValueType: string; ValueName: ""; ValueData: "ghc_haskell"; Flags: uninsdeletevalue -Root: HKCR; Subkey: ".lhs"; ValueType: string; ValueName: ""; ValueData: "ghc_haskell"; Flags: uninsdeletevalue -Root: HKCR; Subkey: "ghc_haskell"; ValueType: string; ValueName: ""; ValueData: "Haskell Source File"; Flags: uninsdeletekey -Root: HKCR; Subkey: "ghc_haskell\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\icons\hsicon.ico" -Root: HKCR; Subkey: "ghc_haskell\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\bin\ghci.exe"" ""%1""" +Root: HKCR; Subkey: ".hs"; ValueType: string; ValueName: ""; ValueData: "ghc_haskell"; Flags: uninsdeletevalue; Tasks: fileassoc +Root: HKCR; Subkey: ".lhs"; ValueType: string; ValueName: ""; ValueData: "ghc_haskell"; Flags: uninsdeletevalue; Tasks: fileassoc +Root: HKCR; Subkey: "ghc_haskell"; ValueType: string; ValueName: ""; ValueData: "Haskell Source File"; Flags: uninsdeletekeyifempty; Tasks: fileassoc + +; make this GHCi the default action +Root: HKCR; Subkey: "ghc_haskell\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\bin\ghci.exe"" ""%1"""; Flags: uninsdeletevalue; Tasks: fileassoc\default + +; add versioned GHCi entry to right-click menu +Root: HKCR; Subkey: "ghc_haskell\shell\Open with GHCi @ProjectVersion@"; ValueType: none; ValueName: ""; ValueData: ""; Flags: uninsdeletekey; Tasks: fileassoc\addon +Root: HKCR; Subkey: "ghc_haskell\shell\Open with GHCi @ProjectVersion@\command"; ValueType: string; ValueName: ""; ValueData: """{app}\bin\ghci.exe"" ""%1"""; Flags: uninsdeletevalue; Tasks: fileassoc\addon + +; associate file type with icon +Root: HKCR; Subkey: "ghc_haskell\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\icons\hsicon.ico"; Tasks: fileassoc\icon ; these flags were always set in the past, by the installer ; some programs may rely on them to find GHC @@ -38,8 +59,8 @@ Root: HKCU; Subkey: "Software\Haskell\GHC\ghc-@ProjectVersion@"; ValueType: stri Root: HKCU; Subkey: "Software\Haskell\GHC"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletevalue ; set the PATH variable, for both GHC and Cabal -Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{app}\bin;{olddata}"; Check: NotOnPathAlready('{app}\bin'); Flags: preservestringtype -Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{pf}\Haskell\bin;{olddata}"; Check: NotOnPathAlready('{pf}\Haskell\bin'); Flags: preservestringtype +Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{app}\bin;{olddata}"; Check: NotOnPathAlready('{app}\bin'); Flags: preservestringtype; Tasks: path +Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{pf}\Haskell\bin;{olddata}"; Check: NotOnPathAlready('{pf}\Haskell\bin'); Flags: preservestringtype; Tasks: path ; stolen from Gtk2Hs, I'm sure they like us :-)