Plugin Development

From Stellarium Wiki
Revision as of 14:27, 16 September 2009 by Daggerstab (Talk | contribs)
Jump to: navigation, search

Contents

Building and installing

Linux

  • Build the core Stellarium code according to the Compilation on Linux page. Make sure the build sub-directory is called builds/unix.
  • Set the environment variable STELROOT to be the path of the stellarium source tree, for example:
export STELROOT=/home/bob/stellarium
  • Change to where you have the plugin source code installed, make a sub-directory builds/unix and change into it.
cd /home/bob/stel-plugins/PluginName
mkdir -p builds/unix
cd builds/unix
  • Run cmake, specifying the build type to be the same as that which was used to build the core code (Debug or Release). Then run make
cmake -DCMAKE_BUILD_TYPE=Debug ../..
make
  • To install, just do:
make install

This will put the files for the plugin in ~/.stellarium/modules/PluginName

Windows

  • Build the core Stellarium code according to the Windows Build Instructions page. Make sure the build sub-directory is called builds/msys.
  • Set the environment variable STELROOT to be the path of the stellarium source tree, for example:
export STELROOT=/c/msys/1.0/home/bob/stellarium
  • Change to where you have the plugin source code installed, make a sub-directory builds/msys and change into it.
cd /c/msys/1.0/home/bob/stel-plugins
mkdir -p builds/msys
cd builds/msys
  • Run cmake, specifying the build type to be the same as that which was used to build the core code (Debug or Release). Then run make
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ../..
make
  • Several of the plugins have a file called "installer.iss" in the main plugin directory. This can be used with the INNO installer generator to generate a windows installer for the plugin.

Writing Plugins

If you are a developer, and would like to have a go at writing your own Stellarium plugin, the following resources might be helpful:

Windows dynamic linking error

If a plugin uses a class that inherits a Stellarium class that contains the Q_OBJECT macro (for example, a dialog windows that inherits StelDialog), Stellarium will refuse to load it on Windows, returning an "Invalid access to memory location" error. The workaround is to copy the parent class (for example, StelDialog) to the plugin's sources and rename it appropriately.

Advice on how to solve this issue in another way will be much appreciated.

Personal tools
Namespaces
Variants
Actions
in this wiki
other languages
Toolbox