NOT PART OF BUILD. Working ActiveX control installer, just the msvc runtime stuff to sort out

This commit is contained in:
locka%iol.ie 2003-10-13 21:30:48 +00:00
parent e21b28f1d4
commit cd32115037
3 changed files with 93 additions and 8 deletions

View File

@ -2,7 +2,13 @@ Instructions for producing the ActiveX control installer
1. Build Mozilla
2. Build the embedding dist
3. Grab the latest Nullsoft Installer.
4. Edit control.nsi with your paths & version info
3. Grab the latest Nullsoft 2.0+ Installer from http://nsis.sourceforge.net/
4. Run build.pl to create a file maninfest and local settings
5. Run MakeNSISW over control.nsi
Notes.
You need NSIS 2.0. I used NSIS 2.0b3 but others will probably do as well.
The script will evolve but presently it assumes the dist dir is $MOZ_SRC\dist\Embed.

View File

@ -0,0 +1,75 @@
# Run this on Win32 only!
$dir_sep = '\\';
$moz = "$ENV{'MOZ_SRC'}\\mozilla";
$moz_dist = "$moz\\dist\\Embed";
$moz =~ s/\//$dir_sep/g;
$moz_version = "v1.5";
@dirs = ();
$local_nsh = "local.nsh";
open(NSH, ">$local_nsh") or die("Can't write to local manifest $local_nsh");
print NSH "!define DISTDIR \"$moz_dist\"\n";
print NSH "!define VERSION \"$moz_version\"\n";
close(NSH);
open(FILES_NSH, ">files.nsh");
push @dirs, "";
read_dir("$moz_dist", "");
foreach (@dirs)
{
if ($_ eq "")
{
print FILES_NSH "\n SetOutPath \"\$INSTDIR\"\n";
}
else
{
print FILES_NSH "\n SetOutPath \"\$INSTDIR\\$_\"\n";
}
$dir = "$moz_dist\\$_";
opendir(DIR, $dir);
@files = readdir(DIR);
foreach (@files)
{
next if (/.*mfcembed*/i ||
/.*winembed*/i ||
/readme.html/i);
if (! -d "$dir\\$_")
{
print FILES_NSH " File $dir\\$_\n";
}
}
closedir(DIR);
}
close(FILES_NSH);
exit;
sub read_dir($$)
{
my ($absdir,$reldir) = @_;
my @dirList;
opendir(DIST, "$absdir");
@dirList = readdir(DIST);
closedir(DIST);
foreach (@dirList)
{
next if ($_ eq "." || $_ eq "..");
$absFileName = "$absdir\\$_";
$fileName = ($reldir eq "") ? $_ : "$reldir\\$_";
if (-d $absFileName)
{
push @dirs, $fileName;
read_dir($absFileName, $fileName);
}
}
}

View File

@ -1,5 +1,6 @@
!define VERSION "v1.5"
!define DISTDIR "d:\m\source\mozilla\dist\Embed"
!include "local.nsh"
!define PRODUCT "Mozilla ActiveX Control ${VERSION}"
Name "Mozilla ActiveX Control ${VERSION}"
@ -11,16 +12,19 @@ DirText "This will install the Mozilla ActiveX Control ${VERSION} on your comput
Section "Mozilla Control (required)"
SetOutPath $INSTDIR
File /r "${DISTDIR}\*.*"
!include "files.nsh"
; TODO install MSVC++ redistributable DLLs - msvcrt.dll & msvcp60.dll
RegDLL mozctlx.dll
RegDLL "$INSTDIR\mozctlx.dll"
WriteUninstaller Uninst.exe
SectionEnd
Section "uninstall"
UnRegDLL mozctlx.dll
UnRegDLL "$INSTDIR\mozctlx.dll"
Delete $INSTDIR\Uninst.exe
RMDir /r $INSTDIR