Helper libraries
Information for students
- you do not need to copy any files from this repository "by-hand"
- you do not need to clone this repo explicitly
- you will make use of functions provided by these libraries in the exercises
- these libraries will be configured as a git submodule in the respective exercises, this is why you need to clone with
git clone --recursive ...
- tentative: we will use these libraries to showcase differences when implementing the same functionality in C and C++
Overview
├── iue-io # reading and writing csv-files of numeric data, header-only
│ ├── ccsv.h
│ ├── ccsv.test.c
│ ├── csv.hpp
│ └── csv.test.cpp
├── iue-po # minimalistic support for parsing command line options, header-only
│ ├── cpo.h
│ ├── cpo.test.c
│ ├── po.hpp
│ └── po.test.cpp
├── iue-num # helper functions for numeric calculations with floating point values, header-only
│ ├── numerics.hpp
│ └── numerics.test.cpp
├── iue-rnd # helper functions for generating random instances of values and generic objects, header-only
│ ├── random.hpp
│ └── random.test.cpp
├── iue-svg # minimal svg-generator from geometric primitives (e.g. box/circle/triangle), header-only
│ ├── tags.hpp
│ ├── tags.test.cpp
│ ├── render.hpp
│ ├── render.test.cpp
│ ├── tree.hpp
│ └── tree.test.cpp
└── README.md
config/build/test/install
# cmake -S . -B build
cmake --preset gcc-debug
cmake --build build
ctest --test-dir build --verbose
cmake --install build --prefix ./install
rm -rf build/ install/ # cleanup
fresh integration into an exercise
git submodule add -b main https://sgit.iue.tuwien.ac.at/360050/modules ./modules
git add modules
git commit -m "added modules as git-submodule"
pull for a submodule enabled exercise
cd exerciseX
git pull --recurse-submodules
bump to latest modules commit for an exercise
cd exerciseX
git submodule update --remote --merge modules
git add modules
git commit -m "bump modules to latest commit"
intended incorporation/usecase in an exercise
// task1.main.cpp
#include "iue-io/csv.hpp"
//...
// task1.main.c
#include "iue-io/ccsv.h"
//...
mkdir build
g++ -Imodules -std=c++20 task1.main.cpp -o build/task1_cpp && ./build/task1_cpp
gcc -Imodules -std=c11 task1.main.c -o build/task1_c && ./build/task1_c