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.
    • 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
                              • d.healeyD
                                d.healey
                                last edited by

                                I'm hitting a couple of issues with building via the automated script (building via the export menu works just fine).

                                Cleaning Builds but keeping the source code...
                                Loading the preset...Invalid script: The script you are trying to load is not a valid HISE script file.
                                The callback function onControl( is not defined.
                                

                                I get this invalid script error but I've checked all scripts and they have onControl, except for some that are includes.

                                Then I get this a little later

                                C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets
                                \v141\ImportBefore\Intel.Libs.IPP.v141.targets(90,43): error MSB4086: A numeric comparison was attempted on "$(IPPMajor
                                Version)" that evaluates to "" instead of a number, in condition "'$(IPPSingleThreaded)'=='0' AND ('$(UseIntelIPP)' ==
                                'Sequential' OR '$(UseIntelIPP)' == 'Sequential_Dynamic' OR ('$(UseIntelIPP)' == 'true' AND '%(ClCompile.OpenMPSupport)
                                ' != 'true')) AND $(IPPMajorVersion) > 7". [C:\Users\John\Downloads\michaelasHarp-master\Binaries\Builds\VisualStudio20
                                17\Michaelas Harp_App.vcxproj]
                                

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

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

                                  @Christoph-Hart yeah, but I'm not really looking for build automation. Like many things in HISE this stuff is great, in that its powerful and useful, but its very very brittle, unless I'm set up EXACTLY like you then it breaks and doesnt work at all.

                                  HISE Development for hire.
                                  www.channelrobot.com

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

                                    @d-healey
                                    "Oh yeah I forgot to mention that. It's included in the build.bat instructions though"

                                    so in the thing I'm supposed to be running are instruction that need to execute BEFORE I run the thing....

                                    HISE Development for hire.
                                    www.channelrobot.com

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

                                      @Lindon Yup, that's why I always read through scripts to figure out what they do.

                                      @Christoph-Hart Might be a good idea to include that in the help section :)

                                      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

                                        It just occurred to me to run --help on the HISE CLI. Useful reference

                                        export: builds the project using the default settings
                                        export_ci: builds the project using customized behaviour for automated builds
                                         - always use VisualStudio 2017 on Windows
                                         - don't copy the plugins to the plugin folders
                                         - use a relative path for the project file
                                        Arguments:
                                        FILE      The path to the project file (either .xml or .hip you want to export).
                                                  In CI mode, this will be the relative path from the current project folder
                                                  In standard mode, it must be an absolute path
                                        -h:{TEXT} sets the HISE path. Use this if you don't have compiler settings set.
                                        -ipp      enables Intel Performance Primitives for fast convolution.
                                        -t:{TEXT} sets the project type ('standalone' | 'instrument' | 'effect')
                                        -p:{TEXT} sets the plugin type ('VST' | 'AU' | 'VST_AU' | 'AAX' | 'ALL')
                                                  (Leave empty for standalone export)
                                        -a:{TEXT} sets the architecture ('x86', 'x64', 'x86x64').
                                                  (Leave empty on OSX for Universal binary.)
                                        --test [PLUGIN_FILE]
                                        Tests the given plugin
                                        
                                        set_project_folder -p:PATH
                                        Changes the current project folder.
                                        
                                        set_hise_folder -p:PATH
                                        Sets the location for the HISE source code folder.
                                        get_project_folder
                                        Returns the current project folder.
                                        
                                        set_version -v:NEW_VERSION_STRING
                                        Sets the project version number to the given string
                                        
                                        clean [-p:PATH] [-all]
                                        Cleans the Binaries folder of the given project.
                                        -p:PATH - the path to the project folder.
                                        
                                        create-win-installer
                                        Creates a template install script for Inno Setup for the project
                                        

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

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

                                          Im sorry but can we please get the "build automation/CLI" stuff into another thread, I'd really really like to concentrate on getting a usable installer script here...

                                          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 I've just compiled all versions and created the installer using the build script, so it does work with a bit of fiddling. If you want to create your installer independent of the build script then just edit the WinInstaller.iss file to your needs and run it through ISCC.exe via the command line.

                                            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

                                            33

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.0k

                                            Posts