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.

128 lines
6.5KB

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