Rev 34260 | Blame | Last modification | View Log | Download | RSS feed
#-*- perl -*-# Copyright (C) 2001-5 R Development Core Team## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# General Public License for more details.## A copy of the GNU General Public License is available via WWW at# http://www.gnu.org/copyleft/gpl.html. You can also obtain it by# writing to the Free Software Foundation, Inc., 59 Temple Place,# Suite 330, Boston, MA 02111-1307 USA.# Send any bug reports to r-bugs@r-project.orguse Cwd;use File::Find;my $fn, $component, $path;my $startdir=cwd();my $RVER;my $RW=$ARGV[0];my $SRCDIR=$ARGV[1];$SRCDIR =~ s+/+\\+g; # need DOS-style pathsmy $iconpars="WorkingDir: \"{app}\"" ;## add to the target command line as in the next example# my $iconpars="Parameters: \"--sdi\"; WorkingDir: \"{app}\"" ;open ver, "< ../../../VERSION";$RVER = <ver>;close ver;$RVER =~ s/\n.*$//;$RVER =~ s/Under .*$/Pre-release/;open insfile, "> R.iss" || die "Cannot open R.iss\n";print insfile <<END;[Setup]OutputBaseFilename=${RW}ENDmy $lines=<<END;AppName=R for WindowsAppVerName=R for Windows $RVERAppPublisher=R Development Core TeamAppPublisherURL=http://www.r-project.orgAppSupportURL=http://www.r-project.orgAppUpdatesURL=http://www.r-project.orgAppVersion=${RVER}DefaultDirName={pf}\\R\\${RW}DefaultGroupName=RAllowNoIcons=yesLicenseFile=${SRCDIR}\\COPYINGDisableReadyPage=yesDisableStartupPrompt=yesOutputDir=.WizardSmallImageFile=R.bmpUsePreviousAppDir=noChangesAssociations=yesCompression=lzmaENDmy $lines2=<<END;[Languages]Name: en; MessagesFile: "compiler:Default.isl"Name: br; MessagesFile: "compiler:Languages\\BrazilianPortuguese.isl"Name: ca; MessagesFile: "compiler:Languages\\Catalan.isl"Name: cz; MessagesFile: "compiler:Languages\\Czech.isl"Name: dk; MessagesFile: "compiler:Languages\\Danish.isl"Name: nl; MessagesFile: "compiler:Languages\\Dutch.isl"Name: fr; MessagesFile: "compiler:Languages\\French.isl"Name: de; MessagesFile: "compiler:Languages\\German.isl"Name: hu; MessagesFile: "compiler:Languages\\Hungarian.isl"Name: it; MessagesFile: "compiler:Languages\\Italian.isl"Name: no; MessagesFile: "compiler:Languages\\Norwegian.isl"Name: po; MessagesFile: "compiler:Languages\\Polish.isl"Name: pt; MessagesFile: "compiler:Languages\\Portuguese.isl"Name: ru; MessagesFile: "compiler:Languages\\Russian.isl"Name: sl; MessagesFile: "compiler:Languages\\Slovenian.isl"Name: chs; MessagesFile: "ChineseSimp.isl"Name: ja; MessagesFile: "Japanese.isl"[CustomMessages]en.regentries=Registry entries:en.associate=&Associate R with .RData filesen.dcom=&Register R path for use by the (D)COM serveren.user=User installationen.compact=Minimal user installationen.full=Full installationen.CJK=Chinese/Japanese/Korean installationen.custom=Custom installationbr.regentries=Entradas no registro:br.associate=&Associar arquivos .RData ao Rbr.dcom=&Registrar o caminho do R para uso pelo servidor (D)COMbr.user=Instalação modo usuáriobr.compact=Instalação modo usuário mínimabr.full=Instalação completabr.CJK=Instalação em chinês/japonês/coreanobr.custom=Instalação personalizadadk.regentries=Indgange i registreringsdatabasen:dk.associate=&Associere R med .Rdata filerdk.dcom=&Registrer R til brug for (D)COM serverdk.user=Brugerinstallationdk.compact=Minimal brugerinstallationdk.full=Luld installationdk.CJK=Kinesisk/Japansk/Koreansk installationdk.custom=Brugerdefinet installationfr.regentries=Entrées dans le registre:fr.associate=&Associer R avec les fichiers .RDatafr.dcom=&Enregistrer R pour l'utiliser avec '(D)COM server'fr.user=Installation utilisateurfr.compact=Installation utilisateur minimalefr.full=Installation utilisateur complètefr.CJK=Installation chinois/japonais/coréenfr.custom=Installation personnaliséede.regentries= Einträge in der Windows-Registrierung:de.associate=&Verknüpfe R mit .RData Dateiende.dcom=&Registriere den R Pfad für den (D)COM Serverde.user=Benutzerinstallationde.compact=Minimale Installationde.full=Vollständige Installationde.CJK=Chinesische/Japanische/Koreanische Installationde.custom=Benutzerdefinierte Installationru.regentries=Çàïèñè â ñèñòåìíîì ðåãèñòðå:ru.associate=Ñâÿçàòü R ñ ôàéëàìè .RDataru.dcom=Çàðåãèñòðèðîâàòü ïóòü ê R äëÿ èñïîëüçîâàíèÿ (D)COM-ñåðâåðîìru.user=Ïîëüçîâàòåëüñêàÿ óñòàíîâêàru.compact=Ìèíèìàëüíàÿ ïîëüçîâàòåëüñêàÿ óñòàíîâêàru.full=Ïîëíàÿ óñòàíîâêàru.CJK=Êèòàéñêàÿ/ßïîíñêàÿ/Êîðåéñêàÿ óñòàíîâêàru.custom=Âûáîðî÷íàÿ óñòàíîâêà[Tasks]Name: "desktopicon"; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; MinVersion: 4,4Name: "quicklaunchicon"; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; MinVersion: 4,4; Flags: uncheckedName: "associate"; Description: {cm:associate}; GroupDescription: {cm:regentries}; MinVersion: 4,4Name: "DCOM"; Description: {cm:dcom}; GroupDescription: {cm:regentries}; MinVersion: 4,4[Icons]Name: "{group}\\R $RVER"; Filename: "{app}\\bin\\Rgui.exe"; $iconparsName: "{group}\\Uninstall R $RVER"; Filename: "{uninstallexe}"Name: "{userdesktop}\\R $RVER"; Filename: "{app}\\bin\\Rgui.exe"; MinVersion: 4,4; Tasks: desktopicon; $iconparsName: "{userappdata}\\Microsoft\\Internet Explorer\\Quick Launch\\R $RVER"; Filename: "{app}\\bin\\Rgui.exe"; Tasks: quicklaunchicon; $iconpars[Registry]Root: HKLM; Subkey: "Software\\R-core"; Flags: uninsdeletekeyifempty; Tasks: DCOMRoot: HKLM; Subkey: "Software\\R-core\\R"; Flags: uninsdeletekey; Tasks: DCOMRoot: HKLM; Subkey: "Software\\R-core\\R"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Tasks: DCOMRoot: HKLM; Subkey: "Software\\R-core\\R"; ValueType: string; ValueName: "Current Version"; ValueData: "${RVER}"; Tasks: DCOMRoot: HKCR; Subkey: ".RData"; ValueType: string; ValueName: ""; ValueData: "RWorkspace"; Flags: uninsdeletevalue; Tasks: associateRoot: HKCR; Subkey: "RWorkspace"; ValueType: string; ValueName: ""; ValueData: "R Workspace"; Flags: uninsdeletekey; Tasks: associateRoot: HKCR; Subkey: "RWorkspace\\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\\bin\\RGui.exe,0"; Tasks: associateRoot: HKCR; Subkey: "RWorkspace\\shell\\open\\command"; ValueType: string; ValueName: ""; ValueData: """{app}\\bin\\RGui.exe"" ""%1"""; Tasks: associateENDprint insfile $lines;print insfile "SolidCompression=yes\n";print insfile $lines2;print insfile <<END;[Icons]Name: "{group}\\R $RVER Help"; Filename: "{app}\\doc\\html\\Rwin.html"; Components: html[Types]Name: "user"; Description: {cm:user}Name: "compact"; Description: {cm:compact}Name: "full"; Description: {cm:full}Name: "CJK"; Description: {cm:CJK}Name: "custom"; Description: {cm:custom}; Flags: iscustom[Components]Name: "main"; Description: "Main Files"; Types: user compact full CJK custom; Flags: fixedName: "chtml"; Description: "Compiled HTML Help Files"; Types: user full CJK customName: "html"; Description: "HTML Help Files"; Types: user full CJK customName: "manuals"; Description: "On-line (PDF) Manuals"; Types: user full CJK customName: "devel"; Description: "Source Package Installation Files"; Types: user full CJK customName: "tcl"; Description: "Support Files for Package tcltk"; Types: user full CJK customName: "libdocs"; Description: "Docs for Packages grid and survival"; Types: user full CJK customName: "trans"; Description: "Message Translations"; Types: user full CJK customName: "mbcs"; Description: "Version for East Asian languages"; Types: CJK customName: "latex"; Description: "Latex Help Files"; Types: full customName: "refman"; Description: "PDF Reference Manual"; Types: full customName: "Rd"; Description: "Source Files for Help Pages"; Types: full custom[Files]ENDmy %develfiles=("doc\\html\\logo.jpg" => 1,"README.packages" => 1,"COPYING.LIB" => 1,"bin\\INSTALL" => 1,"bin\\REMOVE" => 1,"bin\\SHLIB" => 1,"bin\\build" => 1,"bin\\check" => 1,"bin\\massage-Examples" => 1,"bin\\Rd2dvi.sh" => 1,"bin\\Rd2txt" => 1,"bin\\Rdconv" => 1,"bin\\Rdiff.sh" => 1,"bin\\Sd2Rd" => 1);$path="${SRCDIR}";chdir($path);find(\&listFiles, ".");close insfile;sub listFiles {$fn = $File::Find::name;$fn =~ s+^./++;my $newname = "";if (!(-d $_)) {$fn =~ s+/+\\+g;$dir = $fn;$dir =~ s/[^\\]+$//;$dir = "\\".$dir;$dir =~ s/\\$//;$_ = $fn;if ($_ eq "bin\\Rchtml.dll"|| m/^library\\[^\\]*\\chtml/) {$component = "chtml";} elsif ($_ eq "doc\\html\\logo.jpg") {$component = "html devel";} elsif ($_ eq "doc\\manual\\R-FAQ.html"|| $_ eq "doc\\html\\rw-FAQ.html"|| $_ eq "share\\texmf\\Sweave.sty") {$component = "main";} elsif (m/^doc\\html/|| m/^doc\\manual\\[^\\]*\.html/|| m/^library\\[^\\]*\\html/|| m/^library\\[^\\]*\\CONTENTS/|| $_ eq "library\\R.css") {$component = "html";} elsif ($_ eq "doc\\manual\\refman.pdf") {$component = "refman";} elsif (m/^doc\\manual/ && $_ ne "doc\\manual\\R-FAQ.pdf") {$component = "manuals";} elsif (m/^library\\[^\\]*\\latex/) {$component = "latex";} elsif (m/^library\\[^\\]*\\man/) {$component = "Rd";} elsif (m/^Tcl/) {$component = "tcl";} elsif (exists($develfiles{$_})|| m/^doc\\KEYWORDS/|| m/^src\\gnuwin32/|| m/^include/|| m/^src\\library\\windlgs/|| m/^share\\make/|| m/^share\\perl/|| m/^share\\R/|| m/^share\\texmf/|| m/^bin\\build/|| m/^bin\\check/|| m/^bin\\INSTALL/|| m/^bin\\massage-Examples/|| m/^bin\\Rd2dvi.sh/|| m/^bin\\Rd2txt/|| m/^bin\\Rdconv/|| m/^bin\\Rdiff.sh/|| m/^bin\\REMOVE/|| m/^bin\\Rprof/|| m/^bin\\Sd2Rd/|| m/^bin\\SHLIB/|| m/^lib\\/) {$component = "devel";} elsif (m/^library\\grid\\doc/|| $_ eq "library\\survival\\survival.ps.gz") {$component = "libdocs";} elsif ($_ eq "modules\\iconv.dll") {$component = "main";} elsif (m/^share\\locale/|| m/^library\\[^\\]*\\po/) { # needs iconv$component = "trans";} elsif ($_ eq "bin\\Rmbcs.dll") {$component = "mbcs";$newname = "R.dll";} else {$component = "main";}$lines="Source: \"$path\\$fn\"; DestDir: \"{app}$dir\"; Flags: ignoreversion; Components: $component\n";$lines="Source: \"$path\\$fn\"; DestDir: \"{app}$dir\"; DestName: \"$newname\"; Flags: ignoreversion; Components: $component\n" if $newname ne "";print insfile $lines;}}