You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
6.6KB

  1. #include "version.iss"
  2. [Setup]
  3. ArchitecturesInstallIn64BitMode=x64
  4. AppName=Cardinal
  5. AppPublisher=DISTRHO
  6. AppPublisherURL=https://github.com/DISTRHO/Cardinal/
  7. AppSupportURL=https://github.com/DISTRHO/Cardinal/issues/
  8. AppUpdatesURL=https://github.com/DISTRHO/Cardinal/releases/
  9. AppVersion={#VERSION}
  10. DefaultDirName={commonpf64}\Cardinal
  11. DisableDirPage=yes
  12. DisableWelcomePage=no
  13. LicenseFile=..\..\LICENSE
  14. OutputBaseFilename=Cardinal-win64-{#VERSION}-installer
  15. OutputDir=.
  16. UsePreviousAppDir=no
  17. [Types]
  18. Name: "normal"; Description: "Full installation";
  19. Name: "custom"; Description: "Custom installation"; Flags: iscustom;
  20. [Components]
  21. Name: resources; Description: "Resources"; Types: normal custom; Flags: fixed;
  22. Name: carla; Description: "Carla/Ildaeil host tools"; Types: normal;
  23. Name: jack; Description: "Standalone (JACK)"; Types: custom;
  24. Name: native; Description: "Standalone (Native)"; Types: custom;
  25. Name: lv2; Description: "LV2 plugin"; Types: normal;
  26. Name: vst2; Description: "VST2 plugin"; Types: normal;
  27. Name: vst3; Description: "VST3 plugin"; Types: normal;
  28. Name: clap; Description: "CLAP plugin"; Types: normal;
  29. [Files]
  30. #include "resources.iss"
  31. ; icon
  32. Source: "..\..\utils\distrho.ico"; DestDir: "{app}"; Components: resources; Flags: ignoreversion;
  33. ; carla
  34. Source: "..\..\carla\bin\carla-bridge-*.*"; DestDir: "{commoncf64}\Cardinal\Carla"; Components: carla; Flags: ignoreversion;
  35. Source: "..\..\carla\bin\carla-discovery-*.exe"; DestDir: "{commoncf64}\Cardinal\Carla"; Components: carla; Flags: ignoreversion;
  36. Source: "..\..\carla\bin\libcarla_utils.dll"; DestDir: "{commoncf64}\Cardinal\Carla"; Components: carla; Flags: ignoreversion;
  37. Source: "..\..\carla\bin\libcarla_frontend.dll"; DestDir: "{commoncf64}\Cardinal\Carla"; Components: carla; Flags: ignoreversion;
  38. Source: "..\..\carla\build\Carla\libpython3.8.dll"; DestDir: "{commoncf64}\Cardinal\Carla\resources"; Components: carla; Flags: ignoreversion;
  39. Source: "..\..\carla\build\Carla\Qt5*.dll"; DestDir: "{commoncf64}\Cardinal\Carla\resources"; Components: carla; Flags: ignoreversion;
  40. Source: "..\..\carla\build\Carla\resources\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources"; Components: carla; Flags: ignoreversion;
  41. Source: "..\..\carla\build\Carla\iconengines\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\iconengines"; Components: carla; Flags: ignoreversion;
  42. Source: "..\..\carla\build\Carla\imageformats\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\imageformats"; Components: carla; Flags: ignoreversion;
  43. Source: "..\..\carla\build\Carla\platforms\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\platforms"; Components: carla; Flags: ignoreversion;
  44. Source: "..\..\carla\build\Carla\styles\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\styles"; Components: carla; Flags: ignoreversion;
  45. Source: "..\..\carla\build\Carla\resources\lib\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\lib"; Components: carla; Flags: ignoreversion;
  46. Source: "..\..\carla\build\Carla\resources\lib\PyQt5\*.*"; DestDir: "{commoncf64}\Cardinal\Carla\resources\lib\PyQt5"; Components: carla; Flags: ignoreversion;
  47. ; jack
  48. Source: "..\..\bin\Cardinal.exe"; DestDir: "{app}"; Components: jack; Flags: ignoreversion;
  49. ; native
  50. Source: "..\..\bin\CardinalNative.exe"; DestDir: "{app}"; Components: native; Flags: ignoreversion;
  51. ; lv2
  52. Source: "..\..\bin\Cardinal.lv2\*.*"; DestDir: "{commoncf64}\LV2\Cardinal.lv2"; Components: lv2; Flags: ignoreversion;
  53. Source: "..\..\bin\CardinalFX.lv2\*.*"; DestDir: "{commoncf64}\LV2\CardinalFX.lv2"; Components: lv2; Flags: ignoreversion;
  54. Source: "..\..\bin\CardinalSynth.lv2\*.*"; DestDir: "{commoncf64}\LV2\CardinalSynth.lv2"; Components: lv2; Flags: ignoreversion;
  55. ; vst2
  56. Source: "..\..\bin\Cardinal.vst\*.*"; DestDir: "{code:GetVST2Dir}\Cardinal.vst"; Components: vst2; Flags: ignoreversion;
  57. ; vst3
  58. Source: "..\..\bin\Cardinal.vst3\Contents\x86_64-win\Cardinal.vst3"; DestDir: "{commoncf64}\VST3\Cardinal.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
  59. Source: "..\..\bin\CardinalFX.vst3\Contents\x86_64-win\CardinalFX.vst3"; DestDir: "{commoncf64}\VST3\CardinalFX.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
  60. Source: "..\..\bin\CardinalSynth.vst3\Contents\x86_64-win\CardinalSynth.vst3"; DestDir: "{commoncf64}\VST3\CardinalSynth.vst3\Contents\x86_64-win"; Components: vst3; Flags: ignoreversion;
  61. ; clap
  62. Source: "..\..\bin\Cardinal.clap\*.*"; DestDir: "{commoncf64}\CLAP\Cardinal.clap"; Components: clap; Flags: ignoreversion;
  63. [Icons]
  64. Name: "{commonprograms}\Cardinal (JACK)"; Filename: "{app}\Cardinal.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (JACK variant)"; Components: jack;
  65. Name: "{commonprograms}\Cardinal (Native)"; Filename: "{app}\CardinalNative.exe"; IconFilename: "{app}\distrho.ico"; WorkingDir: "{app}"; Comment: "Virtual modular synthesizer plugin (Native variant)"; Components: native;
  66. ; based on https://www.kvraudio.com/forum/viewtopic.php?t=501615
  67. [Code]
  68. var
  69. VST2DirPage: TInputDirWizardPage;
  70. TypesComboOnChangePrev: TNotifyEvent;
  71. procedure ComponentsListCheckChanges;
  72. begin
  73. WizardForm.NextButton.Enabled := (WizardSelectedComponents(False) <> '');
  74. end;
  75. procedure ComponentsListClickCheck(Sender: TObject);
  76. begin
  77. ComponentsListCheckChanges;
  78. end;
  79. procedure TypesComboOnChange(Sender: TObject);
  80. begin
  81. TypesComboOnChangePrev(Sender);
  82. ComponentsListCheckChanges;
  83. end;
  84. procedure InitializeWizard;
  85. begin
  86. WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck;
  87. TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange;
  88. WizardForm.TypesCombo.OnChange := @TypesComboOnChange;
  89. VST2DirPage := CreateInputDirPage(wpSelectComponents,
  90. 'Confirm VST2 Plugin Directory', '',
  91. 'Select the folder in which setup should install the VST2 Plugin, then click Next.',
  92. False, '');
  93. VST2DirPage.Add('VST2 Plugin Directory');
  94. VST2DirPage.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{commonpf64}\VSTPlugins}');
  95. end;
  96. procedure CurPageChanged(CurPageID: Integer);
  97. begin
  98. if CurPageID = VST2DirPage.ID then
  99. begin
  100. VST2DirPage.Buttons[0].Enabled := WizardIsComponentSelected('vst2');
  101. VST2DirPage.PromptLabels[0].Enabled := VST2DirPage.Buttons[0].Enabled;
  102. VST2DirPage.Edits[0].Enabled := VST2DirPage.Buttons[0].Enabled;
  103. end;
  104. if CurPageID = wpSelectComponents then
  105. begin
  106. ComponentsListCheckChanges;
  107. end;
  108. end;
  109. function ShouldSkipPage(PageID: Integer): Boolean;
  110. begin
  111. if PageID = VST2DirPage.ID then
  112. begin
  113. If (not WizardIsComponentSelected('vst2'))then
  114. begin
  115. Result := True
  116. end;
  117. end;
  118. end;
  119. function GetVST2Dir(Param: string): string;
  120. begin
  121. Result := VST2DirPage.Values[0];
  122. end;