-
Notifications
You must be signed in to change notification settings - Fork 1
Developer
If you would like to develop for GHOSTkit:
- Get added to the project
- Build the full plugin dependency tree.
- Build the GHOSTkit independently of the dependency tree with debug symbols turned on.
- Create branch for you development in the source directory
- Edit files
- Build/Test in the independent directory (not the master build directory)
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 32This example will build the dependency tree for GHOSTkit under ParaView v4.4. The build will commence with 32 build threads.
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.4These 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
gmakeLFM 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| 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) |