## Environment setup (do only once) ```sh # # activate gcc/11.2.0 at first module load gcc/11.2.0 # # clone devenv # # https or ssh depends # git clone git@github.com:solvcon/devenv.git ~/devenv git clone https://github.com/solvcon/devenv ~/devenv echo "if [ -f ~/devenv/scripts/init ]; then source ~/devenv/scripts/init; fi" >> ~/.bashrc echo "module load gcc/11.2.0" >> ~/.bashrc echo "export CC=$(which gcc)" >> ~/.bashrc echo "export CXX=$(which g++)" >> ~/.bashrc # # https://download.qt.io/development_releases/prebuilt/libclang/ # echo "export LLVM_INSTALL_DIR=$PWD/libclang120" >> ~/.bashrc # # root ca certificate is too old curl -k https://curl.se/ca/cacert.pem -o ~/.cacert.pem echo "cacert $HOME/.cacert.pem" > ~/.curlrc ``` > do a re-login or `source ~/.bashrc` before installation ## Installation: create a devenv isolated package environment ```sh devenv add sci devenv use sci ``` xcb dependencies ```sh # # required from some xcb libs devenv build automake export ACLOCAL_PATH="$(aclocal --print-ac-dir)" devenv build pkgconfig alias pkg-config="$(which pkg-config)" export PKG_CONFIG_PATH="$(pkg-config --variable pc_path pkg-config):/usr/lib64/pkgconfig:/usr/share/pkgconfig:${DEVENVPREFIX}/lib64/pkgconfig" devenv build xcb ``` python ```sh devenv build cmake devenv build openssl alias openssl="$(which openssl)" # # openssl version still shows old version number, but it is okay # # ref: https://serverfault.com/a/789992 VERSION=3.10.12 devenv build python ``` libxkbcommon & qt ```sh pip3 install ninja meson # # libxkbcommon is required for xcb qpa backend devenv build libxkbcommon QTSRC=/tmp SKIPEXTRACT=1 SUB_VER=1 devenv build qt ``` modmesh deps ```sh pip3 install numpy pytest flake8 matplotlib pybind11 ``` pyside6 & shiboken6 ```sh git clone https://code.qt.io/pyside/pyside-setup cd pyside-setup && git checkout 6.5.1 pip install -r requirements.txt python3 setup.py install --qtpaths=${DEVENVPREFIX}/bin/qtpaths --make-spec=ninja --ignore-git --reuse-build --parallel=32 ``` clone modmesh ```sh git clone https://github.com/solvcon/modmesh.git ~/modmesh cd ~/modmesh ``` modify Makefile (do only once) ```sh sed -i '/DQT3D_USE_RHI/a -Dpybind11_DIR=`pybind11-config --cmakedir`\ \\' Makefile sed -i '/DQT3D_USE_RHI/a -DCMAKE_TOOLCHAIN_FILE=${DEVENVPREFIX}/lib/cmake/Qt6/qt.toolchain.cmake\ \\' Makefile ``` build modmesh ```sh make buildext viewer VERBOSE=1 ``` ## (debug) 如果安裝中途Terminal斷線/被關掉 載入已經安裝過的套件的環境變數, 並從中斷的地方繼續 ```sh devenv use sci export ACLOCAL_PATH="$(aclocal --print-ac-dir)" alias pkg-config="$(which pkg-config)" export PKG_CONFIG_PATH="$(pkg-config --variable pc_path pkg-config):/usr/lib64/pkgconfig:/usr/share/pkgconfig:${DEVENVPREFIX}/lib64/pkgconfig" alias openssl="$(which openssl)" ``` ## Testing modmesh 使用GUI Node測試 ![](https://hackmd.io/_uploads/SyfRe40Dh.png) > Taiwania-1 User Guide: https://iservice.nchc.org.tw/nchc_service/nchc_service_qa.php?target=20 打開一個Terminal ```sh devenv use sci cd ~/modmesh/build/dev310/cpp/binary/viewer ./viewer ``` result ![](https://i.imgur.com/OVNsvet.png) # rebuild modmesh ```sh make cmakeclean make buildext viewer VERBOSE=1 ```