Skip to content

Developer

Joshua Murphy edited this page Feb 5, 2016 · 2 revisions

Developing for GHOSTkit

If you would like to develop for GHOSTkit:

  1. Get added to the project
  2. Build the full plugin dependency tree.
  3. Build the GHOSTkit independently of the dependency tree with debug symbols turned on.
  4. Create branch for you development in the source directory
  5. Edit files
  6. Build/Test in the independent directory (not the master build directory)

More Details

The GHOSTkit build system has multiple points of entry to facilitate easier development. The Head of the build tree is the GHOST directory itself. The CMakeLists.txt file in this directory will build all dependencies and the release version of the plugin. The ghost-kit subdirectory also contains a CMakeLists.txt file that builds ONLY the plugin (not the dependencies) and requires a pointer to the previously compiled dependencies.

To make things easier, there is a dependency build script that will build the dependency tree for a given version of ParaView. This script works as follows:

# checkout the source as on the main page
mkdir depTree
cd depTree
{GHOSTkit Source Path}/buildGHOSTkitDeps.bash {ParaView version as an integer} {GHOSTkit Source Path} {number of cores} 

The script will configure the dependencies and then begin building them on the number of cores you specified. A full example of building dependencies for ParaView 4.4 follows:

git clone git@github.com:/ghost-kit/GHOST.git
mkdir depTree
cd depTree
../GHOST/buildGHOSTkitDeps.bash 44 ../GHOST 32

This example will build the dependency tree for GHOSTkit under ParaView v4.4. The build will commence with 32 build threads.

Subproject Examples

Here are a couple of examples for building components independent of the full build. These builds REQUIRE that the full build has been performed, but once performed for the version of ParaView your are building against, it is not necessary to rebuild anything in the full dependency tree. If building on Geyser the full dependency tree builds are already completed for ParaView 4.1 and ParaView 4.4. The directories are:

# ParaView v. 4.1
\glade\scratch\jmurphy\ghost\builds\geyser\4.1

# ParaView v. 4.4
\glade\scratch\jmurphy\ghost\builds\geyser\4.4

These build directories can be used to facilitate rapid startup of development.

(NOTE: Code is being updated to ensure conformity to these examples. The examples may not work with all sub projects at this time. I will remove this note once all projects are updated.)

GHOSTkit Example

# First Compile the full dependency tree as per the instructions 
# on the Main page, then:
mkdir build-ghostkit
cd build-ghostkit
cmake ../GHOST/ghost-kit/ -DDEP_TREE={dep_tree_build_dir} -DDEBUG=true
gmake

LFM Example

# First Compile the full dependency tree as per the instructions 
# on the Main page, then:
mkdir build-lfm
cd build-lfm
cmake ../GHOST/ghost-kit/lfm/ -DDEP_TREE={dep_tree_build_dir} -DDEBUG=true
gmake

Current Sub-projects

Project Directory Notes
GHOSTkit GHOST/ghost-kit Builds entire GhostKit Plugin
LFM GHOST/ghost-kit/lfm Builds just the LFM reader
Enlil GHOST/ghost-kit/enlil Builds just the Enlil Reader
cxForm GHOST/ghost-kit/cxForm Builds the Transform Tools
CDAweb GHOST/ghost-kit/CDAweb Builds the NASA CDAweb interface tools
gkPlot GHOST/ghost-kit/gkPlot Builds arbitrary grid helper source
SwFT GHOST/ghost-kit/SwFT Builds Experimental control interface (not built by default)

Clone this wiki locally