# modmesh README draft ###### tags: `modmesh` ## Dependencies Required for development: Python 3, numpy, pytest, flake8 Optional: LLVM, qt6, setuptools ## Build Modmesh Note that there are two build types: `Debug` and `Release`. For example, `CMAKE_BUILD_TYPE=Debug`. ```shell $ make buildext VERBOSE=1 BUILD_QT=OFF CMAKE_BUILD_TYPE=[build type] CMAKE_ARGS="-DPYTHON_EXECUTABLE=$(which python3)" ``` ## Build Modmesh with Viewer Due to the complexity and the nature of modmesh, modmesh can be built with a viewer which visualizes how modmesh works and what modmesh provides. However, the viewer demands qt6 so qt6 must be installed in advance and the environment variable `CMAKE_PREFIX_PATH` must be set to find the path of qt6 directory. As the path of qt6 directory varies with each machine, creating `setup.mk` in the root directory of modmesh and writing the following code within could help. ```makefile CMAKE_PREFIX_PATH := [path to the Qt directory] # For example, CMAKE_PREFIX_PATH := "~/Qt/6.3.1/macos/" ``` Moving on, run the following command to build modmesh with the viewer. ```shell $ make viewer VERBOSE=1 BUILD_QT=ON CMAKE_BUILD_TYPE=[build type] CMAKE_ARGS="-DPYTHON_EXECUTABLE=$(which python3)" ``` ## Have fun ```script ./build/dev39/cpp/binary/viewer/viewer.app/Contents/MacOS/viewer ``` On the menu bar are two kinds of app which can be loaded into the viewer. Try out the *sample_mesh* first to see what's hidden behind!