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

      But since they are not publishing the source code of the malware, it's a clear case of copy right infringement. GNU Lawyer team, please take over...

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

        @Christoph-Hart Oh good point, but they only have to provide the source on request, have you requested it? lol that would be funny.

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

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

          I need help with my installer.

          I made feature list where we can select components to install but in next pages order is reversed.

          Check list looks like

          1. 32 Plugin
          2. 64 Plugin
          3. Samples

          and if I select everything to install next pages are in this order

          1. Samples
          2. 64 Plugin
          3. 32 Plugin

          How can I keep the original order?

          Here's my code

          [Setup]
          #define AppName "My Plugin"
          #define DevDir "Developer"
          AppName={#AppName}
          AppPublisher={#DevDir}
          AppVersion=1.0.0
          AppId={{C60E272E-F521C-491F-97A0-D61644CAACE3}
          
          DefaultDirName={pf}\{#DevDir}\{#AppName}
          DefaultGroupName={#AppName}
          Compression=lzma2
          SolidCompression=yes
          OutputDir=.\installerbuild
          ArchitecturesInstallIn64BitMode=x64
          OutputBaseFilename={#AppName} Installer 1.0.1
          ;LicenseFile=".\installerAssets\EULA.txt"
          PrivilegesRequired=admin
          ;WizardSmallImageFile=".\installerAssets\Logo55x58.bmp"
          ;WizardImageFile=".\installerAssets\Logo164x314.bmp"
          DisableWelcomePage=no
          DisableDirPage=yes
          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: "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; 
          Name: "samples"; Description: "{#AppName} Sample Set"; Types: full custom;
          
          [Files]
          ; VST
          Source: "Binaries\Compiled\VST\{#AppName} x86.txt"; DestDir: "{code:Get32Dir|0}\{#DevDir}"; Flags: ignoreversion; Components: vst2_32; Check: 
          Source: "Binaries\Compiled\VST\{#AppName} x64.txt"; DestDir: "{code:Get64Dir|0}\{#DevDir}"; Flags: ignoreversion; Components: vst2_64; Check: Is64BitInstallMode
          
          ; SAMPLE FILE
          Source: "{#AppName}_1_0_0_Samples.hr1"; DestDir: "{code:GetSamplesDir|0}"; Flags: ignoreversion; Components: samples;
          
          
           [Icons]
          Name: "{group}\Uninstall {#AppName}"; Filename: "{app}\unins000.exe"    
          
          [Code]
          var 
              vst2_32: TInputDirWizardPage;function SkipEvent64 (Sender: TWizardPage): Boolean;
          begin
              Result := not IsComponentSelected('vst2_64');
          end;
          
          var 
              vst2_64: TInputDirWizardPage;function SkipEvent32 (Sender: TWizardPage): Boolean;
          begin
              Result := not IsComponentSelected('vst2_32');
          end; 
          
          var 
              samples: TInputDirWizardPage;function SkipEventSamples (Sender: TWizardPage): Boolean;
          begin
              Result := not IsComponentSelected('samples');
          end; 
          
          function Get32Dir(Param: String): String;
          begin
            Result := vst2_32.Values[StrToInt(Param)];
          end;
          
          function Get64Dir(Param: String): String;
          begin
            Result := vst2_64.Values[StrToInt(Param)];
          end;
          
          function GetSamplesDir(Param: String): String;
          begin
            Result := samples.Values[StrToInt(Param)];
          end;
          
          procedure InitializeWizard;
          begin
              vst2_32 := CreateInputDirPage(wpSelectComponents, 'Select a location', 
              'Where should the plug-in be installed?', 'Choose the place where you will install {#AppName} 32-bit. Its best to choose the folder where your other plugins are located. Click next to continue', False, 'vst2_32');
              vst2_32.Add('Choose a place for {#AppName} 32-bit');
              vst2_32.Values[0] := GetPreviousData('Directory1', ExpandConstant('{pf}\Steinberg\VSTPlugins\{#DevDir}\{#AppName} 32-bit'));
              vst2_32.OnShouldSkipPage := @SkipEvent32;
          
              vst2_64 := CreateInputDirPage(wpSelectComponents, 'Select a location', 
              'Where should the plug-in be installed?', 'Choose the place where you will install {#AppName} 64-bit. Its best to choose the folder where your other plugins are located. Click next to continue', False, 'vst2_64');
              vst2_64.Add('Choose a place for {#AppName} 64-bit');
              vst2_64.Values[0] := GetPreviousData('Directory2', ExpandConstant('{pf}\Steinberg\VSTPlugins\{#DevDir}\{#AppName} 64-bit'));
              vst2_64.OnShouldSkipPage := @SkipEvent64;
          
              samples := CreateInputDirPage(wpSelectComponents, 'Select a location', 
              'Where should the samples be installed?', 'Choose the place where you will install {#AppName} samples. Click next to continue', False, 'samples');
              samples.Add('Choose a place for {#AppName} Samples');
              samples.Values[0] := GetPreviousData('Directory3', ExpandConstant('{sd}\{#AppName} Samples'));
              samples.OnShouldSkipPage := @SkipEventSamples;
          end;
          
          procedure RegisterPreviousData(PreviousDataKey: Integer);
          begin
            SetPreviousData(PreviousDataKey, 'Directory1', vst2_32.Values[0]);
            SetPreviousData(PreviousDataKey, 'Directory2', vst2_64.Values[0]);
            SetPreviousData(PreviousDataKey, 'Directory3', samples.Values[0]);
          end;
          
          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey
            last edited by

            Samples won't be part of your installer unless your instrument is tiny.

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

            1 Reply Last reply Reply Quote 0
            • Dan KorneffD
              Dan Korneff
              last edited by

              @orange said in Installers:

              By the way if anyone know how to add aax icons to the installation files or how to create folders with aax icons, it would be good to share from here.

              Circling back to this one. To get the AAX icon to appear on your plugin in Windows you have to run the following command:

              attrib +s "MyPluginName.aaxplugin"
              

              @Christoph-Hart is it possible to have the Export function automatically set this file attribute?

              Dan Korneff - Producer / Mixer / Audio Nerd

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

                @dustbro said in Installers:

                To get the AAX icon to appear on your plugin in Windows you have to run the following command:

                Where do you run that?

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

                Dan KorneffD 1 Reply Last reply Reply Quote 0
                • Dan KorneffD
                  Dan Korneff @d.healey
                  last edited by Dan Korneff

                  @d-healey Command Prompt

                  https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib

                  Dan Korneff - Producer / Mixer / Audio Nerd

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

                    @dustbro HISE doesn't actually export the plugin, it generates a JUCE project which generates a Visual Studio project, then Visual Studio does the export. So I don't see how HISE could do this task, but it might be possible to have it written to a script that runs after the compilation is complete.

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

                    Dan KorneffD 1 Reply Last reply Reply Quote 1
                    • Dan KorneffD
                      Dan Korneff @d.healey
                      last edited by Dan Korneff

                      @d-healey Back to square one... Inno seems to strip this property when the file is installed, so the icon disappears again :/
                      EDIT:
                      The installer actually appears to ignore hidden files? Plugin.ico and Desktop.ini are missing after inno install.

                      Also just noticed there's a script in the AAX sdk that changes all attributes for you.

                      AAX\Utilities\CreatePackage.bat
                      
                      IF EXIST %OutDir% GOTO OUTDIR_EXISTS
                      mkdir %OutDir%
                      :OUTDIR_EXISTS
                      
                      IF EXIST %OutDir%\..\Win32 GOTO Win32_EXISTS
                      mkdir %OutDir%\..\Win32
                      :Win32_EXISTS
                      
                      IF EXIST %OutDir%\..\x64 GOTO X64_EXISTS
                      mkdir %OutDir%\..\x64
                      :X64_EXISTS
                      
                      IF EXIST %OutDir%\..\Resources GOTO RESOURCES_EXISTS
                      mkdir %OutDir%\..\Resources
                      :RESOURCES_EXISTS
                      
                      echo Set Folder Icon
                      
                      IF EXIST %OutDir%\..\..\PlugIn.ico GOTO ICON_EXISTS
                      copy /Y %IconSource% %OutDir%\..\..\PlugIn.ico > NUL
                      :ICON_EXISTS
                      
                      attrib -r %OutDir%\..\..
                      attrib -h -r -s %OutDir%\..\..\desktop.ini
                      echo [.ShellClassInfo] > %OutDir%\..\..\desktop.ini 
                      echo IconResource=PlugIn.ico,0 >> %OutDir%\..\..\desktop.ini 
                      echo ;For compatibility with Windows XP >> %OutDir%\..\..\desktop.ini 
                      echo IconFile=PlugIn.ico >> %OutDir%\..\..\desktop.ini 
                      echo IconIndex=0 >> %OutDir%\..\..\desktop.ini 
                      attrib +h +r +s %OutDir%\..\..\PlugIn.ico
                      attrib +h +r +s %OutDir%\..\..\desktop.ini
                      attrib %OutDir%\..\..
                      
                      

                      Dan Korneff - Producer / Mixer / Audio Nerd

                      Dan KorneffD 1 Reply Last reply Reply Quote 0
                      • Dan KorneffD
                        Dan Korneff @Dan Korneff
                        last edited by

                        Found some useful info to retain attributes for AAX in Inno
                        https://www.kvraudio.com/forum/viewtopic.php?t=489036

                        Yes, you have to be careful when "recreating" the AAX. It's all about flags. Definitely works.
                        
                        We do this:
                        
                        [Dirs]
                        Name: "{code:GetAAXDir_64}\{#MyBinaryName}.aaxplugin"; Check: Is64BitInstallMode; Components:aax_64; Attribs: system;
                        
                        [Files]
                        
                        ; AAX
                        Source: "{#MyBinaryName}.aaxplugin\*"; DestDir: "{code:GetAAXDir_64}\{#MyBinaryName}.aaxplugin"; Flags:ignoreversion createallsubdirs recursesubdirs; Check: Is64BitInstallMode; Components:aax_64;
                        Source: "{#MyBinaryName}.aaxplugin\desktop.ini"; DestDir: "{code:GetAAXDir_64}\{#MyBinaryName}.aaxplugin"; Flags:ignoreversion; Attribs: hidden system; Check: Is64BitInstallMode; Components:aax_64;
                        Source: "{#MyBinaryName}.aaxplugin\PlugIn.ico"; DestDir: "{code:GetAAXDir_64}\{#MyBinaryName}.aaxplugin"; Flags:ignoreversion; Attribs: hidden system; Check: Is64BitInstallMode; Components:aax_64;
                        

                        Dan Korneff - Producer / Mixer / Audio Nerd

                        1 Reply Last reply Reply Quote 3
                        • First post
                          Last post

                        45

                        Online

                        1.7k

                        Users

                        11.7k

                        Topics

                        102.2k

                        Posts