freeswitch/libs/unimrcp/packages/inno-setup/unimrcp.iss

86 lines
3.6 KiB
Plaintext
Raw Normal View History

[Setup]
#include "setup.iss"
OutputBaseFilename=unimrcp-{#= uni_version}
[Types]
Name: "full"; Description: "Full installation"
Name: "server"; Description: "Server installation"
Name: "client"; Description: "Client installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom
[Components]
Name: "server"; Description: "UniMRCP server"; Types: full server
Name: "server\cepstral"; Description: "Cepstral synthesizer plugin"; Types: full server
Name: "server\demosynth"; Description: "Demo synthesizer plugin"; Types: full server
Name: "server\demorecog"; Description: "Demo recognizer plugin"; Types: full server
Name: "client"; Description: "UniMRCP client (demo application)"; Types: full client
[Dirs]
Name: "{app}\data"; Permissions: everyone-full;
Name: "{app}\log"; Permissions: everyone-full;
[Files]
#define uni_root "..\..\Release"
Source: "{#= uni_root}\bin\unimrcpserver.exe"; DestDir: "{app}\bin"; Components: server
Source: "{#= uni_root}\bin\unimrcpservice.exe"; DestDir: "{app}\bin"; Components: server
Source: "{#= uni_root}\bin\unimrcpclient.exe"; DestDir: "{app}\bin"; Components: client
Source: "{#= uni_root}\bin\*.dll"; DestDir: "{app}\bin"; Components: server client
Source: "{#= uni_root}\plugin\mrcpcepstral.dll"; DestDir: "{app}\plugin"; Components: server/cepstral
Source: "{#= uni_root}\plugin\demosynth.dll"; DestDir: "{app}\plugin"; Components: server/demosynth
Source: "{#= uni_root}\plugin\demorecog.dll"; DestDir: "{app}\plugin"; Components: server/demorecog
Source: "{#= uni_root}\conf\unimrcpserver.xml"; DestDir: "{app}\conf"; Components: server
Source: "{#= uni_root}\conf\unimrcpclient.xml"; DestDir: "{app}\conf"; Components: client
Source: "{#= uni_root}\data\*.pcm"; DestDir: "{app}\data"; Components: server client
Source: "{#= uni_root}\data\*.xml"; DestDir: "{app}\data"; Components: server client
[Icons]
Name: "{group}\UniMRCP Server Console"; Filename: "{app}\bin\unimrcpserver.exe"; Parameters: "--root-dir ""{app}"""; Components: server
Name: "{group}\UniMRCP Client Console"; Filename: "{app}\bin\unimrcpclient.exe"; Parameters: "--root-dir ""{app}"""; Components: client
Name: "{group}\UniMRCP Service\Start Server"; Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--start"; Components: server
Name: "{group}\UniMRCP Service\Stop Server"; Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--stop"; Components: server
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"
[Run]
Filename: "{app}\bin\unimrcpservice.exe"; Description: "Register service"; Parameters: "--register ""{app}"""; Components: server
[UninstallRun]
Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--unregister"; Components: server
[Code]
var
Content: String;
procedure ModifyPluginConf(PluginName: String; Enable: Boolean);
var
TextFrom: String;
TextTo: String;
begin
if Enable = True then
begin
TextFrom := 'class="' + PluginName + '" enable="0"';
TextTo := 'class="' + PluginName + '" enable="1"';
end
else
begin
TextFrom := 'class="' + PluginName + '" enable="1"';
TextTo := 'class="' + PluginName + '" enable="0"';
end
StringChange (Content, TextFrom, TextTo);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
CfgFile: String;
begin
if CurStep = ssPostInstall then
begin
CfgFile := ExpandConstant('{app}\conf\unimrcpserver.xml');
LoadStringFromFile (CfgFile, Content);
ModifyPluginConf ('mrcpcepstral', IsComponentSelected('server\cepstral'));
ModifyPluginConf ('demosynth', IsComponentSelected('server\demosynth'));
ModifyPluginConf ('demorecog', IsComponentSelected('server\demorecog'));
SaveStringToFile (CfgFile, Content, False);
end
end;