Simple Addon Installer

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 22:21, 12 March 2005 (edit)
Llynix (Talk | contribs)
m (minor edits for 1.3.. should work.. no promises :))
← Previous diff
Current revision (08:34, 3 April 2011) (edit) (undo)
Mkpl (Talk | contribs)
m (Reverted edits by 2.94.77.130 (Talk); changed back to last version by 85.250.206.81)
 
(9 intermediate revisions not shown.)
Line 7: Line 7:
*Create your .nsi script. Open up notepad (or another favorite text editor) and paste the following: *Create your .nsi script. Open up notepad (or another favorite text editor) and paste the following:
<pre> <pre>
 +Name "NAME"
OutFile "NAME.exe" OutFile "NAME.exe"
InstallDir "$PROGRAMFILES\NASA\World Wind v1.3" InstallDir "$PROGRAMFILES\NASA\World Wind v1.3"
Line 36: Line 37:
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. 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.
 +
 +==Installing an add-on that appends to an XML config file==
 +
 +(Sample NSI script by Matt Mills.)
 +
 +<pre>
 +; 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
 +</pre>
[[Category:Add-ons]] [[Category:Add-ons]]
 +[[Category:Installer]]

Current revision

I promised a few people this, so here goes.

  • Any place where you see NAME, replace with your add-ons name.
  • Download NSIS and install.
  • Create a directory to work in such as "NAME"
  • Inside this directory create another directory named "Install"
  • Create your .nsi script. Open up notepad (or another favorite text editor) and paste the following:
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

  • Inside the "Install" directory is where you put your files. Commonly for WW this would be a "Configuration" directory, subdirectory and files, and also a "Data" directory et all. Do not put the "NASA" Directory or "Worldwind v1.3" directory in there. You want only directories and files inside of those. Hopefully this makes sense.
  • Right click on NAME.nsi and choose "Compile NSIS Script" You may also choose the compresser to use. LZMA is the best but most of the add-ons are small so this is trivial.

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
Personal tools