Plugin Development
(Difference between revisions)
Matthewg42 (Talk | contribs) |
Daggerstab (Talk | contribs) (added a note on the Windows linking problem) |
||
| Line 33: | Line 33: | ||
*The existing plugin's source code in subversion [http://stellarium.svn.sourceforge.net/viewvc/stellarium/trunk/extmodules/ browse it here] | *The existing plugin's source code in subversion [http://stellarium.svn.sourceforge.net/viewvc/stellarium/trunk/extmodules/ browse it here] | ||
*The stellarium-pubdevel mailing list - please fee free to subscribe and post questions there | *The stellarium-pubdevel mailing list - please fee free to subscribe and post questions there | ||
| + | |||
| + | == 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. | ||
[[Category:Plugins]] | [[Category:Plugins]] | ||
[[Category:Development]] | [[Category:Development]] | ||
Revision as of 14:27, 16 September 2009
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:
- the "Plugins" page in Stellarium's online developers' documentation
- The existing plugin's source code in subversion browse it here
- The stellarium-pubdevel mailing list - please fee free to subscribe and post questions there
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.