win installer: added support for creating an installer for an IDE based on qt

git-svn-id: trunk@12601 -
This commit is contained in:
vincents 2007-10-26 20:31:06 +00:00
parent f7eaa9e147
commit 60f3281109
3 changed files with 29 additions and 7 deletions

View File

@ -11,7 +11,8 @@ IF NOT "%FPCTARGETOS%"=="win32" GOTO BUILDIDE
%MAKEEXE% lcl OPT="-gl -Ur" PP=%COMPILER% LCL_PLATFORM=qt >> %LOGFILE%
:BUILDIDE
%MAKEEXE% bigide OPT="-Xs -XX" PP=%COMPILER% >> %LOGFILE%
IF "%IDE_WIDGETSET%"=="" SET IDE_WIDGETSET=win32
%MAKEEXE% bigide OPT="-Xs -XX" PP=%COMPILER% LCL_PLATFORM=%IDE_WIDGETSET% >> %LOGFILE%
%MAKEEXE% lazbuilder OPT="-Xs -XX" PP=%COMPILER% >> %LOGFILE%
%FPCBINDIR%\strip.exe lazarus.exe

View File

@ -11,6 +11,10 @@ if [%ISCC%]==[] SET ISCC="C:\Program Files\Inno Setup 5\iscc.exe"
:: it should have the debugger with the name gdb.exe in its bin subdirectory
SET GDBDIR=c:\lazarus\source\mingw
:: Path to the directory containing the qtinf dll matching the from
:: http://users.pandora.be/Jan.Van.hijfte/qtforfpc/fpcqt4.html
SET QTINFDIR=c:\lazarus\source\qtinf
:: Path to build directory.
:: In this directory an image of the installation will be built.
SET BUILDDIR=c:\temp\lazbuild
@ -27,8 +31,11 @@ SET LAZSVNDIR=%2
:: Path to latest release compiler
SET RELEASE_PPC=%3
:: Optional parameter to indicate the LCL Widget set used by the IDE
SET IDE_WIDGETSET=%4
:: Name of fpc patch file
SET PATCHFILE=%4
SET PATCHFILE=%5
::=====================================================================
:: no change needed after this.
@ -86,13 +93,15 @@ if not exist %BUILDDIR%\startlazarus.exe goto END
if exist %GDBDIR% %CP% -pr %GDBDIR% %BUILDDIR%
:: create the installer
SET OutputFileName=lazarus-%LAZVERSION%-fpc-%FPCVERSION%-%DATESTAMP%-%FPCTARGETOS%
if not [%IDE_WIDGETSET%]==[win32] SET OutputFileName=lazarus-%IDE_WIDGETSET%-%LAZVERSION%-fpc-%FPCVERSION%-%DATESTAMP%-%FPCTARGETOS%
%ISCC% lazarus.iss >> installer.log
:: do not delete build dir, if installer failed.
if not exist output\lazarus-%LAZVERSION%-fpc-%FPCVERSION%-%DATESTAMP%-%FPCTARGETOS%.exe goto END
if not exist output\%OutputFileName%.exe goto END
:: delete build dir
::rd /s /q %BUILDDIR% > NUL
rd /s /q %BUILDDIR% > NUL
:END
@ -106,10 +115,11 @@ goto STOP
:USAGE
@echo off
echo Usage:
echo create_installer.bat FPCSVNDIR LAZSVNDIR RELEASECOMPILER [PATCHFILE]
echo create_installer.bat FPCSVNDIR LAZSVNDIR RELEASECOMPILER [IDEWIDGETSET] [PATCHFILE]
echo FPCSVNDIR: directory that contains a svn version of the fpcbuild repository
echo LAZSVNDIR: directory that contains a svn version of the lazarus repository
echo RELEASECOMPILER: bootstrapping compiler for building fpc
echo IDEWIDGETSET: optional, LCL platform used for compiling the IDE
echo PATCHFILE: optional patch file for the fpc sources
:STOP

View File

@ -9,6 +9,9 @@ EnableISX=true
#define AppName "Lazarus"
#define SetupDate GetEnv('DateStamp')
#define BuildDir GetEnv('BuildDir')
#define QtInfDir GetEnv('QTINFDIR')
#define IDEWidgetSet GetEnv('IDE_WidgetSet')
#define OutputFileName GetEnv('OutputFileName')
[Setup]
AppName={#AppName}
AppVersion={#AppVersion}
@ -19,7 +22,7 @@ AppUpdatesURL=http://www.lazarus.freepascal.org/
ArchitecturesInstallIn64BitMode=x64
DefaultDirName={code:GetDefDir|c:\lazarus}
DefaultGroupName={#AppName}
OutputBaseFilename={#AppName}-{#AppVersion}-fpc-{#FPCLongVersion}-{#SetupDate}-{#FPCTargetOS}
OutputBaseFilename={#OutputFileName}
InternalCompressLevel=ultra
SolidCompression=true
VersionInfoVersion={#AppVersion}
@ -34,6 +37,9 @@ ShowTasksTreeLines=true
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Components]
#if IDEWidgetSet!="qt"
Name: installqtintfdll; Description: Install QT interface dll; Types: custom full compact
#endif
Name: associatelfm; Description: {code:GetAssociateDesc|.lfm}; Types: custom full
Name: associatelpi; Description: {code:GetAssociateDesc|.lpi}; Types: custom full
Name: associatelpk; Description: {code:GetAssociateDesc|.lpk}; Types: custom full
@ -46,7 +52,12 @@ Name: associatepp; Description: {code:GetAssociateDesc|.pp}; Types: custom full
Source: {#BuildDir}\*.*; DestDir: {app}; Flags: recursesubdirs
Source: environmentoptions-{#FPCTargetOS}.xml; DestDir: {app}; Flags: onlyifdoesntexist; AfterInstall: UpdateEnvironmentOptions; DestName: environmentoptions.xml
Source: editoroptions.xml; DestDir: {app}; Flags: onlyifdoesntexist
#if FPCVersion="2.2.0"
#if IDEWidgetSet=="qt"
Source: {#QtInfDir}\*.dll; DestDir: {sys}; Flags: sharedfile replacesameversion
#else
Source: {#QtInfDir}\*.dll; DestDir: {sys}; Flags: sharedfile replacesameversion; Components: installqtintfdll; Tasks:
#endif
#if FPCVersion=="2.2.0"
Source: {#BuildDir}\fpc\{#FPCVersion}\bin\{#FPCFullTarget}\cpp.exe; DestDir: {app}\ide; MinVersion: 1,0
#endif