Simple Addon Installer

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 15:30, 6 February 2005 (edit)
66.25.207.227 (Talk)

← 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)
 
(13 intermediate revisions not shown.)
Line 1: Line 1:
I promised a few people this, so here goes. I promised a few people this, so here goes.
-#Any place where you see NAME, replace with your add-ons name.+*Any place where you see NAME, replace with your add-ons name.
- +*Download [http://nsis.sourceforge.net/ NSIS] and install.
-#Download [url=http://nsis.sourceforge.net/]NSIS[/url] and install.+*Create a directory to work in such as "NAME"
- +*Inside this directory create another directory named "Install"
-#Create a directory to work in such as "NAME"+*Create your .nsi script. Open up notepad (or another favorite text editor) and paste the following:
- +
-#Inside this directory create another directory named "Install"+
- +
-#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.2"+InstallDir "$PROGRAMFILES\NASA\World Wind v1.3"
-InstallDirRegKey HKCU "Software\NASA\World Wind v1.2" ""+InstallDirRegKey HKCU "Software\NASA\World Wind" ""
Section "Main Install" Section "Main Install"
Line 27: Line 23:
Save as NAME.nsi 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.2" directory in there. You want only directories and files inside of those. Hopefully this makes sense.+*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.
-#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:
- +
-#You should be done! A few things however: +
It is pointless to zip up an exe installer, it doesn't save much room (may actually cost some). It is pointless to zip up an exe installer, it doesn't save much room (may actually cost some).
Line 37: Line 32:
So far the best naming convention I've seen has been. So far the best naming convention I've seen has been.
-Worldwind_1.2d_NAME_0.1.exe+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 :) 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 :)
Line 43: Line 38:
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.
-Stay tuned, more NSI madness to follow.+==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: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