[x] rename template parameters to match the format specified in the coding conventions
[x] rename all types generated by using or typedef to match the format specified in the coding conventions
[x] replace all typedef with using
[ ] Change "addTest" etc cmake scripts in a such a way that the filepath is added to the cmake target name. This makes it possible to have tests with the same name in different directories. For example there might be a Vulkan "Program" class and a OpenGL "Program" class. With the current scripts there wouldn't be the possibility to have two Tests with the name "Program" -> Same target name even if in different directories.
[x] move template definitions to *.inl files and include them in header (yeah, some additional compile time, but better than explicit instantiation) Only exception: Templates where only the specializations are supposed to be valid -> For example SetUniform of program class . !!! ---> Use function overloading if every type needs is own specialization. This might add quiet a lot of extra lines to the header, but it is clearer since templates should only be used for code re-usage and not for minimizing function declarations.
[x] AddTest / Add benchmark scripts can reuse common code by introducing additional scripts
[x] Add a cmake script to separate sources, libs and definitions for test files an benchmarks
[x] Add a cmake script which adds a list of libs, definitions and sources to a target (like TargetDefaultBuildSetup)
[x] Rewrite script TargetDefaultBuildSetup to take a list of sources, definitions and libs, add all default setups and call the script from the bullet point above
[x] define some library Variables and use them instead of CMakeVariables. For example: replace CMAKE_SRC_DIR with GDL_SRC_DIR. This avoids cmake conflicts if the library is used inside another projects. Also Define stuff like GDL_COMPILE_FLAGS which will be passed to the target_XXX commands. This allows fast and central switching of options for the library and also makes it possible to use other options for special cases without messing around with the global cmake variables.
[ ] create definitions Header, where all default definitions/optional definitions are stored (like the default allocator type)
using
ortypedef
to match the format specified in the coding conventionstypedef
withusing
SetUniform
of program class . !!! ---> Use function overloading if every type needs is own specialization. This might add quiet a lot of extra lines to the header, but it is clearer since templates should only be used for code re-usage and not for minimizing function declarations.Rewrite script TargetDefaultBuildSetup to take a list of sources, definitions and libs, add all default setups and call the script from the bullet point above