73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# Programming tasks for ECG
|
||
|
||
This repository includes my solutions to the tasks
|
||
for the module [*Einführung in die Computergraphik* (Introduction to computer graphics)](https://tu-dresden.de/ing/informatik/smt/cgv/studium/lehrveranstaltungen/ss2023/ecg)
|
||
in the summer semester 2023 at the [TU Dresden](https://tu-dresden.de/).
|
||
|
||
Each exercise includes a separate `readme.txt`
|
||
that describes things specific to how I implemented the task.
|
||
However, those documents are in German, which is a requirement.
|
||
|
||
**Note**:
|
||
Due to copyright restrictions,
|
||
I am not allowed to publish many of my solutions.
|
||
The repository `ecg-prog-filtered` only includes files solely written by me.
|
||
It is filtered with the [`filter.sh`](./filter.sh) script.
|
||
Please **don’t** rely on the history of this repository,
|
||
as rewriting is part of how it can exist.
|
||
See [Licence](#licence) for more information on the licencing.
|
||
|
||
If you want access to all of my solutions,
|
||
please write me an email (or contact me in another way),
|
||
I’ll see what I can do.
|
||
|
||
## Usage
|
||
|
||
### Build
|
||
|
||
To build a specific exercise,
|
||
you can use [Nix](https://nixos.org/) with flake support:
|
||
|
||
```bash
|
||
nix build -L .#u01
|
||
```
|
||
|
||
You can also manually invoke CMake.
|
||
This requires you to have all dependencies installed.
|
||
Because this is not my preferred way, there is no canonical list of dependencies,
|
||
but you can find them in `flake.nix`.
|
||
|
||
### Development
|
||
|
||
You can use `nix develop` or [`direnv`](https://direnv.net/).
|
||
|
||
To create a `compile_commands.json` for `ccls` (or similar),
|
||
create a `build` directory inside the exercise directory,
|
||
and from that, execute:
|
||
|
||
```bash
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=YES
|
||
ln -sf build/compile_commands.json ..
|
||
```
|
||
|
||
## Licence
|
||
|
||
Depending on the file,
|
||
[GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html)
|
||
or [LGPL-3.0-or-later](https://spdx.org/licenses/LGPL-3.0-or-later.html)
|
||
or “Copyright (C) CGV TU Dresden - All Rights Reserved”
|
||
or [MIT](https://spdx.org/licenses/MIT.html).
|
||
Please see the specific files for what applies to them.
|
||
|
||
The published version only includes files under free software licences.
|
||
Sadly, that makes them very incomplete,
|
||
because most implementations done by me are in files from the template,
|
||
which makes my additions a derivative work.
|
||
|
||
All files not marked differently are released under GPL-3.0-or-later.
|
||
|
||
See [gpl-3.0.txt](./gpl-3.0.txt),
|
||
[lgpl-3.0.txt](./lgpl-3.0.txt)
|
||
and [mit.txt](./mit.txt)
|
||
for details.
|