Simple Addon Installer

From World Wind Wiki

Jump to: navigation, search

I promised a few people this, so here goes.

Name "NAME"
OutFile "NAME.exe"
InstallDir "$PROGRAMFILES\NASA\World Wind v1.3"
InstallDirRegKey HKCU "Software\NASA\World Wind" ""
Section "Main Install"
  SetOutPath $INSTDIR
  File /r "Install\*.*"
SectionEnd
Page directory
Page instfiles

Save as NAME.nsi

You should be done! A few notes:

It is pointless to zip up an exe installer, it doesn’t save much room (may actually cost some).

So far the best naming convention I’ve seen has been.

Worldwind_1.3_NAME_0.1.exe

It would be nice if Add-on developers stuck to the same convention especially putting in WW’s version number in there. Of course adjust accordingly 🙂

I hope it’s helpfull, please feel free to comment. Special thanks for Nowak for designing the original quick and easy nsi script, and showing me how it’s done.

[edit] Installing an add-on that appends to an XML config file

(Sample NSI script by Matt Mills.)

; The name of the installer
Name "Colored SRTM Elevation"
; The file to write
OutFile "vissrtm.exe"
; The default installation directory
;Name "NAME"
;OutFile "NAME.exe"
;InstallDir "$PROGRAMFILES\NASA\World Wind v1.3"
;InstallDirRegKey HKCU "Software\NASA\World Wind" ""
InstallDir "$PROGRAMFILES\NASA\World Wind 1.3\"
;--------------------------------
; Pages
Page directory
Page instfiles
;--------------------------------
; The stuff to install
Section "" ;No components page, name is not important
SetOutPath "$INSTDIR\Data\Icons\Interface\"
File vissrtm.png
CopyFiles /silent $INSTDIR\Config\Earth\Images.xml $INSTDIR\Images.vissrtm.bak.xml
ClearErrors
FileOpen $0 $INSTDIR\Config\Earth\Images.xml a
IfErrors done
FileSeek $0 -31 END
FileWrite $0 '		<QuadTileSet ShowAtStartup="false">$\r$\n'
FileWrite $0 "			<Name>Colored SRTM Elevation</Name>$\r$\n"
FileWrite $0 "			<DistanceAboveSurface>10</DistanceAboveSurface>$\r$\n"
FileWrite $0 "			<BoundingBox>$\r$\n"
FileWrite $0 "				<North>$\r$\n"
FileWrite $0 "					<Value>90.0</Value> $\r$\n"
FileWrite $0 "				</North>$\r$\n"
FileWrite $0 "				<South>$\r$\n"
FileWrite $0 "					<Value>-90.0</Value> $\r$\n"
FileWrite $0 "				</South>$\r$\n"
FileWrite $0 "				<West>$\r$\n"
FileWrite $0 "					<Value>-180.0</Value> $\r$\n"
FileWrite $0 "				</West>$\r$\n"
FileWrite $0 "				<East>$\r$\n"
FileWrite $0 "					<Value>180.0</Value> $\r$\n"
FileWrite $0 "				</East>$\r$\n"
FileWrite $0 "			</BoundingBox>$\r$\n"
FileWrite $0 "			<TerrainMapped>true</TerrainMapped>$\r$\n"
FileWrite $0 "			<ImageAccessor>$\r$\n"
FileWrite $0 "				<LevelZeroTileSizeDegrees>20</LevelZeroTileSizeDegrees>$\r$\n"
FileWrite $0 "				<NumberLevels>8</NumberLevels>$\r$\n"
FileWrite $0 "				<TextureSizePixels>150</TextureSizePixels>$\r$\n"
FileWrite $0 "				<ImageFileExtension>jpg</ImageFileExtension>$\r$\n"
FileWrite $0 "				<ImageTileService>$\r$\n"
FileWrite $0 "					<ServerUrl>http://www.worldwinddata.com/redir.php</ServerUrl>$\r$\n"
FileWrite $0 "					<DataSetName>vissrtm</DataSetName>$\r$\n"
FileWrite $0 "					<ServerLogoFilePath>Data\Icons\Interface\vissrtm.png</ServerLogoFilePath>$\r$\n"
FileWrite $0 "				</ImageTileService>$\r$\n"
FileWrite $0 "			</ImageAccessor>$\r$\n"
FileWrite $0 "			<ExtendedInformation>$\r$\n"
FileWrite $0 "				<ToolBarImage>Data\Icons\Interface\vissrtm.png</ToolBarImage>$\r$\n"
FileWrite $0 "			</ExtendedInformation>$\r$\n"
FileWrite $0 "		</QuadTileSet>$\r$\n"
FileWrite $0 "	</ChildLayerSet>$\r$\n"
FileWrite $0 "</LayerSet>$\r$\n"
FileClose $0
done:
SectionEnd ; end the section