HISE Logo Forum
    • Categories
    • Register
    • Login

    Installers

    Scheduled Pinned Locked Moved General Questions
    101 Posts 9 Posters 8.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart
      last edited by

      Whitebox packages on macOS and Inno Setup on Windows.

      Take a look at David‘s Woodwind library, I added a build script there that uses both formats.

      LindonL 1 Reply Last reply Reply Quote 2
      • d.healeyD
        d.healey
        last edited by d.healey

        And a bash script on GNU/Linux (if anyone cares :p )

        makeself - Make self-extractable archives on Unix

        A self-extracting archiving tool for Unix systems, in 100% shell script.

        favicon

        Makeself (makeself.io)

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        1 Reply Last reply Reply Quote 2
        • A
          arminh
          last edited by

          For windows I prefer Inno Setup, for Mac Packages :)

          1 Reply Last reply Reply Quote 1
          • LindonL
            Lindon @Christoph Hart
            last edited by

            @Christoph-Hart yep this look exactly what I (and I think everyone else) is looking for, tell me more about this build script ☺

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon
              last edited by Lindon

              OK so before I head off and learn yet another (two) scripting language, any one have a script they'd be prepared to share?

              HISE Development for hire.
              www.channelrobot.com

              d.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey @Lindon
                last edited by d.healey

                @Lindon said in Installers:

                OK so before I head off and learn yet another (two) scripting language, any one have a script they'd be prepared to share?

                @Christoph-Hart said in Installers:

                Take a look at David‘s Woodwind library, I added a build script there that uses both formats.

                https://github.com/davidhealey/sofiawoodwinds/blob/master/build.sh
                https://github.com/davidhealey/sofiawoodwinds/blob/master/build.bat

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                LindonL 1 Reply Last reply Reply Quote 0
                • LindonL
                  Lindon @d.healey
                  last edited by

                  @d-healey yeah, but maybe I'm not being clear.

                  I'd like to build my own installer with inno (on windows) and you kindly point me at a batch script that seems to build an installer - but it uses (I think) a file called WinInstaller.iss - which is ( I hope) the script file. But that script file I cant find anywhere on your github.

                  HISE Development for hire.
                  www.channelrobot.com

                  d.healeyD 1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    d.healey @Lindon
                    last edited by d.healey

                    @Lindon I'm about to start trying out the scripts myself. I think that the WinInstaller.iss script is generated by this HISE CLI command %hise_path% create-win-installer which is part of the script I linked to. In the HISE source code there is a wininstallertemplate.cpp file that I believe is involved.

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

                    LindonL 1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @d.healey
                      last edited by

                      @d-healey so then not really any use....any one else prepared to share a windows inno installer script?

                      HISE Development for hire.
                      www.channelrobot.com

                      d.healeyD 1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @Lindon
                        last edited by

                        @Lindon Why no use? Doesn't the wininstaller.iss work? Or do you want to have a custom script?

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey
                          last edited by d.healey

                          I just tested the script and it generates the wininstaller.iss as expected

                          [Setup]
                          #define AppName "Michaelas Harp"
                          AppName={#AppName}
                          AppVersion=1.0.0
                          
                          DefaultDirName={pf}\Libre Wave\Michaelas Harp
                          DefaultGroupName={#AppName}
                          Compression=lzma2
                          SolidCompression=yes
                          OutputDir=.\build
                          ArchitecturesInstallIn64BitMode=x64
                          OutputBaseFilename={#AppName} Installer 1.0.0
                          LicenseFile=EULA.txt
                          PrivilegesRequired=admin
                          
                          SetupLogging=yes
                          ChangesAssociations=no
                          
                          [Types]
                          Name: "full"; Description: "Full installation"
                          Name: "custom"; Description: "Custom installation"; Flags: iscustom
                          
                          [Dirs]
                          Name: "{app}\"; Permissions: users-modify powerusers-modify admins-modify system-modify
                          
                          [Components]
                          Name: "app"; Description: "{#AppName} Standalone application"; Types: full custom;
                          Name: "vst2_32"; Description: "{#AppName} 32-bit VSTi Plugin"; Types: full custom;
                          Name: "vst2_64"; Description: "{#AppName} 64-bit VSTi Plugin"; Types: full custom; Check: Is64BitInstallMode;
                          ;BEGIN_AAX
                          Name: "aax"; Description: "{#AppName} AAX Plugin"; Types: full custom;
                          ;END_AAX
                          
                          [Files]
                          
                          ; Standalone
                          Source: "build\App\{#AppName} x86.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: app; Check: not Is64BitInstallMode
                          Source: "build\App\{#AppName} x64.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: app; Check: Is64BitInstallMode
                          
                          ; VST
                          Source: "build\VST\{#AppName} x86.dll"; DestDir: "{code:GetVST2Dir_32}"; Flags: ignoreversion; Components: vst2_32; Check: not Is64BitInstallMode
                          
                          Source: "build\VST\{#AppName} x86.dll"; DestDir: "{code:GetVST2Dir_32}"; Flags: ignoreversion; Components: vst2_32; Check: Is64BitInstallMode
                          Source: "build\VST\{#AppName} x64.dll"; DestDir: "{code:GetVST2Dir_64}"; Flags: ignoreversion; Components: vst2_64; Check: Is64BitInstallMode
                          
                          ;BEGIN_AAX
                          Source: "build\AAX\{#AppName}.aaxplugin\*.*"; DestDir: "{cf}\Avid\Audio\Plug-Ins\{#AppName}.aaxplugin\"; Flags: ignoreversion recursesubdirs; Components: aax
                          ;END_AAX
                          
                          [Icons]
                          Name: "{group}\{#AppName}"; Filename: "{app}\{#AppName} x64.exe"; Check: Is64BitInstallMode
                          Name: "{group}\{#AppName}"; Filename: "{app}\{#AppName} x86.exe"; Check: not Is64BitInstallMode
                          Name: "{group}\Uninstall {#AppName}"; Filename: "{app}\unins000.exe"
                          
                          [Code]
                          var
                            OkToCopyLog : Boolean;
                            VST2DirPage_32: TInputDirWizardPage;
                            VST2DirPage_64: TInputDirWizardPage;
                          
                          procedure InitializeWizard;
                          
                          begin
                          
                            if IsWin64 then begin
                              VST2DirPage_64 := CreateInputDirPage(wpSelectDir,
                              'Confirm 64-Bit VST2 Plugin Directory', '',
                              'Select the folder in which setup should install the 64-bit VST2 Plugin, then click Next.',
                              False, '');
                              VST2DirPage_64.Add('');
                              VST2DirPage_64.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\');
                          
                              VST2DirPage_32 := CreateInputDirPage(wpSelectDir,
                                'Confirm 32-Bit VST2 Plugin Directory', '',
                                'Select the folder in which setup should install the 32-bit VST2 Plugin, then click Next.',
                                False, '');
                              VST2DirPage_32.Add('');
                              VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\WOW6432NODE\VST,VSTPluginsPath|{pf32}\Steinberg\VSTPlugins}\');
                            end else begin
                              VST2DirPage_32 := CreateInputDirPage(wpSelectDir,
                                'Confirm 32-Bit VST2 Plugin Directory', '',
                                'Select the folder in which setup should install the 32-bit VST2 Plugin, then click Next.',
                                False, '');
                              VST2DirPage_32.Add('');
                              VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\');
                            end;
                          end;
                          
                          function GetVST2Dir_32(Param: String): String;
                          begin
                            Result := VST2DirPage_32.Values[0]
                          end;
                          
                          function GetVST2Dir_64(Param: String): String;
                          begin
                            Result := VST2DirPage_64.Values[0]
                          end;
                          
                          procedure CurStepChanged(CurStep: TSetupStep);
                          begin
                            if CurStep = ssDone then
                              OkToCopyLog := True;
                          end;
                          
                          procedure DeinitializeSetup();
                          begin
                            if OkToCopyLog then
                              FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\InstallationLogFile.log'), FALSE);
                            RestartReplace (ExpandConstant ('{log}'), '');
                          end;
                          
                          [UninstallDelete]
                          Type: files; Name: "{app}\InstallationLogFile.log"
                          

                          If you want to create the wininstaller.iss without using the full build script you can just run it on the HISE CLI with the command HISE create-win-installer

                          0636f052-7138-4eab-975a-f6dc0bee5b9d-image.png

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          LindonL 2 Replies Last reply Reply Quote 0
                          • LindonL
                            Lindon @d.healey
                            last edited by

                            @d-healey OK thanks.

                            HISE Development for hire.
                            www.channelrobot.com

                            1 Reply Last reply Reply Quote 0
                            • LindonL
                              Lindon @d.healey
                              last edited by

                              @d-healey said in Installers:

                              define AppName "Michaelas Harp"

                              yeah but how does it know whihc of my apps to build?

                              HISE Development for hire.
                              www.channelrobot.com

                              1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey
                                last edited by d.healey

                                Put the script from Christoph - build.bat in your project's folder. Then run it from the terminal and HISE will compile and generate the .iss file for that project and build the installer in one go.

                                You will need to set the project path and HISE path in the build.bat file. The instructions are at the top of the file.

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                LindonL 1 Reply Last reply Reply Quote 0
                                • LindonL
                                  Lindon @d.healey
                                  last edited by

                                  @d-healey so now I have to have git installed?

                                  1. You need to have the following tools installed: git, InnoSetup

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  d.healeyD 1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @Lindon
                                    last edited by d.healey

                                    @Lindon I have git installed anyway but I can't see any mention of git in that script so perhaps it isn't required. It could be that there is some other command that HISE runs that makes use of git to prevent files being overwritten but hard to say without testing it.

                                    If you just want to generate your own .iss script though you can use the command I posted above and it will create the installer script for the last project loaded in HISE (I think) or you can first load a project into HISE using the CLI with this command:

                                    HISE set_project_folder "-p:replacewithyourprojectpath"

                                    Libre Wave - Freedom respecting instruments and effects
                                    My Patreon - HISE tutorials
                                    YouTube Channel - Public HISE tutorials

                                    LindonL 1 Reply Last reply Reply Quote 0
                                    • LindonL
                                      Lindon @d.healey
                                      last edited by

                                      @d-healey nope..

                                      C:\Users\Lindon\Desktop\HISE-master\projects\standalone\Builds\VisualStudio2017\x64\Release\App>HISE create-win-installer
                                      'HISE' is not recognized as an internal or external command,
                                      operable program or batch file.

                                      HISE Development for hire.
                                      www.channelrobot.com

                                      1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey
                                        last edited by

                                        Are you using HISE 2.1? And did you build it from source? It could be that there is an option that needs to be enabled in Projucer when building HISE to enable the CLI

                                        Libre Wave - Freedom respecting instruments and effects
                                        My Patreon - HISE tutorials
                                        YouTube Channel - Public HISE tutorials

                                        1 Reply Last reply Reply Quote 0
                                        • Christoph HartC
                                          Christoph Hart
                                          last edited by

                                          You need to add the directory where HISE.exe is located to the environment variable PATH. Welcome to the joyful world of build automation :)

                                          LindonL 1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey
                                            last edited by

                                            Oh yeah I forgot to mention that. It's included in the build.bat instructions though

                                            REM Environment variables, comment for build server usage
                                            REM set hise_path="D:\Development\HISE modules\projects\standalone\Builds\VisualStudio2017\x64\Release\App\HISE.exe"
                                            

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

                                            LindonL 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            24

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.0k

                                            Posts