Co-Developing with Axom and MFEMΒΆ

Occasionally, Serac developers may want to patch fixes and useful features back to MFEM and Axom. A co-development build environment is available to expedite this process via git submodules.

To enable a co-develop workflow, use the following steps from the root serac directory:

  1. Initialize submodules. Axom and MFEM are submodules of the Serac repository. The following command recursively updates all submodules:

    $ git submodule update --init --recursive
    
  2. Generate Build System via CMake. Configure our CMake build with the co-develop option using a local host-config (CMake initial cache) generated by Spack. You can do this one of two ways:

    # Option 1: This uses CMake to configure Axom, MFEM, and Serac in one step.
    $ ./config-build.py -hc <host config file> -DSERAC_ENABLE_CODEVELOP=ON
    $ cd <build directory> # this is autogenerated by script based on host-config name
    
    # Option 2:
    $ mkdir <build directory>
    $ cd <build directory>
    $ cmake -C <host config file> -DSERAC_ENABLE_CODEVELOP=ON ..
    
  3. Build/Test code. Build MFEM, Axom, and Serac:

    $ make -j
    $ make -j test