-
Install
gcc-14via (Homebrew) -
Make sure your conda environment is deactivate with
conda deactivate -
Build the project
cmake -S . -B ./build -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-14 && cd ./build
and compile it
make
To ensure a standardized environment for development the project has to be built within a Docker container.
In order to do so it requires:
- Docker
- An X11 server to forward the application UI
-
Open Docker Desktop to start the Docker daemon.
-
(On Windows) If the Docker engine cannot run make sure that you have enabled Hardware Virtualization (see this guide)
- Download and install XServer
- Download and install XQuartz
- In XQuartz settings, under Security tab, check "Allow connections from network clients"
- Restart XQuartz
- In a terminal on the host, run
xhost +localhost
First clone the main repo and enter root dir of project
git clone https://gitlab.ethz.ch/tmarcato/oledgf.git
cd oledgf
Open terminal and run
docker build -t test:0.0.1 -f Dockerfile .
to build the docker image test that will contain the dev environment.
In the terminal
docker run -it --rm --name=test --mount type=bind,source=${PWD},target=/src test:0.0.1 bash
If you are running docker from Git Bash on Windows you should run
winpty docker run -it --rm --name=test --mount type=bind,source=${PWD},target=/src test:0.0.1 bash
You will be now in the bash terminal of the container (based on Ubuntu).
Navigate to the src directory which is mapped to the project root.
cd ./src
Build the project
cmake -S . -B ./build && cd ./build
and compile it
make
The build system is based on the cmake_template by Jason Turner.
For now it includes
- High level warnings and Warnings as Errors (
OFFby default) - clang-format
- CPM for external dependencies
- Sanitizers
- Static check with CPPcheck
The project relies on the following dependencies
- fmt: For formatting
- Eigen: For Matrices and linear algebra
- Matplot++: For plotting (gnuplot backend)
- Adjust Simulation configuration from JSON input file after refactoring (Tommaso)
- We should probably support some standard input files as given from our experimental setups
- Work on a standardized output format for all the important simulation and fitting results
- Turn application into CLI with CLI11
- Test and build on different platforms. Maybe experiment with Workflows as well