From 9db8631a963d4ce496d8320a1e94cfa40692030e Mon Sep 17 00:00:00 2001 From: Benedikt Galbavy Date: Tue, 14 Jan 2025 17:13:57 +0100 Subject: [PATCH] project setup slides --- slides.tex | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/slides.tex b/slides.tex index 3110f20..600bd07 100644 --- a/slides.tex +++ b/slides.tex @@ -161,30 +161,47 @@ void chickengame::pickupables::movementSpeedEffect(Entity* player) \begin{frame}{Baby's first \texttt{CMakeLists.txt}} \begin{itemize} - \item On UAS: Only ever Make or no project setup + \item On UAS: Only \texttt{make} is taught, most subjects didn't have further requirements for project setup + \item CMake is good documented, works out of the box with most IDEs, is directly supported by all used libraries \end{itemize} \end{frame} +\note[itemize]{ + \item side notes: static linking, compile time + \item transition to VS (\enquote{before we used a CMake file though\dots}) +} -\begin{frame}{Visual Studio} +\begin{frame}[allowframebreaks]{Visual Studio} +Advantages: \begin{itemize} - \item Visual C++ :,) - \item Extra generated files by IDE - \item VS Solutions have some filepath quirks if you're not careful + \item Works out of the box* + \item Easy to start a project with +\end{itemize} +\framebreak +Disadvantages: +\begin{itemize} + \item Undefined behaviour\footnote{Turns out we had \texttt{heap-use-after-free} errors, but with VS objects were still in memory most of the time} behaves different to \texttt{gcc} + \item What is a \enquote{solution}? + \item VS copied the \texttt{assets/} folder to a different location, which wasn't checked into git \end{itemize} \end{frame} \note[itemize]{ \item Undefined behaviour first noticed by "huh but it works for me :p" \item When trying to access assets things went weird + \item adding a file doesn't add the file } \begin{frame}{How the \_ do I import a library?} \begin{itemize} - \item git-modules + \item git modules + \item CMake's \texttt{add\_subdirectory()} command \end{itemize} \end{frame} \note[itemize]{ + \item first start: someone checked SDL into git. Was the windows version. Project worked on my machine because I had SDL installed locally. Issues due to different versions \item SDL is a library, static compile \item git-modules - do not bloat contributions + \item \enquote{which worked without issues\dots no, of course not, requires git command to update submodules when switching branches} + \item could have used a dependency manager (like conan), didn't know that was a thing } \subsection{ECS} @@ -360,6 +377,16 @@ The solution? \texttt{clang-format} \end{frame} \note{transistion to project management} +\section{Showcase} +\section*{Thank you} + +\begin{frame}{Resources} +The project can be found on \href{https://github.com/orgs/VEGO-Engine/}{GitHub}, but will not be actively maintained. + +The presentation on my personal \href{https://gitea.nanopenguin.at/nanopenguin/cppusergroup-vego-pres}{Gitea} instance. +\end{frame} +\note{Will be published (if ok with rene)} + %code example \begin{frame}[fragile]{Hello, World!} \begin{minted}[linenos,autogobble]{c}