Setting Up A Development Environment
The type of development environment needed depends on the use case. In most cases, all that is needed is a build of Ascent. The exception is Viskores filter development, which requires separate builds of Viskores and VTK-h.
- The list of common development use cases:
C++ and python filter development using Conduit Mesh Blueprint data
Connecting a new library to Ascent
Viskores filter development
I Want To Develop C++ and Python Code Directly In Ascent
C++ and python filter can be directly developed inside of an Ascent build. All that is required is a development build of Ascent. Please see Building Ascent for an overview of the different ways to build Ascent.
build_ascent
We recommend using build_ascent.sh to setup a development environment with Ascent’s third-party dependencies. This script will create an ascent-config.cmake file that can serve as a CMake initial cache file (or host-config).
git clone --recursive https://github.com/alpine-dav/ascent.git
cd ascent
env prefix=tpls build_ascent=false ./scripts/build_ascent/build_ascent.sh
cmake -C tpls/ascent-config.cmake -S src -B build
I Want To Develop Viskores and VTK-h Pipelines
If you want to add new features to VTK-h, its source is developed inside the Ascent repo in the src/libs/vtkh directory.
If your changes also require new features in Viskores, you will need to build and install your own version of Viskores.
Once built and installed, update the CMake configure file with the locations
of the installs in the CMake variables VISKORES_DIR.
Note
Not all of Ascent dependencies are built with default options, branches, and commits, and that knowledge is built into the uberenv build. When building dependencies manually, consult Building Ascent for specific build options for each dependency.
Here is the current version of Viskores we are using:
1viskores branch='master' commit='82b25a885abc046b653992801e6c63b6621b2049'
2blt branch='main' commit='fb4246b8bae74c3d7291bef9698fd38863844680'
Building the Ascent Source Code
The CMake configure file should contain all the necessary locations to build Ascent. Here are some example commands to create and configure a build from the top-level directory. If the specific paths are different, adjust them accordingly.
mkdir build
cd build
cmake -C ../uberenv_libs/boden.llnl.gov-macos_1013_x86_64-clang@9.0.0-apple-ascent.cmake ../src
make -j8