.. |br| raw:: html
Standalone ********** This example is designed to be used as a template for creating FleCSI-based application codes, and is intended as the last example in the tutorial. As such, this example provides the following components: * A basic CMake build system. * A simple control model. * A standard FleCSI-based *main* function. We discuss each of these individually. However, in general, to use this example as a template for a real application, you should just change all occurrances of *standalone* to whatever namespace name you would like to use for your project. Build System ++++++++++++ The build system uses standard CMake, and is entirely defined in CMakeLists.txt: .. literalinclude:: ../../../../tutorial/standalone/CMakeLists.txt :language: cmake To prepare this file for your project, you should do the following: * Change *standalone* to the name of your project wherever it occurs. * Update and add source files to the project. * Add any dependencies. For the most part, if you wish to extend this tutorial in any way, you will need a working knowledge of CMake. Documentation for CMake is `here`__. __ https://cmake.org/documentation Control Model +++++++++++++ The control model for this exmample is located in *specialization/control.hh*. This implementation is consistent with the examples in :ref:`TUT-CM` Tutorial. .. _subcycle: .. figure:: images/standalone.png :align: center Control Model for Stand-Alone Application. Main Function +++++++++++++ The *main* function for this example is located in *standalone.cc*. Unless you need to initialize additional runtimes that are not handled internally by FleCSI, you can likely use this file as-is (except for renaming occurances of *standalone* to something sensible). .. literalinclude:: ../../../../tutorial/standalone/standalone.cc :language: cpp Building the Stand-Alone Example ++++++++++++++++++++++++++++++++ :ref:`Build & Install` FleCSI somewhere on your system, and make sure that the location is set in your *CMAKE_PREFIX_PATH* environement variable. Then, you can build this example like: .. code-block:: console $ mkdir build $ cd build $ cmake .. $ make .. vim: set tabstop=2 shiftwidth=2 expandtab fo=cqt tw=72 :