.. ## Copyright (c) Lawrence Livermore National Security, LLC and .. ## other Smith Project Developers. See the top-level COPYRIGHT file for details. .. ## .. ## SPDX-License-Identifier: (BSD-3-Clause) .. _codevelop-label: ================================ Co-Developing with Axom and MFEM ================================ Occasionally, Smith 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 Smith directory: #. **Initialize submodules.** Axom and MFEM are submodules of the Smith repository. The following command recursively updates all submodules: .. code-block:: bash $ git submodule update --init --recursive #. **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: .. code-block:: bash # Option 1: This uses CMake to configure Axom, MFEM, and Smith in one step. $ ./config-build.py -hc -DSMITH_ENABLE_CODEVELOP=ON $ cd # this is autogenerated by script based on host-config name # Option 2: $ mkdir $ cd $ cmake -C -DSMITH_ENABLE_CODEVELOP=ON .. #. **Build/Test code.** Build MFEM, Axom, and Smith: .. code-block:: bash $ make -j $ make -j test