From 3a2a6713253a18c46414d3857b3171a36cc15d62 Mon Sep 17 00:00:00 2001 From: ben de roo Date: Sun, 6 Sep 2026 21:15:01 +0200 Subject: [PATCH] added files --- CMakeLists.txt | 52 + assets/shaders/basic.frag | 24 + assets/shaders/basic.vert | 18 + build/CMakeCache.txt | 416 ++++++++ .../CMakeFiles/3.31.6/CMakeCXXCompiler.cmake | 105 ++ .../3.31.6/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 16040 bytes build/CMakeFiles/3.31.6/CMakeSystem.cmake | 15 + .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ++++++++++++++++++ build/CMakeFiles/3.31.6/CompilerIdCXX/a.out | Bin 0 -> 16152 bytes build/CMakeFiles/CMakeConfigureLog.yaml | 330 +++++++ .../CMakeDirectoryInformation.cmake | 16 + build/CMakeFiles/Makefile.cmake | 129 +++ build/CMakeFiles/Makefile2 | 122 +++ build/CMakeFiles/TargetDirectories.txt | 3 + build/CMakeFiles/cmake.check_cache | 1 + .../engine_demo.dir/DependInfo.cmake | 29 + build/CMakeFiles/engine_demo.dir/build.make | 198 ++++ .../engine_demo.dir/cmake_clean.cmake | 22 + .../engine_demo.dir/compiler_depend.make | 2 + .../engine_demo.dir/compiler_depend.ts | 2 + build/CMakeFiles/engine_demo.dir/depend.make | 2 + build/CMakeFiles/engine_demo.dir/flags.make | 10 + build/CMakeFiles/engine_demo.dir/link.d | 127 +++ build/CMakeFiles/engine_demo.dir/link.txt | 1 + .../CMakeFiles/engine_demo.dir/progress.make | 8 + .../engine_demo.dir/src/Camera.cpp.o | Bin 0 -> 4896 bytes .../engine_demo.dir/src/Camera.cpp.o.d | 242 +++++ .../engine_demo.dir/src/Engine.cpp.o | Bin 0 -> 7456 bytes .../engine_demo.dir/src/Engine.cpp.o.d | 273 ++++++ .../engine_demo.dir/src/GLFunctions.cpp.o | Bin 0 -> 11376 bytes .../engine_demo.dir/src/GLFunctions.cpp.o.d | 40 + .../CMakeFiles/engine_demo.dir/src/Mesh.cpp.o | Bin 0 -> 16968 bytes .../engine_demo.dir/src/Mesh.cpp.o.d | 245 +++++ .../engine_demo.dir/src/Shader.cpp.o | Bin 0 -> 13768 bytes .../engine_demo.dir/src/Shader.cpp.o.d | 366 +++++++ .../CMakeFiles/engine_demo.dir/src/main.cpp.o | Bin 0 -> 13720 bytes .../engine_demo.dir/src/main.cpp.o.d | 315 ++++++ build/CMakeFiles/progress.marks | 1 + build/Makefile | 316 ++++++ build/assets/shaders/basic.frag | 24 + build/assets/shaders/basic.vert | 18 + build/cmake_install.cmake | 66 ++ build/compile_commands.json | 38 + build/engine_demo | Bin 0 -> 53048 bytes include/Camera.hpp | 62 ++ include/Engine.hpp | 77 ++ include/GLFunctions.hpp | 146 +++ include/Mesh.hpp | 54 + include/Shader.hpp | 45 + src/Camera.cpp | 71 ++ src/Engine.cpp | 148 +++ src/GLFunctions.cpp | 92 ++ src/Mesh.cpp | 216 ++++ src/Shader.cpp | 121 +++ src/main.cpp | 70 ++ 55 files changed, 5597 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 assets/shaders/basic.frag create mode 100644 assets/shaders/basic.vert create mode 100644 build/CMakeCache.txt create mode 100644 build/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake create mode 100755 build/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin create mode 100644 build/CMakeFiles/3.31.6/CMakeSystem.cmake create mode 100644 build/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 build/CMakeFiles/3.31.6/CompilerIdCXX/a.out create mode 100644 build/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 build/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 build/CMakeFiles/Makefile.cmake create mode 100644 build/CMakeFiles/Makefile2 create mode 100644 build/CMakeFiles/TargetDirectories.txt create mode 100644 build/CMakeFiles/cmake.check_cache create mode 100644 build/CMakeFiles/engine_demo.dir/DependInfo.cmake create mode 100644 build/CMakeFiles/engine_demo.dir/build.make create mode 100644 build/CMakeFiles/engine_demo.dir/cmake_clean.cmake create mode 100644 build/CMakeFiles/engine_demo.dir/compiler_depend.make create mode 100644 build/CMakeFiles/engine_demo.dir/compiler_depend.ts create mode 100644 build/CMakeFiles/engine_demo.dir/depend.make create mode 100644 build/CMakeFiles/engine_demo.dir/flags.make create mode 100644 build/CMakeFiles/engine_demo.dir/link.d create mode 100644 build/CMakeFiles/engine_demo.dir/link.txt create mode 100644 build/CMakeFiles/engine_demo.dir/progress.make create mode 100644 build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d create mode 100644 build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o.d create mode 100644 build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o.d create mode 100644 build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/Mesh.cpp.o.d create mode 100644 build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/Shader.cpp.o.d create mode 100644 build/CMakeFiles/engine_demo.dir/src/main.cpp.o create mode 100644 build/CMakeFiles/engine_demo.dir/src/main.cpp.o.d create mode 100644 build/CMakeFiles/progress.marks create mode 100644 build/Makefile create mode 100644 build/assets/shaders/basic.frag create mode 100644 build/assets/shaders/basic.vert create mode 100644 build/cmake_install.cmake create mode 100644 build/compile_commands.json create mode 100755 build/engine_demo create mode 100644 include/Camera.hpp create mode 100644 include/Engine.hpp create mode 100644 include/GLFunctions.hpp create mode 100644 include/Mesh.hpp create mode 100644 include/Shader.hpp create mode 100644 src/Camera.cpp create mode 100644 src/Engine.cpp create mode 100644 src/GLFunctions.cpp create mode 100644 src/Mesh.cpp create mode 100644 src/Shader.cpp create mode 100644 src/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..38a78ee --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,52 @@ +cmake_minimum_required(VERSION 3.16) +project(Engine CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + +# --------------------------------------------------------------------------- +# Dependencies +# --------------------------------------------------------------------------- +find_package(OpenGL REQUIRED) +find_package(glfw3 3.3 REQUIRED) +find_package(glm REQUIRED) + +# --------------------------------------------------------------------------- +# Engine demo executable +# --------------------------------------------------------------------------- +file(GLOB ENGINE_SOURCES ${CMAKE_SOURCE_DIR}/src/*.cpp) + +add_executable(engine_demo ${ENGINE_SOURCES}) + +target_include_directories(engine_demo PRIVATE + ${CMAKE_SOURCE_DIR}/include +) + +target_link_libraries(engine_demo PRIVATE + glfw + OpenGL::GL + glm::glm +) + +# Baked-in fallback path so the binary still finds its shaders if it's run +# from somewhere other than the build directory. +target_compile_definitions(engine_demo PRIVATE + ENGINE_ASSET_DIR="${CMAKE_SOURCE_DIR}/assets" +) + +if(UNIX AND NOT APPLE) + target_link_libraries(engine_demo PRIVATE dl pthread) +endif() + +# Keep a copy of assets next to the built executable so `./engine_demo` +# works directly from the build directory. +add_custom_command(TARGET engine_demo POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/assets + $/assets +) diff --git a/assets/shaders/basic.frag b/assets/shaders/basic.frag new file mode 100644 index 0000000..ce68feb --- /dev/null +++ b/assets/shaders/basic.frag @@ -0,0 +1,24 @@ +#version 330 core +in vec3 vNormal; +in vec3 vWorldPos; + +uniform vec3 uBaseColor; +uniform vec3 uLightDir; +uniform vec3 uViewPos; + +out vec4 fragColor; + +void main() { + vec3 normal = normalize(vNormal); + vec3 lightDir = normalize(-uLightDir); + + float diffuse = max(dot(normal, lightDir), 0.0); + float ambient = 0.12; + + vec3 viewDir = normalize(uViewPos - vWorldPos); + vec3 halfway = normalize(lightDir + viewDir); + float specular = pow(max(dot(normal, halfway), 0.0), 32.0) * 0.3; + + vec3 color = uBaseColor * (ambient + diffuse) + vec3(specular); + fragColor = vec4(color, 1.0); +} diff --git a/assets/shaders/basic.vert b/assets/shaders/basic.vert new file mode 100644 index 0000000..b81bfed --- /dev/null +++ b/assets/shaders/basic.vert @@ -0,0 +1,18 @@ +#version 330 core +layout(location = 0) in vec3 aPosition; +layout(location = 1) in vec3 aNormal; +layout(location = 2) in vec2 aUV; + +uniform mat4 uModel; +uniform mat4 uView; +uniform mat4 uProjection; + +out vec3 vNormal; +out vec3 vWorldPos; + +void main() { + vec4 worldPos = uModel * vec4(aPosition, 1.0); + vWorldPos = worldPos.xyz; + vNormal = mat3(transpose(inverse(uModel))) * aNormal; + gl_Position = uProjection * uView * worldPos; +} diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..7271dad --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,416 @@ +# This is the CMakeCache file. +# For build in directory: /home/ben/Desktop/engine/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-14 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-14 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/ben/Desktop/engine/build/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Engine + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Engine_BINARY_DIR:STATIC=/home/ben/Desktop/engine/build + +//Value Computed by CMake +Engine_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Engine_SOURCE_DIR:STATIC=/home/ben/Desktop/engine + +//Path to a file. +OPENGL_EGL_INCLUDE_DIR:PATH=/usr/include + +//Path to a file. +OPENGL_GLES2_INCLUDE_DIR:PATH=/usr/include + +//Path to a file. +OPENGL_GLES3_INCLUDE_DIR:PATH=/usr/include + +//Path to a file. +OPENGL_GLU_INCLUDE_DIR:PATH=/usr/include + +//Path to a file. +OPENGL_GLX_INCLUDE_DIR:PATH=/usr/include + +//Path to a file. +OPENGL_INCLUDE_DIR:PATH=/usr/include + +//Path to a library. +OPENGL_egl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libEGL.so + +//Path to a library. +OPENGL_gles2_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLESv2.so + +//Path to a library. +OPENGL_gles3_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLESv2.so + +//Path to a library. +OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLU.so + +//Path to a library. +OPENGL_glx_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libGLX.so + +//Path to a library. +OPENGL_opengl_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libOpenGL.so + +//Path to a file. +OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND + +//The directory containing a CMake configuration file for glfw3. +glfw3_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/glfw3 + +//The directory containing a CMake configuration file for glm. +glm_DIR:PATH=/usr/share/cmake/glm + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/ben/Desktop/engine/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=6 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/ben/Desktop/engine +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.31 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding OpenGL +FIND_PACKAGE_MESSAGE_DETAILS_OpenGL:INTERNAL=[/usr/lib/x86_64-linux-gnu/libOpenGL.so][/usr/lib/x86_64-linux-gnu/libGLX.so][/usr/include][c ][v()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] +//ADVANCED property for variable: OPENGL_EGL_INCLUDE_DIR +OPENGL_EGL_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_GLES2_INCLUDE_DIR +OPENGL_GLES2_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_GLES3_INCLUDE_DIR +OPENGL_GLES3_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_GLU_INCLUDE_DIR +OPENGL_GLU_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_GLX_INCLUDE_DIR +OPENGL_GLX_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_INCLUDE_DIR +OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_egl_LIBRARY +OPENGL_egl_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_gles2_LIBRARY +OPENGL_gles2_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_gles3_LIBRARY +OPENGL_gles3_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_glu_LIBRARY +OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_glx_LIBRARY +OPENGL_glx_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_opengl_LIBRARY +OPENGL_opengl_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OPENGL_xmesa_INCLUDE_DIR +OPENGL_xmesa_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//linker supports push/pop state +_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE + diff --git a/build/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..169926d --- /dev/null +++ b/build/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake @@ -0,0 +1,105 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "14.2.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "26") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") +set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-14") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-14") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.44) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/14;/usr/include/x86_64-linux-gnu/c++/14;/usr/include/c++/14/backward;/usr/lib/gcc/x86_64-linux-gnu/14/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/14;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") +### Imported target for C++23 standard library +set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + +### Imported target for C++26 standard library +set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + + diff --git a/build/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..be6179110bf2c38d200b383a93695c4177716e3a GIT binary patch literal 16040 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 literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/3.31.6/CMakeSystem.cmake b/build/CMakeFiles/3.31.6/CMakeSystem.cmake new file mode 100644 index 0000000..6bb6226 --- /dev/null +++ b/build/CMakeFiles/3.31.6/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.12.94+deb13-amd64") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.12.94+deb13-amd64") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.12.94+deb13-amd64") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.12.94+deb13-amd64") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..3b6e114 --- /dev/null +++ b/build/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,919 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/3.31.6/CompilerIdCXX/a.out b/build/CMakeFiles/3.31.6/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e2679bc48f3a537ddca615622915c6a34d006962 GIT binary patch literal 16152 zcmeHOYitzP6~4Q?oCfTL#)<A)H4FpU@>(J5IJGNKdmv(0x zJ8A_Hec&P*5LLyGD56rTN>y7?DawyXMW&%iQ$@)1S1MH%sT!3=B&A9pG(~LBxpTf@ zJXzC9m8wdei`ehp@4W7uxih{qbMN8IKwmPEP$&!3HpQ)U%4gCdIP8uB4BP3hn4-UJE_NsVc3Kd2++@3y*rmh{cuwL0kx$ME|KBV5 zjG{p@E{6V9Dr#32yC|*|eIUo+!pQ%hzn@zlL_@Q;LAVJqMi4P?E<84Y-Q9=o z?vOK*cgfdyp;Q#_wy)YyQBejH`kz1G6V&GZ;=I>Z=I-LN!{dm#7fyYf(ww9_o)ozr zF)oeeKHn7KuZY8@w8+IA?No#}3}2xw!dHYhBK+5dUl-v|3*Qmpe<=LScBKoC9UcoP zKM(OTq_t=^#LF#0^KXQBTx%@265{p!R%^#UaR%ZH#2JV)5N9CHK%9X%1OF=-u#R49 zvW_qM*#@Poug-YM`mA;IV$;h(_v)K}L8AJDuhVbKnl#nEPqnd=Q0RQ8fBN$0t?A!d zM}K#H?@*?5rt>xH#MVnBueaKy`sXpTWzAQ#I@^=%0Hw-@Y}df;qR(n zX<2iGm0uPl{Zm?h^EVjQ-?FB!TNmElZe6&sz)HMgUB2brLk^aSgQohGv6eMEZ`;4u zvikiaTL($3YM(q{9o_miKhRmzZ+T0t<69RKe|3GmUcZ{9pH~(=NbSTSiXFsf`#(HM z!UJS8{pD-cbnVKknVZ~2>v-!Wa&|m(%{pTxW?NoVE$3$vnVZC)pNIcZBi?s#qV>nk zl;Rf`rUEa=8flaF$wvI~%*{h|+VuIHa|XGqafve!XCTf%oPjt4aR%ZH#2JV)5N9CH zK%9a9_YCm&uRE3g-FLu0d?qlz5W6re}mJnOKry zp4S|#BYplZh|*YJskNlQ`ft2juj@~K&8fcTwokR({bbV-wSDDdpV+uoyJ35dKSO%> zc1TTa`vl>4DBgFO=xI)UE!n$laq=wnhzb9A*f)Q#<8Q`X_*>ka&zx3^f8q?p8Hh6w zXCTf%oPjt4aR%ZH#2JV)5M%)B7qMOuYXb4?vlN=Lo^hG9XJy^veUQug$5qnCGtNr1 zMb6JkTp<6;t$K;u=VWmq)(lSYLmU-j=^KC)h_^F{HWVHc`D)uS4m_XMp> z#(Hu?6nH&xBmLFHC)F}lmT@WS$`Jl+gx@GU#yRx+sgh9lsqVDT;5_nEc7om#U|p{- zRq9Jr;kdYN!1H)aDC(_@bMW7zN~8Xt*ZM6gZTOm9KCp*|`m@9*)N*z9eo+iTBmckA z`mHK@-hZ#{QVQ$m;pTmiFo#>al*Q>rb7Njv zqH&T=!?TZ15Wj-PLt4fg?wdaqKPl12^*<|qFy7$p*Wzcr+*kFxAQHaGe(1QO`tOMU z==$%a$>31oTI0uwN8iGN9^zLd>8={NUUm_`oX(e#_O;P}wSTnYb($qwaqo=eY|j~2 zL{z=n*qAx0Zm-U_y@EZ;>+`FmnJwAl`O=7!x3gZUQnj7hq~dpqdDnBZW=CTU-Wiay zol3=-vfZLrnNnjFr{LPzTA?sSCZU#1n%*4M-a+RJZtuZ^z4GR=KWmPb%gX-TKxbF3 zI99@&O7hdUuV*l0XLj$jY2U!k&+hIS?C&L-UbNX6OQhD$eahZ7uxCflfW4=$Z+~XU z9_raKkRglcwuUrzFZ`<=3vSl&9Hozvyl}(czCew+dl~F(wPa7w>rme3(7%VYvbmyN ztGZdG4+Za1{Z`&7j@O)V*Z$ypQbl%;I#uwT5kjxx;{<{$@(?iT3@DS%NP&iV z_}ctW>O2qQxei^%x?q15&=4LFT;D>_60Wtm6;*TPT`_f^n6RH0i`5P!b?eb8s! zaN)npf2Fw-`hQO10}&td#c2QclReK3VUPJE@T3I8J{Z_z-ZxBg4hehAM}f!09uV#S zC<%CO2z$&2ftXjL|Ih=L$)4w$X#1NNi4=nl2^{Ue(CRQ%_?*BV^Iah3yNDk>{%Nx1 zW5WD9`1>G#C+;O#xJ1wY-$)p?H^dGo&A4+WZjB^v*wi2V)2 z*8{Tua6#U{U8G9*{(*Tp(14;~H2yD%r}eD*8qzA57xRsUN;DqYK%T$StSzv|JiO`O zw11mydF;w(&9t74D) z3>?4?cr#+J(xTbnW4AN`utPgZ!I?w search starts here: + /usr/include/c++/14 + /usr/include/x86_64-linux-gnu/c++/14 + /usr/include/c++/14/backward + /usr/lib/gcc/x86_64-linux-gnu/14/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: a0e1d70a4b6c50c7ed1b3d36dfd3f9a4 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/' + as -v --64 -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccvZwpE1.s + GNU assembler version 2.44 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.44 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_171b0 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_171b0.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Debian 14.2.0-19' --with-bugurl=file:///usr/share/doc/gcc-14/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust --prefix=/usr --with-gcc-major-version-only --program-suffix=-14 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=3 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 14.2.0 (Debian 14.2.0-19) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.' + /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o + collect2 version 14.2.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Debian) 2.44 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.' + /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_171b0 + gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/14] + add: [/usr/include/x86_64-linux-gnu/c++/14] + add: [/usr/include/c++/14/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/14/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/14] ==> [/usr/include/c++/14] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/14] ==> [/usr/include/x86_64-linux-gnu/c++/14] + collapse include dir [/usr/include/c++/14/backward] ==> [/usr/include/c++/14/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/14/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/14/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/14;/usr/include/x86_64-linux-gnu/c++/14;/usr/include/c++/14/backward;/usr/lib/gcc/x86_64-linux-gnu/14/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_171b0/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_171b0.dir/build.make CMakeFiles/cmTC_171b0.dir/build] + ignore line: [gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'] + ignore line: [Building CXX object CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 14.2.0-19' --with-bugurl=file:///usr/share/doc/gcc-14/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 rust --prefix=/usr --with-gcc-major-version-only --program-suffix=-14 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=3] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.0 (Debian 14.2.0-19) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_171b0.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccvZwpE1.s] + ignore line: [GNU C++17 (Debian 14.2.0-19) version 14.2.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 14.2.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP] + ignore line: [] + ignore line: [warning: MPFR header version 4.2.1 differs from library version 4.2.2.] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/14"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/14/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/14/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/14] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/14] + ignore line: [ /usr/include/c++/14/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/14/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: a0e1d70a4b6c50c7ed1b3d36dfd3f9a4] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccvZwpE1.s] + ignore line: [GNU assembler version 2.44 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.44] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_171b0] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_171b0.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 14.2.0-19' --with-bugurl=file:///usr/share/doc/gcc-14/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 rust --prefix=/usr --with-gcc-major-version-only --program-suffix=-14 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/reproducible-path/gcc-14-14.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=3] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 14.2.0 (Debian 14.2.0-19) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/14/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/14/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/14/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_171b0' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_171b0.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/14/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/14/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccqSoTLo.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-o] ==> ignore + arg [cmTC_171b0] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/14] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/14] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/14/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 14.2.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccqSoTLo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_171b0 /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. -v CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'CXX': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/14] ==> [/usr/lib/gcc/x86_64-linux-gnu/14] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/14/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/14;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:2 (project)" + message: | + Running the CXX compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Debian) 2.44 + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.31/Modules/Internal/CheckSourceCompiles.cmake:108 (try_compile)" + - "/usr/share/cmake-3.31/Modules/CheckCXXSourceCompiles.cmake:58 (cmake_check_source_compiles)" + - "/usr/share/cmake-3.31/Modules/FindThreads.cmake:99 (CHECK_CXX_SOURCE_COMPILES)" + - "/usr/share/cmake-3.31/Modules/FindThreads.cmake:163 (_threads_check_libc)" + - "/usr/share/cmake-3.31/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)" + - "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake:2 (find_dependency)" + - "CMakeLists.txt:16 (find_package)" + checks: + - "Performing Test CMAKE_HAVE_LIBC_PTHREAD" + directories: + source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l" + binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_HAVE_LIBC_PTHREAD" + cached: true + stdout: | + Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' + + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9e2ab/fast + /usr/bin/gmake -f CMakeFiles/cmTC_9e2ab.dir/build.make CMakeFiles/cmTC_9e2ab.dir/build + gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' + Building CXX object CMakeFiles/cmTC_9e2ab.dir/src.cxx.o + /usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -o CMakeFiles/cmTC_9e2ab.dir/src.cxx.o -c /home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l/src.cxx + Linking CXX executable cmTC_9e2ab + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9e2ab.dir/link.txt --verbose=1 + /usr/bin/c++ CMakeFiles/cmTC_9e2ab.dir/src.cxx.o -o cmTC_9e2ab + gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l' + + exitCode: 0 +... diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..ff0e668 --- /dev/null +++ b/build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ben/Desktop/engine") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ben/Desktop/engine/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..cc338a1 --- /dev/null +++ b/build/CMakeFiles/Makefile.cmake @@ -0,0 +1,129 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/home/ben/Desktop/engine/CMakeLists.txt" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.6/CMakeSystem.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3ConfigVersion.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets-none.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets.cmake" + "/usr/share/cmake-3.31/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.31/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.31/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.31/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineCompilerSupport.cmake" + "/usr/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.31/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.31/Modules/CMakeFindDependencyMacro.cmake" + "/usr/share/cmake-3.31/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.31/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.31/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.31/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/share/cmake-3.31/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.31/Modules/CMakeParseLibraryArchitecture.cmake" + "/usr/share/cmake-3.31/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.31/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.31/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.31/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.31/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.31/Modules/CheckCXXSourceCompiles.cmake" + "/usr/share/cmake-3.31/Modules/CheckIncludeFileCXX.cmake" + "/usr/share/cmake-3.31/Modules/CheckLibraryExists.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/CrayClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/GNU-FindBinUtils.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/OrangeC-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/TIClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Tasking-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.31/Modules/FindOpenGL.cmake" + "/usr/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.31/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.31/Modules/FindThreads.cmake" + "/usr/share/cmake-3.31/Modules/Internal/CMakeCXXLinkerInformation.cmake" + "/usr/share/cmake-3.31/Modules/Internal/CMakeCommonLinkerInformation.cmake" + "/usr/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake" + "/usr/share/cmake-3.31/Modules/Internal/CheckSourceCompiles.cmake" + "/usr/share/cmake-3.31/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.31/Modules/Linker/GNU-CXX.cmake" + "/usr/share/cmake-3.31/Modules/Linker/GNU.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linker/GNU.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linux-Determine-CXX.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linux-Initialize.cmake" + "/usr/share/cmake-3.31/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.31/Modules/Platform/UnixPaths.cmake" + "/usr/share/cmake/glm/glmConfig.cmake" + "/usr/share/cmake/glm/glmConfigVersion.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.31.6/CMakeSystem.cmake" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/engine_demo.dir/DependInfo.cmake" + ) diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 new file mode 100644 index 0000000..73a80ea --- /dev/null +++ b/build/CMakeFiles/Makefile2 @@ -0,0 +1,122 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ben/Desktop/engine + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ben/Desktop/engine/build + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/engine_demo.dir/all +.PHONY : all + +# The main recursive "codegen" target. +codegen: CMakeFiles/engine_demo.dir/codegen +.PHONY : codegen + +# The main recursive "preinstall" target. +preinstall: +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/engine_demo.dir/clean +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/engine_demo.dir + +# All Build rule for target. +CMakeFiles/engine_demo.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7 "Built target engine_demo" +.PHONY : CMakeFiles/engine_demo.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/engine_demo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ben/Desktop/engine/build/CMakeFiles 7 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/engine_demo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ben/Desktop/engine/build/CMakeFiles 0 +.PHONY : CMakeFiles/engine_demo.dir/rule + +# Convenience name for target. +engine_demo: CMakeFiles/engine_demo.dir/rule +.PHONY : engine_demo + +# codegen rule for target. +CMakeFiles/engine_demo.dir/codegen: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/codegen + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7 "Finished codegen for target engine_demo" +.PHONY : CMakeFiles/engine_demo.dir/codegen + +# clean rule for target. +CMakeFiles/engine_demo.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/clean +.PHONY : CMakeFiles/engine_demo.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..df5fec5 --- /dev/null +++ b/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/ben/Desktop/engine/build/CMakeFiles/engine_demo.dir +/home/ben/Desktop/engine/build/CMakeFiles/edit_cache.dir +/home/ben/Desktop/engine/build/CMakeFiles/rebuild_cache.dir diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/engine_demo.dir/DependInfo.cmake b/build/CMakeFiles/engine_demo.dir/DependInfo.cmake new file mode 100644 index 0000000..7171aac --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/DependInfo.cmake @@ -0,0 +1,29 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ben/Desktop/engine/src/Camera.cpp" "CMakeFiles/engine_demo.dir/src/Camera.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d" + "/home/ben/Desktop/engine/src/Engine.cpp" "CMakeFiles/engine_demo.dir/src/Engine.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/Engine.cpp.o.d" + "/home/ben/Desktop/engine/src/GLFunctions.cpp" "CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o.d" + "/home/ben/Desktop/engine/src/Mesh.cpp" "CMakeFiles/engine_demo.dir/src/Mesh.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/Mesh.cpp.o.d" + "/home/ben/Desktop/engine/src/Shader.cpp" "CMakeFiles/engine_demo.dir/src/Shader.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/Shader.cpp.o.d" + "/home/ben/Desktop/engine/src/main.cpp" "CMakeFiles/engine_demo.dir/src/main.cpp.o" "gcc" "CMakeFiles/engine_demo.dir/src/main.cpp.o.d" + "" "engine_demo" "gcc" "CMakeFiles/engine_demo.dir/link.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/engine_demo.dir/build.make b/build/CMakeFiles/engine_demo.dir/build.make new file mode 100644 index 0000000..0229164 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/build.make @@ -0,0 +1,198 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ben/Desktop/engine + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ben/Desktop/engine/build + +# Include any dependencies generated for this target. +include CMakeFiles/engine_demo.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include CMakeFiles/engine_demo.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/engine_demo.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/engine_demo.dir/flags.make + +CMakeFiles/engine_demo.dir/codegen: +.PHONY : CMakeFiles/engine_demo.dir/codegen + +CMakeFiles/engine_demo.dir/src/Camera.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/Camera.cpp.o: /home/ben/Desktop/engine/src/Camera.cpp +CMakeFiles/engine_demo.dir/src/Camera.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/engine_demo.dir/src/Camera.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/Camera.cpp.o -MF CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d -o CMakeFiles/engine_demo.dir/src/Camera.cpp.o -c /home/ben/Desktop/engine/src/Camera.cpp + +CMakeFiles/engine_demo.dir/src/Camera.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/Camera.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/Camera.cpp > CMakeFiles/engine_demo.dir/src/Camera.cpp.i + +CMakeFiles/engine_demo.dir/src/Camera.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/Camera.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/Camera.cpp -o CMakeFiles/engine_demo.dir/src/Camera.cpp.s + +CMakeFiles/engine_demo.dir/src/Engine.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/Engine.cpp.o: /home/ben/Desktop/engine/src/Engine.cpp +CMakeFiles/engine_demo.dir/src/Engine.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/engine_demo.dir/src/Engine.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/Engine.cpp.o -MF CMakeFiles/engine_demo.dir/src/Engine.cpp.o.d -o CMakeFiles/engine_demo.dir/src/Engine.cpp.o -c /home/ben/Desktop/engine/src/Engine.cpp + +CMakeFiles/engine_demo.dir/src/Engine.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/Engine.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/Engine.cpp > CMakeFiles/engine_demo.dir/src/Engine.cpp.i + +CMakeFiles/engine_demo.dir/src/Engine.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/Engine.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/Engine.cpp -o CMakeFiles/engine_demo.dir/src/Engine.cpp.s + +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o: /home/ben/Desktop/engine/src/GLFunctions.cpp +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o -MF CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o.d -o CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o -c /home/ben/Desktop/engine/src/GLFunctions.cpp + +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/GLFunctions.cpp > CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.i + +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/GLFunctions.cpp -o CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.s + +CMakeFiles/engine_demo.dir/src/Mesh.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/Mesh.cpp.o: /home/ben/Desktop/engine/src/Mesh.cpp +CMakeFiles/engine_demo.dir/src/Mesh.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/engine_demo.dir/src/Mesh.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/Mesh.cpp.o -MF CMakeFiles/engine_demo.dir/src/Mesh.cpp.o.d -o CMakeFiles/engine_demo.dir/src/Mesh.cpp.o -c /home/ben/Desktop/engine/src/Mesh.cpp + +CMakeFiles/engine_demo.dir/src/Mesh.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/Mesh.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/Mesh.cpp > CMakeFiles/engine_demo.dir/src/Mesh.cpp.i + +CMakeFiles/engine_demo.dir/src/Mesh.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/Mesh.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/Mesh.cpp -o CMakeFiles/engine_demo.dir/src/Mesh.cpp.s + +CMakeFiles/engine_demo.dir/src/Shader.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/Shader.cpp.o: /home/ben/Desktop/engine/src/Shader.cpp +CMakeFiles/engine_demo.dir/src/Shader.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/engine_demo.dir/src/Shader.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/Shader.cpp.o -MF CMakeFiles/engine_demo.dir/src/Shader.cpp.o.d -o CMakeFiles/engine_demo.dir/src/Shader.cpp.o -c /home/ben/Desktop/engine/src/Shader.cpp + +CMakeFiles/engine_demo.dir/src/Shader.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/Shader.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/Shader.cpp > CMakeFiles/engine_demo.dir/src/Shader.cpp.i + +CMakeFiles/engine_demo.dir/src/Shader.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/Shader.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/Shader.cpp -o CMakeFiles/engine_demo.dir/src/Shader.cpp.s + +CMakeFiles/engine_demo.dir/src/main.cpp.o: CMakeFiles/engine_demo.dir/flags.make +CMakeFiles/engine_demo.dir/src/main.cpp.o: /home/ben/Desktop/engine/src/main.cpp +CMakeFiles/engine_demo.dir/src/main.cpp.o: CMakeFiles/engine_demo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/engine_demo.dir/src/main.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/engine_demo.dir/src/main.cpp.o -MF CMakeFiles/engine_demo.dir/src/main.cpp.o.d -o CMakeFiles/engine_demo.dir/src/main.cpp.o -c /home/ben/Desktop/engine/src/main.cpp + +CMakeFiles/engine_demo.dir/src/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/engine_demo.dir/src/main.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/ben/Desktop/engine/src/main.cpp > CMakeFiles/engine_demo.dir/src/main.cpp.i + +CMakeFiles/engine_demo.dir/src/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/engine_demo.dir/src/main.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/ben/Desktop/engine/src/main.cpp -o CMakeFiles/engine_demo.dir/src/main.cpp.s + +# Object files for target engine_demo +engine_demo_OBJECTS = \ +"CMakeFiles/engine_demo.dir/src/Camera.cpp.o" \ +"CMakeFiles/engine_demo.dir/src/Engine.cpp.o" \ +"CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o" \ +"CMakeFiles/engine_demo.dir/src/Mesh.cpp.o" \ +"CMakeFiles/engine_demo.dir/src/Shader.cpp.o" \ +"CMakeFiles/engine_demo.dir/src/main.cpp.o" + +# External object files for target engine_demo +engine_demo_EXTERNAL_OBJECTS = + +engine_demo: CMakeFiles/engine_demo.dir/src/Camera.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/src/Engine.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/src/Mesh.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/src/Shader.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/src/main.cpp.o +engine_demo: CMakeFiles/engine_demo.dir/build.make +engine_demo: CMakeFiles/engine_demo.dir/compiler_depend.ts +engine_demo: /usr/lib/x86_64-linux-gnu/libglfw.so.3.4 +engine_demo: /usr/lib/x86_64-linux-gnu/libGLX.so +engine_demo: /usr/lib/x86_64-linux-gnu/libOpenGL.so +engine_demo: CMakeFiles/engine_demo.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/ben/Desktop/engine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Linking CXX executable engine_demo" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/engine_demo.dir/link.txt --verbose=$(VERBOSE) + /usr/bin/cmake -E copy_directory /home/ben/Desktop/engine/assets /home/ben/Desktop/engine/build/assets + +# Rule to build all files generated by this target. +CMakeFiles/engine_demo.dir/build: engine_demo +.PHONY : CMakeFiles/engine_demo.dir/build + +CMakeFiles/engine_demo.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/engine_demo.dir/cmake_clean.cmake +.PHONY : CMakeFiles/engine_demo.dir/clean + +CMakeFiles/engine_demo.dir/depend: + cd /home/ben/Desktop/engine/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ben/Desktop/engine /home/ben/Desktop/engine /home/ben/Desktop/engine/build /home/ben/Desktop/engine/build /home/ben/Desktop/engine/build/CMakeFiles/engine_demo.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : CMakeFiles/engine_demo.dir/depend + diff --git a/build/CMakeFiles/engine_demo.dir/cmake_clean.cmake b/build/CMakeFiles/engine_demo.dir/cmake_clean.cmake new file mode 100644 index 0000000..4ae79bd --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/cmake_clean.cmake @@ -0,0 +1,22 @@ +file(REMOVE_RECURSE + "CMakeFiles/engine_demo.dir/link.d" + "CMakeFiles/engine_demo.dir/src/Camera.cpp.o" + "CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d" + "CMakeFiles/engine_demo.dir/src/Engine.cpp.o" + "CMakeFiles/engine_demo.dir/src/Engine.cpp.o.d" + "CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o" + "CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o.d" + "CMakeFiles/engine_demo.dir/src/Mesh.cpp.o" + "CMakeFiles/engine_demo.dir/src/Mesh.cpp.o.d" + "CMakeFiles/engine_demo.dir/src/Shader.cpp.o" + "CMakeFiles/engine_demo.dir/src/Shader.cpp.o.d" + "CMakeFiles/engine_demo.dir/src/main.cpp.o" + "CMakeFiles/engine_demo.dir/src/main.cpp.o.d" + "engine_demo" + "engine_demo.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/engine_demo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/engine_demo.dir/compiler_depend.make b/build/CMakeFiles/engine_demo.dir/compiler_depend.make new file mode 100644 index 0000000..af1f746 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for engine_demo. +# This may be replaced when dependencies are built. diff --git a/build/CMakeFiles/engine_demo.dir/compiler_depend.ts b/build/CMakeFiles/engine_demo.dir/compiler_depend.ts new file mode 100644 index 0000000..2e21578 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for engine_demo. diff --git a/build/CMakeFiles/engine_demo.dir/depend.make b/build/CMakeFiles/engine_demo.dir/depend.make new file mode 100644 index 0000000..f27fa67 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for engine_demo. +# This may be replaced when dependencies are built. diff --git a/build/CMakeFiles/engine_demo.dir/flags.make b/build/CMakeFiles/engine_demo.dir/flags.make new file mode 100644 index 0000000..9f75ab2 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DENGINE_ASSET_DIR=\"/home/ben/Desktop/engine/assets\" + +CXX_INCLUDES = -I/home/ben/Desktop/engine/include + +CXX_FLAGS = -O3 -DNDEBUG -std=gnu++17 + diff --git a/build/CMakeFiles/engine_demo.dir/link.d b/build/CMakeFiles/engine_demo.dir/link.d new file mode 100644 index 0000000..c0f3025 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/link.d @@ -0,0 +1,127 @@ +engine_demo: \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o \ + /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o \ + CMakeFiles/engine_demo.dir/src/Camera.cpp.o \ + CMakeFiles/engine_demo.dir/src/Engine.cpp.o \ + CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o \ + CMakeFiles/engine_demo.dir/src/Mesh.cpp.o \ + CMakeFiles/engine_demo.dir/src/Shader.cpp.o \ + CMakeFiles/engine_demo.dir/src/main.cpp.o \ + /usr/lib/x86_64-linux-gnu/libglfw.so.3.4 \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libdl.a \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libpthread.a \ + /usr/lib/x86_64-linux-gnu/libGLX.so \ + /usr/lib/x86_64-linux-gnu/libOpenGL.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/libstdc++.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so \ + /lib/x86_64-linux-gnu/libm.so.6 \ + /lib/x86_64-linux-gnu/libmvec.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so \ + /lib/x86_64-linux-gnu/libc.so.6 \ + /usr/lib/x86_64-linux-gnu/libc_nonshared.a \ + /lib64/ld-linux-x86-64.so.2 \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o \ + /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o \ + /lib/x86_64-linux-gnu/libGLdispatch.so.0 \ + /lib64/ld-linux-x86-64.so.2 + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o: + +/usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o: + +CMakeFiles/engine_demo.dir/src/Camera.cpp.o: + +CMakeFiles/engine_demo.dir/src/Engine.cpp.o: + +CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o: + +CMakeFiles/engine_demo.dir/src/Mesh.cpp.o: + +CMakeFiles/engine_demo.dir/src/Shader.cpp.o: + +CMakeFiles/engine_demo.dir/src/main.cpp.o: + +/usr/lib/x86_64-linux-gnu/libglfw.so.3.4: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libdl.a: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libpthread.a: + +/usr/lib/x86_64-linux-gnu/libGLX.so: + +/usr/lib/x86_64-linux-gnu/libOpenGL.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/libstdc++.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libm.so: + +/lib/x86_64-linux-gnu/libm.so.6: + +/lib/x86_64-linux-gnu/libmvec.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libc.so: + +/lib/x86_64-linux-gnu/libc.so.6: + +/usr/lib/x86_64-linux-gnu/libc_nonshared.a: + +/lib64/ld-linux-x86-64.so.2: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/14/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o: + +/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o: + +/lib/x86_64-linux-gnu/libGLdispatch.so.0: + +/lib64/ld-linux-x86-64.so.2: diff --git a/build/CMakeFiles/engine_demo.dir/link.txt b/build/CMakeFiles/engine_demo.dir/link.txt new file mode 100644 index 0000000..5ab4863 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG -Wl,--dependency-file=CMakeFiles/engine_demo.dir/link.d CMakeFiles/engine_demo.dir/src/Camera.cpp.o CMakeFiles/engine_demo.dir/src/Engine.cpp.o CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o CMakeFiles/engine_demo.dir/src/Mesh.cpp.o CMakeFiles/engine_demo.dir/src/Shader.cpp.o CMakeFiles/engine_demo.dir/src/main.cpp.o -o engine_demo /usr/lib/x86_64-linux-gnu/libglfw.so.3.4 -ldl -lpthread /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so diff --git a/build/CMakeFiles/engine_demo.dir/progress.make b/build/CMakeFiles/engine_demo.dir/progress.make new file mode 100644 index 0000000..2f82315 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/progress.make @@ -0,0 +1,8 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 + diff --git a/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..e9cffa347e0cf23f8e825989a7587873c6fe4d75 GIT binary patch literal 4896 zcmbtYUu;v?89xq?WNqqWm$XXPO8CK>ZYFSTNNJ!`YvULj#gNhvVwc-wCis$+#LjGo zW?SWb=bZ2ReSgls@B6NkpGM-ls~irdnu9&dRyl<-HqKY+pdf?H$sS@{+dy1wHtMH& zHrh-Rch^V(cSl`i?h;C%J=0@`;p3ZrPFjp_Vvs#TBFB<&LjTWwz;4e7`55Qpd6()Gm z@1ZY1q|ZU;0_j|Uqif|5PtuUM4)_wmmjoB#+I*SszX7D{A}M`Rj&K|w)K^@ib#FrD zBQiJ-<_`KL^nXJ^Cs$&Hc~YMQ{2A$eNHQqv?{jSl;1bm4NkD1|;w}2|t2`4+L!d$;A1;aY$X5km)-WSMtkeVlD-3eR2Q9aH=uICr@A(DX_O zt;C;8Si5WPi?A`}EB0Eo#dB;lihXv^zqY#;3yemwL)#kB+UYUADab+{p#vT5*lBEJ zxfiE0qy1FBSC5}M;!Vi?tJp2JYVpxqWnOH@af`>iu~9slj)*EAs^hMoG~m8?W53tW zb;KTms(7BCo*?lAy$~;c%99J&aTt-Who2A;?4qmD!yc^tPhpUt`*{#pYXfi8y(FOU zoHO?D;>W!4fH%nNr+NK{{LvCmoa5SEoRBxhy)OR9U4DA90~c8E9uOPn8enW#Y}19~ z!1JqKUEI0*i1&G@zUr-0XM`2xfa9abG-1j$bNyRfqeE%5w!5_fS}k53dn$Nw%Q#fx zbAI~#O>?8gFSs_x>rX?lz!O*a#zTGx;6$d>riEJ$)BPNjcm_?|g@FW+J_Gd)lNlqe#<|u{EfI#-ZO@y)lNe>VDBocO! zvUpK=5{Z&H3s9ssWsKk!u*ezMbS+Y5O_KrnNnQ|ED4FC2{Te#uHhEa0{dan3?aMS= zr(v0fa~SkR?48bWmJo5)ZZDCa0s9AKD%GT`giyUhx+5DwAWPu{N4N>`=d?c@p?-$+ z{@TJf)(|oUPF-X2UW9kv2H?)t!eW`Y5bvB2NCS{1vX~P}xNbaM;*OAMgyYT=e}g(M z*WK2HA=^An@5R`gZ#?#%VcdF_v9XYem}4az(i2v_2QIz!%$sk#^B($h5Iy(1U(f6` z3myT}|y6 zK8RFZM66*BNFBn&R}b?Z3x>~-Xyfuj+5j#gu^7!Er)#9DYPYl2^jna!jdCWxCnf!i zoawXr8%Y<*?=Gk7RMjqL!|UrpPR}pahn(8ThNyGQvF>GuQv(!oHb7;UT4O=lUYC24 z>^CM7uV;6^{)Pa+x;1_oh=gRKD&A+}7TgALZ&tyh68Bg^(2ong+J-Xbk@$L>MEqD_ z)eKj7U;Ccms+qa3Rne0Yr@OVbCc#uQ_3lcxQ{wb?))o{@^-3%#*=~t@6d>ogm^ZA% zi4yMz@v!ASRZI<3z(*w>#7s@a+aExapD}^rcba@(dT+x0Ri;419msp=_B#+7up|8w zQeVZQN8;lWSMhjM;#VauViJx{0$R2bnJ(4$!cb zhHW%7(eM-v+i7^3hGrT9elZI5fY1*JgB`5<#eIRmV1Fu;E~IjOLj&8*1;Se+$1BPL zm1TiIHnTT7lux(hQb!|(QOQTZFZG^JW&Vp=b2ii7lgsw^M+`QYeWjwir*i3hx=?vr zPaD~up?q5=@KTi3e8fd6=3`jx$@LauKZd!x2ajEqru5dE*O&8BK7;q>GR z*FaMvoT`b!RV^i)s)NGKyfXD`EO-huHPWZrp!9!FAR6J{LRa_)h(BtCKY*_AW&+S? zdJtXVL5b7e=?@o$@3rVt?NNBbg46F?g^yTp>;3%Jf?NH(ZNaU6?pkoC#lLz0+UH{y zyjDI8nOX1Q9f_0vw=McND&TLCBAVULlKd19PJc40^Ljv2Bb>TwX8m2ogHoXCmC{%B zO_y?otNJ!=0J^4ZaMQW8p?dr)645Twq&twZ}Uvyu`mV6=Aa|~MKDc##`V(5R*{vr(lZ0wcfv%iVfO? z7|j|<^+egL_g`ymGWk-jukw+?iSFEPPd@E$4~YGWiZ$B1wgcN(=7!E%_L}^Emip~2 JoMEur{|8q$DJ=j1 literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d b/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d new file mode 100644 index 0000000..03652fa --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/src/Camera.cpp.o.d @@ -0,0 +1,242 @@ +CMakeFiles/engine_demo.dir/src/Camera.cpp.o: \ + /home/ben/Desktop/engine/src/Camera.cpp /usr/include/stdc-predef.h \ + /home/ben/Desktop/engine/include/Camera.hpp /usr/include/glm/glm.hpp \ + /usr/include/glm/detail/_fixes.hpp /usr/include/c++/14/cmath \ + /usr/include/c++/14/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/cpu_defines.h \ + /usr/include/c++/14/pstl/pstl_config.h \ + /usr/include/c++/14/bits/cpp_type_traits.h \ + /usr/include/c++/14/bits/version.h /usr/include/c++/14/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/14/bits/std_abs.h /usr/include/stdlib.h \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/c++/14/bits/specfun.h \ + /usr/include/c++/14/bits/stl_algobase.h \ + /usr/include/c++/14/bits/functexcept.h \ + /usr/include/c++/14/bits/exception_defines.h \ + /usr/include/c++/14/ext/numeric_traits.h \ + /usr/include/c++/14/bits/stl_pair.h /usr/include/c++/14/type_traits \ + /usr/include/c++/14/bits/move.h /usr/include/c++/14/bits/utility.h \ + /usr/include/c++/14/bits/stl_iterator_base_types.h \ + /usr/include/c++/14/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/14/bits/concept_check.h \ + /usr/include/c++/14/debug/assertions.h \ + /usr/include/c++/14/bits/stl_iterator.h \ + /usr/include/c++/14/bits/ptr_traits.h /usr/include/c++/14/debug/debug.h \ + /usr/include/c++/14/bits/predefined_ops.h /usr/include/c++/14/bit \ + /usr/include/c++/14/concepts /usr/include/c++/14/limits \ + /usr/include/c++/14/tr1/gamma.tcc \ + /usr/include/c++/14/tr1/special_function_util.h \ + /usr/include/c++/14/tr1/bessel_function.tcc \ + /usr/include/c++/14/tr1/beta_function.tcc \ + /usr/include/c++/14/tr1/ell_integral.tcc \ + /usr/include/c++/14/tr1/exp_integral.tcc \ + /usr/include/c++/14/tr1/hypergeometric.tcc \ + /usr/include/c++/14/tr1/legendre_function.tcc \ + /usr/include/c++/14/tr1/modified_bessel_func.tcc \ + /usr/include/c++/14/tr1/poly_hermite.tcc \ + /usr/include/c++/14/tr1/poly_laguerre.tcc \ + /usr/include/c++/14/tr1/riemann_zeta.tcc \ + /usr/include/glm/detail/setup.hpp /usr/include/c++/14/cassert \ + /usr/include/assert.h /usr/include/c++/14/cstddef \ + /usr/include/glm/simd/platform.h /usr/include/c++/14/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/14/climits \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/14/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/float.h \ + /usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \ + /usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \ + /usr/include/glm/ext/vector_bool2.hpp \ + /usr/include/glm/detail/type_vec2.hpp \ + /usr/include/glm/detail/type_vec2.inl \ + /usr/include/glm/detail/compute_vector_relational.hpp \ + /usr/include/glm/ext/vector_bool2_precision.hpp \ + /usr/include/glm/ext/vector_float2.hpp \ + /usr/include/glm/ext/vector_float2_precision.hpp \ + /usr/include/glm/ext/vector_double2.hpp \ + /usr/include/glm/ext/vector_double2_precision.hpp \ + /usr/include/glm/ext/vector_int2.hpp \ + /usr/include/glm/ext/vector_int2_sized.hpp \ + /usr/include/glm/ext/scalar_int_sized.hpp \ + /usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \ + /usr/include/glm/ext/vector_uint2_sized.hpp \ + /usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \ + /usr/include/glm/ext/vector_bool3.hpp \ + /usr/include/glm/detail/type_vec3.hpp \ + /usr/include/glm/detail/type_vec3.inl \ + /usr/include/glm/ext/vector_bool3_precision.hpp \ + /usr/include/glm/ext/vector_float3.hpp \ + /usr/include/glm/ext/vector_float3_precision.hpp \ + /usr/include/glm/ext/vector_double3.hpp \ + /usr/include/glm/ext/vector_double3_precision.hpp \ + /usr/include/glm/ext/vector_int3.hpp \ + /usr/include/glm/ext/vector_int3_sized.hpp \ + /usr/include/glm/ext/vector_uint3.hpp \ + /usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \ + /usr/include/glm/ext/vector_bool4.hpp \ + /usr/include/glm/detail/type_vec4.hpp \ + /usr/include/glm/detail/type_vec4.inl \ + /usr/include/glm/ext/vector_bool4_precision.hpp \ + /usr/include/glm/ext/vector_float4.hpp \ + /usr/include/glm/ext/vector_float4_precision.hpp \ + /usr/include/glm/ext/vector_double4.hpp \ + /usr/include/glm/ext/vector_double4_precision.hpp \ + /usr/include/glm/ext/vector_int4.hpp \ + /usr/include/glm/ext/vector_int4_sized.hpp \ + /usr/include/glm/ext/vector_uint4.hpp \ + /usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \ + /usr/include/glm/ext/matrix_double2x2.hpp \ + /usr/include/glm/detail/type_mat2x2.hpp \ + /usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \ + /usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \ + /usr/include/glm/detail/type_mat2x3.hpp \ + /usr/include/glm/detail/type_mat2x3.inl \ + /usr/include/glm/ext/matrix_double2x3_precision.hpp \ + /usr/include/glm/ext/matrix_float2x3.hpp \ + /usr/include/glm/ext/matrix_float2x3_precision.hpp \ + /usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \ + /usr/include/glm/detail/type_mat2x4.hpp \ + /usr/include/glm/detail/type_mat2x4.inl \ + /usr/include/glm/ext/matrix_double2x4_precision.hpp \ + /usr/include/glm/ext/matrix_float2x4.hpp \ + /usr/include/glm/ext/matrix_float2x4_precision.hpp \ + /usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \ + /usr/include/glm/detail/type_mat3x2.hpp \ + /usr/include/glm/detail/type_mat3x2.inl \ + /usr/include/glm/ext/matrix_double3x2_precision.hpp \ + /usr/include/glm/ext/matrix_float3x2.hpp \ + /usr/include/glm/ext/matrix_float3x2_precision.hpp \ + /usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \ + /usr/include/glm/detail/type_mat3x3.hpp \ + /usr/include/glm/detail/type_mat3x3.inl \ + /usr/include/glm/ext/matrix_double3x3_precision.hpp \ + /usr/include/glm/ext/matrix_float3x3.hpp \ + /usr/include/glm/ext/matrix_float3x3_precision.hpp \ + /usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \ + /usr/include/glm/detail/type_mat3x4.hpp \ + /usr/include/glm/detail/type_mat3x4.inl \ + /usr/include/glm/ext/matrix_double3x4_precision.hpp \ + /usr/include/glm/ext/matrix_float3x4.hpp \ + /usr/include/glm/ext/matrix_float3x4_precision.hpp \ + /usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \ + /usr/include/glm/detail/type_mat4x2.hpp \ + /usr/include/glm/detail/type_mat4x2.inl \ + /usr/include/glm/ext/matrix_double4x2_precision.hpp \ + /usr/include/glm/ext/matrix_float4x2.hpp \ + /usr/include/glm/ext/matrix_float4x2_precision.hpp \ + /usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \ + /usr/include/glm/detail/type_mat4x3.hpp \ + /usr/include/glm/detail/type_mat4x3.inl \ + /usr/include/glm/ext/matrix_double4x3_precision.hpp \ + /usr/include/glm/ext/matrix_float4x3.hpp \ + /usr/include/glm/ext/matrix_float4x3_precision.hpp \ + /usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \ + /usr/include/glm/detail/type_mat4x4.hpp \ + /usr/include/glm/detail/type_mat4x4.inl \ + /usr/include/glm/ext/matrix_double4x4_precision.hpp \ + /usr/include/glm/ext/matrix_float4x4.hpp \ + /usr/include/glm/ext/matrix_float4x4_precision.hpp \ + /usr/include/glm/detail/func_matrix.inl /usr/include/glm/geometric.hpp \ + /usr/include/glm/detail/func_geometric.inl \ + /usr/include/glm/exponential.hpp /usr/include/glm/detail/type_vec1.hpp \ + /usr/include/glm/detail/type_vec1.inl \ + /usr/include/glm/detail/func_exponential.inl \ + /usr/include/glm/vector_relational.hpp \ + /usr/include/glm/detail/func_vector_relational.inl \ + /usr/include/glm/detail/_vectorize.hpp /usr/include/glm/common.hpp \ + /usr/include/glm/detail/func_common.inl \ + /usr/include/glm/detail/compute_common.hpp \ + /usr/include/glm/ext/matrix_double2x2_precision.hpp \ + /usr/include/glm/ext/matrix_float2x2.hpp \ + /usr/include/glm/ext/matrix_float2x2_precision.hpp \ + /usr/include/glm/trigonometric.hpp \ + /usr/include/glm/detail/func_trigonometric.inl \ + /usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \ + /usr/include/glm/detail/type_half.hpp \ + /usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \ + /usr/include/glm/detail/func_integer.inl \ + /usr/include/glm/gtc/matrix_transform.hpp \ + /usr/include/glm/ext/matrix_projection.hpp \ + /usr/include/glm/gtc/constants.hpp \ + /usr/include/glm/ext/scalar_constants.hpp \ + /usr/include/glm/ext/scalar_constants.inl \ + /usr/include/glm/gtc/constants.inl \ + /usr/include/glm/ext/matrix_projection.inl \ + /usr/include/glm/ext/matrix_clip_space.hpp \ + /usr/include/glm/ext/matrix_clip_space.inl \ + /usr/include/glm/ext/matrix_transform.hpp \ + /usr/include/glm/ext/matrix_transform.inl \ + /usr/include/glm/gtc/matrix_transform.inl /usr/include/c++/14/algorithm \ + /usr/include/c++/14/bits/stl_algo.h \ + /usr/include/c++/14/bits/algorithmfwd.h \ + /usr/include/c++/14/initializer_list /usr/include/c++/14/bits/stl_heap.h \ + /usr/include/c++/14/bits/uniform_int_dist.h \ + /usr/include/c++/14/bits/stl_tempbuf.h /usr/include/c++/14/new \ + /usr/include/c++/14/bits/exception.h \ + /usr/include/c++/14/bits/stl_construct.h /usr/include/c++/14/cstdlib \ + /usr/include/c++/14/pstl/glue_algorithm_defs.h \ + /usr/include/c++/14/pstl/execution_defs.h diff --git a/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o b/build/CMakeFiles/engine_demo.dir/src/Engine.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a6c40bd5a756b994608942179b2189dee477c7ee GIT binary patch literal 7456 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 literal 0 HcmV?d00001 diff --git a/build/CMakeFiles/engine_demo.dir/src/main.cpp.o.d b/build/CMakeFiles/engine_demo.dir/src/main.cpp.o.d new file mode 100644 index 0000000..e98a2d1 --- /dev/null +++ b/build/CMakeFiles/engine_demo.dir/src/main.cpp.o.d @@ -0,0 +1,315 @@ +CMakeFiles/engine_demo.dir/src/main.cpp.o: \ + /home/ben/Desktop/engine/src/main.cpp /usr/include/stdc-predef.h \ + /home/ben/Desktop/engine/include/Engine.hpp \ + /home/ben/Desktop/engine/include/Camera.hpp /usr/include/glm/glm.hpp \ + /usr/include/glm/detail/_fixes.hpp /usr/include/c++/14/cmath \ + /usr/include/c++/14/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/cpu_defines.h \ + /usr/include/c++/14/pstl/pstl_config.h \ + /usr/include/c++/14/bits/cpp_type_traits.h \ + /usr/include/c++/14/bits/version.h /usr/include/c++/14/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-macros.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/14/bits/std_abs.h /usr/include/stdlib.h \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/c++/14/bits/specfun.h \ + /usr/include/c++/14/bits/stl_algobase.h \ + /usr/include/c++/14/bits/functexcept.h \ + /usr/include/c++/14/bits/exception_defines.h \ + /usr/include/c++/14/ext/numeric_traits.h \ + /usr/include/c++/14/bits/stl_pair.h /usr/include/c++/14/type_traits \ + /usr/include/c++/14/bits/move.h /usr/include/c++/14/bits/utility.h \ + /usr/include/c++/14/bits/stl_iterator_base_types.h \ + /usr/include/c++/14/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/14/bits/concept_check.h \ + /usr/include/c++/14/debug/assertions.h \ + /usr/include/c++/14/bits/stl_iterator.h \ + /usr/include/c++/14/bits/ptr_traits.h /usr/include/c++/14/debug/debug.h \ + /usr/include/c++/14/bits/predefined_ops.h /usr/include/c++/14/bit \ + /usr/include/c++/14/concepts /usr/include/c++/14/limits \ + /usr/include/c++/14/tr1/gamma.tcc \ + /usr/include/c++/14/tr1/special_function_util.h \ + /usr/include/c++/14/tr1/bessel_function.tcc \ + /usr/include/c++/14/tr1/beta_function.tcc \ + /usr/include/c++/14/tr1/ell_integral.tcc \ + /usr/include/c++/14/tr1/exp_integral.tcc \ + /usr/include/c++/14/tr1/hypergeometric.tcc \ + /usr/include/c++/14/tr1/legendre_function.tcc \ + /usr/include/c++/14/tr1/modified_bessel_func.tcc \ + /usr/include/c++/14/tr1/poly_hermite.tcc \ + /usr/include/c++/14/tr1/poly_laguerre.tcc \ + /usr/include/c++/14/tr1/riemann_zeta.tcc \ + /usr/include/glm/detail/setup.hpp /usr/include/c++/14/cassert \ + /usr/include/assert.h /usr/include/c++/14/cstddef \ + /usr/include/glm/simd/platform.h /usr/include/c++/14/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/14/climits \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/14/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/14/include/float.h \ + /usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \ + /usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \ + /usr/include/glm/ext/vector_bool2.hpp \ + /usr/include/glm/detail/type_vec2.hpp \ + /usr/include/glm/detail/type_vec2.inl \ + /usr/include/glm/detail/compute_vector_relational.hpp \ + /usr/include/glm/ext/vector_bool2_precision.hpp \ + /usr/include/glm/ext/vector_float2.hpp \ + /usr/include/glm/ext/vector_float2_precision.hpp \ + /usr/include/glm/ext/vector_double2.hpp \ + /usr/include/glm/ext/vector_double2_precision.hpp \ + /usr/include/glm/ext/vector_int2.hpp \ + /usr/include/glm/ext/vector_int2_sized.hpp \ + /usr/include/glm/ext/scalar_int_sized.hpp \ + /usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \ + /usr/include/glm/ext/vector_uint2_sized.hpp \ + /usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \ + /usr/include/glm/ext/vector_bool3.hpp \ + /usr/include/glm/detail/type_vec3.hpp \ + /usr/include/glm/detail/type_vec3.inl \ + /usr/include/glm/ext/vector_bool3_precision.hpp \ + /usr/include/glm/ext/vector_float3.hpp \ + /usr/include/glm/ext/vector_float3_precision.hpp \ + /usr/include/glm/ext/vector_double3.hpp \ + /usr/include/glm/ext/vector_double3_precision.hpp \ + /usr/include/glm/ext/vector_int3.hpp \ + /usr/include/glm/ext/vector_int3_sized.hpp \ + /usr/include/glm/ext/vector_uint3.hpp \ + /usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \ + /usr/include/glm/ext/vector_bool4.hpp \ + /usr/include/glm/detail/type_vec4.hpp \ + /usr/include/glm/detail/type_vec4.inl \ + /usr/include/glm/ext/vector_bool4_precision.hpp \ + /usr/include/glm/ext/vector_float4.hpp \ + /usr/include/glm/ext/vector_float4_precision.hpp \ + /usr/include/glm/ext/vector_double4.hpp \ + /usr/include/glm/ext/vector_double4_precision.hpp \ + /usr/include/glm/ext/vector_int4.hpp \ + /usr/include/glm/ext/vector_int4_sized.hpp \ + /usr/include/glm/ext/vector_uint4.hpp \ + /usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \ + /usr/include/glm/ext/matrix_double2x2.hpp \ + /usr/include/glm/detail/type_mat2x2.hpp \ + /usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \ + /usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \ + /usr/include/glm/detail/type_mat2x3.hpp \ + /usr/include/glm/detail/type_mat2x3.inl \ + /usr/include/glm/ext/matrix_double2x3_precision.hpp \ + /usr/include/glm/ext/matrix_float2x3.hpp \ + /usr/include/glm/ext/matrix_float2x3_precision.hpp \ + /usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \ + /usr/include/glm/detail/type_mat2x4.hpp \ + /usr/include/glm/detail/type_mat2x4.inl \ + /usr/include/glm/ext/matrix_double2x4_precision.hpp \ + /usr/include/glm/ext/matrix_float2x4.hpp \ + /usr/include/glm/ext/matrix_float2x4_precision.hpp \ + /usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \ + /usr/include/glm/detail/type_mat3x2.hpp \ + /usr/include/glm/detail/type_mat3x2.inl \ + /usr/include/glm/ext/matrix_double3x2_precision.hpp \ + /usr/include/glm/ext/matrix_float3x2.hpp \ + /usr/include/glm/ext/matrix_float3x2_precision.hpp \ + /usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \ + /usr/include/glm/detail/type_mat3x3.hpp \ + /usr/include/glm/detail/type_mat3x3.inl \ + /usr/include/glm/ext/matrix_double3x3_precision.hpp \ + /usr/include/glm/ext/matrix_float3x3.hpp \ + /usr/include/glm/ext/matrix_float3x3_precision.hpp \ + /usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \ + /usr/include/glm/detail/type_mat3x4.hpp \ + /usr/include/glm/detail/type_mat3x4.inl \ + /usr/include/glm/ext/matrix_double3x4_precision.hpp \ + /usr/include/glm/ext/matrix_float3x4.hpp \ + /usr/include/glm/ext/matrix_float3x4_precision.hpp \ + /usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \ + /usr/include/glm/detail/type_mat4x2.hpp \ + /usr/include/glm/detail/type_mat4x2.inl \ + /usr/include/glm/ext/matrix_double4x2_precision.hpp \ + /usr/include/glm/ext/matrix_float4x2.hpp \ + /usr/include/glm/ext/matrix_float4x2_precision.hpp \ + /usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \ + /usr/include/glm/detail/type_mat4x3.hpp \ + /usr/include/glm/detail/type_mat4x3.inl \ + /usr/include/glm/ext/matrix_double4x3_precision.hpp \ + /usr/include/glm/ext/matrix_float4x3.hpp \ + /usr/include/glm/ext/matrix_float4x3_precision.hpp \ + /usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \ + /usr/include/glm/detail/type_mat4x4.hpp \ + /usr/include/glm/detail/type_mat4x4.inl \ + /usr/include/glm/ext/matrix_double4x4_precision.hpp \ + /usr/include/glm/ext/matrix_float4x4.hpp \ + /usr/include/glm/ext/matrix_float4x4_precision.hpp \ + /usr/include/glm/detail/func_matrix.inl /usr/include/glm/geometric.hpp \ + /usr/include/glm/detail/func_geometric.inl \ + /usr/include/glm/exponential.hpp /usr/include/glm/detail/type_vec1.hpp \ + /usr/include/glm/detail/type_vec1.inl \ + /usr/include/glm/detail/func_exponential.inl \ + /usr/include/glm/vector_relational.hpp \ + /usr/include/glm/detail/func_vector_relational.inl \ + /usr/include/glm/detail/_vectorize.hpp /usr/include/glm/common.hpp \ + /usr/include/glm/detail/func_common.inl \ + /usr/include/glm/detail/compute_common.hpp \ + /usr/include/glm/ext/matrix_double2x2_precision.hpp \ + /usr/include/glm/ext/matrix_float2x2.hpp \ + /usr/include/glm/ext/matrix_float2x2_precision.hpp \ + /usr/include/glm/trigonometric.hpp \ + /usr/include/glm/detail/func_trigonometric.inl \ + /usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \ + /usr/include/glm/detail/type_half.hpp \ + /usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \ + /usr/include/glm/detail/func_integer.inl /usr/include/c++/14/functional \ + /usr/include/c++/14/bits/stl_function.h \ + /usr/include/c++/14/backward/binders.h /usr/include/c++/14/tuple \ + /usr/include/c++/14/bits/uses_allocator.h \ + /usr/include/c++/14/bits/invoke.h \ + /usr/include/c++/14/bits/functional_hash.h \ + /usr/include/c++/14/bits/hash_bytes.h /usr/include/c++/14/bits/refwrap.h \ + /usr/include/c++/14/bits/std_function.h /usr/include/c++/14/new \ + /usr/include/c++/14/bits/exception.h /usr/include/c++/14/typeinfo \ + /usr/include/c++/14/unordered_map /usr/include/c++/14/initializer_list \ + /usr/include/c++/14/bits/unordered_map.h \ + /usr/include/c++/14/bits/hashtable.h \ + /usr/include/c++/14/bits/hashtable_policy.h \ + /usr/include/c++/14/ext/aligned_buffer.h \ + /usr/include/c++/14/ext/alloc_traits.h \ + /usr/include/c++/14/bits/alloc_traits.h \ + /usr/include/c++/14/bits/stl_construct.h \ + /usr/include/c++/14/bits/memoryfwd.h \ + /usr/include/c++/14/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/c++allocator.h \ + /usr/include/c++/14/bits/new_allocator.h \ + /usr/include/c++/14/bits/enable_special_members.h \ + /usr/include/c++/14/bits/node_handle.h \ + /usr/include/c++/14/bits/range_access.h \ + /usr/include/c++/14/bits/erase_if.h \ + /usr/include/c++/14/bits/memory_resource.h \ + /usr/include/c++/14/bits/uses_allocator_args.h \ + /usr/include/c++/14/vector /usr/include/c++/14/bits/stl_uninitialized.h \ + /usr/include/c++/14/bits/stl_vector.h \ + /usr/include/c++/14/bits/stl_bvector.h \ + /usr/include/c++/14/bits/vector.tcc /usr/include/c++/14/array \ + /usr/include/c++/14/compare \ + /home/ben/Desktop/engine/include/GLFunctions.hpp /usr/include/GL/gl.h \ + /usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \ + /home/ben/Desktop/engine/include/Mesh.hpp \ + /home/ben/Desktop/engine/include/Shader.hpp /usr/include/c++/14/string \ + /usr/include/c++/14/bits/stringfwd.h \ + /usr/include/c++/14/bits/char_traits.h \ + /usr/include/c++/14/bits/postypes.h /usr/include/c++/14/cwchar \ + /usr/include/wchar.h /usr/lib/gcc/x86_64-linux-gnu/14/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/c++/14/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/14/bits/c++locale.h \ + /usr/include/c++/14/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/14/iosfwd \ + /usr/include/c++/14/cctype /usr/include/ctype.h \ + /usr/include/c++/14/bits/ostream_insert.h \ + /usr/include/c++/14/bits/cxxabi_forced.h \ + /usr/include/c++/14/bits/basic_string.h /usr/include/c++/14/string_view \ + /usr/include/c++/14/bits/string_view.tcc \ + /usr/include/c++/14/ext/string_conversions.h /usr/include/c++/14/cstdlib \ + /usr/include/c++/14/cstdio /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h /usr/include/c++/14/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/lib/linux/uapi/x86/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/14/bits/charconv.h \ + /usr/include/c++/14/bits/basic_string.tcc \ + /usr/include/glm/gtc/matrix_transform.hpp \ + /usr/include/glm/ext/matrix_projection.hpp \ + /usr/include/glm/gtc/constants.hpp \ + /usr/include/glm/ext/scalar_constants.hpp \ + /usr/include/glm/ext/scalar_constants.inl \ + /usr/include/glm/gtc/constants.inl \ + /usr/include/glm/ext/matrix_projection.inl \ + /usr/include/glm/ext/matrix_clip_space.hpp \ + /usr/include/glm/ext/matrix_clip_space.inl \ + /usr/include/glm/ext/matrix_transform.hpp \ + /usr/include/glm/ext/matrix_transform.inl \ + /usr/include/glm/gtc/matrix_transform.inl \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/lib/linux/uapi/x86/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/lib/linux/uapi/x86/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h /usr/lib/linux/uapi/x86/asm/posix_types.h \ + /usr/lib/linux/uapi/x86/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +7 diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..ad5a156 --- /dev/null +++ b/build/Makefile @@ -0,0 +1,316 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ben/Desktop/engine + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ben/Desktop/engine/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ben/Desktop/engine/build/CMakeFiles /home/ben/Desktop/engine/build//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ben/Desktop/engine/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named engine_demo + +# Build rule for target. +engine_demo: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 engine_demo +.PHONY : engine_demo + +# fast build rule for target. +engine_demo/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/build +.PHONY : engine_demo/fast + +src/Camera.o: src/Camera.cpp.o +.PHONY : src/Camera.o + +# target to build an object file +src/Camera.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Camera.cpp.o +.PHONY : src/Camera.cpp.o + +src/Camera.i: src/Camera.cpp.i +.PHONY : src/Camera.i + +# target to preprocess a source file +src/Camera.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Camera.cpp.i +.PHONY : src/Camera.cpp.i + +src/Camera.s: src/Camera.cpp.s +.PHONY : src/Camera.s + +# target to generate assembly for a file +src/Camera.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Camera.cpp.s +.PHONY : src/Camera.cpp.s + +src/Engine.o: src/Engine.cpp.o +.PHONY : src/Engine.o + +# target to build an object file +src/Engine.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Engine.cpp.o +.PHONY : src/Engine.cpp.o + +src/Engine.i: src/Engine.cpp.i +.PHONY : src/Engine.i + +# target to preprocess a source file +src/Engine.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Engine.cpp.i +.PHONY : src/Engine.cpp.i + +src/Engine.s: src/Engine.cpp.s +.PHONY : src/Engine.s + +# target to generate assembly for a file +src/Engine.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Engine.cpp.s +.PHONY : src/Engine.cpp.s + +src/GLFunctions.o: src/GLFunctions.cpp.o +.PHONY : src/GLFunctions.o + +# target to build an object file +src/GLFunctions.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o +.PHONY : src/GLFunctions.cpp.o + +src/GLFunctions.i: src/GLFunctions.cpp.i +.PHONY : src/GLFunctions.i + +# target to preprocess a source file +src/GLFunctions.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.i +.PHONY : src/GLFunctions.cpp.i + +src/GLFunctions.s: src/GLFunctions.cpp.s +.PHONY : src/GLFunctions.s + +# target to generate assembly for a file +src/GLFunctions.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.s +.PHONY : src/GLFunctions.cpp.s + +src/Mesh.o: src/Mesh.cpp.o +.PHONY : src/Mesh.o + +# target to build an object file +src/Mesh.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Mesh.cpp.o +.PHONY : src/Mesh.cpp.o + +src/Mesh.i: src/Mesh.cpp.i +.PHONY : src/Mesh.i + +# target to preprocess a source file +src/Mesh.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Mesh.cpp.i +.PHONY : src/Mesh.cpp.i + +src/Mesh.s: src/Mesh.cpp.s +.PHONY : src/Mesh.s + +# target to generate assembly for a file +src/Mesh.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Mesh.cpp.s +.PHONY : src/Mesh.cpp.s + +src/Shader.o: src/Shader.cpp.o +.PHONY : src/Shader.o + +# target to build an object file +src/Shader.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Shader.cpp.o +.PHONY : src/Shader.cpp.o + +src/Shader.i: src/Shader.cpp.i +.PHONY : src/Shader.i + +# target to preprocess a source file +src/Shader.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Shader.cpp.i +.PHONY : src/Shader.cpp.i + +src/Shader.s: src/Shader.cpp.s +.PHONY : src/Shader.s + +# target to generate assembly for a file +src/Shader.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/Shader.cpp.s +.PHONY : src/Shader.cpp.s + +src/main.o: src/main.cpp.o +.PHONY : src/main.o + +# target to build an object file +src/main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/main.cpp.o +.PHONY : src/main.cpp.o + +src/main.i: src/main.cpp.i +.PHONY : src/main.i + +# target to preprocess a source file +src/main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/main.cpp.i +.PHONY : src/main.cpp.i + +src/main.s: src/main.cpp.s +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/engine_demo.dir/build.make CMakeFiles/engine_demo.dir/src/main.cpp.s +.PHONY : src/main.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... engine_demo" + @echo "... src/Camera.o" + @echo "... src/Camera.i" + @echo "... src/Camera.s" + @echo "... src/Engine.o" + @echo "... src/Engine.i" + @echo "... src/Engine.s" + @echo "... src/GLFunctions.o" + @echo "... src/GLFunctions.i" + @echo "... src/GLFunctions.s" + @echo "... src/Mesh.o" + @echo "... src/Mesh.i" + @echo "... src/Mesh.s" + @echo "... src/Shader.o" + @echo "... src/Shader.i" + @echo "... src/Shader.s" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/assets/shaders/basic.frag b/build/assets/shaders/basic.frag new file mode 100644 index 0000000..ce68feb --- /dev/null +++ b/build/assets/shaders/basic.frag @@ -0,0 +1,24 @@ +#version 330 core +in vec3 vNormal; +in vec3 vWorldPos; + +uniform vec3 uBaseColor; +uniform vec3 uLightDir; +uniform vec3 uViewPos; + +out vec4 fragColor; + +void main() { + vec3 normal = normalize(vNormal); + vec3 lightDir = normalize(-uLightDir); + + float diffuse = max(dot(normal, lightDir), 0.0); + float ambient = 0.12; + + vec3 viewDir = normalize(uViewPos - vWorldPos); + vec3 halfway = normalize(lightDir + viewDir); + float specular = pow(max(dot(normal, halfway), 0.0), 32.0) * 0.3; + + vec3 color = uBaseColor * (ambient + diffuse) + vec3(specular); + fragColor = vec4(color, 1.0); +} diff --git a/build/assets/shaders/basic.vert b/build/assets/shaders/basic.vert new file mode 100644 index 0000000..b81bfed --- /dev/null +++ b/build/assets/shaders/basic.vert @@ -0,0 +1,18 @@ +#version 330 core +layout(location = 0) in vec3 aPosition; +layout(location = 1) in vec3 aNormal; +layout(location = 2) in vec2 aUV; + +uniform mat4 uModel; +uniform mat4 uView; +uniform mat4 uProjection; + +out vec3 vNormal; +out vec3 vWorldPos; + +void main() { + vec4 worldPos = uModel * vec4(aPosition, 1.0); + vWorldPos = worldPos.xyz; + vNormal = mat3(transpose(inverse(uModel))) * aNormal; + gl_Position = uProjection * uView * worldPos; +} diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake new file mode 100644 index 0000000..cc06bee --- /dev/null +++ b/build/cmake_install.cmake @@ -0,0 +1,66 @@ +# Install script for directory: /home/ben/Desktop/engine + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/ben/Desktop/engine/build/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() +if(CMAKE_INSTALL_COMPONENT) + if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") + else() + string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") + unset(CMAKE_INST_COMP_HASH) + endif() +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/ben/Desktop/engine/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/build/compile_commands.json b/build/compile_commands.json new file mode 100644 index 0000000..43eeb27 --- /dev/null +++ b/build/compile_commands.json @@ -0,0 +1,38 @@ +[ +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/Camera.cpp.o -c /home/ben/Desktop/engine/src/Camera.cpp", + "file": "/home/ben/Desktop/engine/src/Camera.cpp", + "output": "CMakeFiles/engine_demo.dir/src/Camera.cpp.o" +}, +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/Engine.cpp.o -c /home/ben/Desktop/engine/src/Engine.cpp", + "file": "/home/ben/Desktop/engine/src/Engine.cpp", + "output": "CMakeFiles/engine_demo.dir/src/Engine.cpp.o" +}, +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o -c /home/ben/Desktop/engine/src/GLFunctions.cpp", + "file": "/home/ben/Desktop/engine/src/GLFunctions.cpp", + "output": "CMakeFiles/engine_demo.dir/src/GLFunctions.cpp.o" +}, +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/Mesh.cpp.o -c /home/ben/Desktop/engine/src/Mesh.cpp", + "file": "/home/ben/Desktop/engine/src/Mesh.cpp", + "output": "CMakeFiles/engine_demo.dir/src/Mesh.cpp.o" +}, +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/Shader.cpp.o -c /home/ben/Desktop/engine/src/Shader.cpp", + "file": "/home/ben/Desktop/engine/src/Shader.cpp", + "output": "CMakeFiles/engine_demo.dir/src/Shader.cpp.o" +}, +{ + "directory": "/home/ben/Desktop/engine/build", + "command": "/usr/bin/c++ -DENGINE_ASSET_DIR=\\\"/home/ben/Desktop/engine/assets\\\" -I/home/ben/Desktop/engine/include -O3 -DNDEBUG -std=gnu++17 -o CMakeFiles/engine_demo.dir/src/main.cpp.o -c /home/ben/Desktop/engine/src/main.cpp", + "file": "/home/ben/Desktop/engine/src/main.cpp", + "output": "CMakeFiles/engine_demo.dir/src/main.cpp.o" +} +] \ No newline at end of file diff --git a/build/engine_demo b/build/engine_demo new file mode 100755 index 0000000000000000000000000000000000000000..c0ce7c07e5103f6c4b7b05a315fe6a0a3bb0bf1b GIT binary patch literal 53048 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 + +namespace planetarium { + +// ----------------------------------------------------------------------- +// Camera +// +// A custom orbital ("arcball") camera. It orbits a focus point at a +// controllable yaw/pitch/distance, with all parameters critically-damped +// toward their target values every frame so camera moves - including +// "focus on selected planet" - feel like smooth, cinematic transitions +// rather than instant snaps. +// ----------------------------------------------------------------------- +class Camera { +public: + Camera(); + + // Input handlers - called directly from Engine's GLFW callbacks. + void onMouseDrag(float deltaX, float deltaY); + void onMousePan(float deltaX, float deltaY); + void onScroll(float deltaY); + void reset(); + + // Smoothly re-targets the orbit focus to a world-space point (e.g. a + // selected planet's position) and optionally suggests a nice viewing + // distance for that object's scale. + void focusOn(const glm::vec3& worldPoint, float suggestedDistance); + + // Advances the smoothing/interpolation. Must be called once per frame + // with the frame's delta time in seconds. + void update(float deltaTime); + + glm::mat4 viewMatrix() const; + glm::vec3 position() const { return currentPosition_; } + glm::vec3 focusPoint() const { return currentFocus_; } + + float distance() const { return currentDistance_; } + +private: + // Target (goal) state, set instantly by input; current state chases + // it every update() call using exponential smoothing. + float targetYaw_ = -0.6f; + float targetPitch_ = 0.45f; + float targetDistance_ = 18.0f; + glm::vec3 targetFocus_{0.0f}; + + float currentYaw_ = -0.6f; + float currentPitch_ = 0.45f; + float currentDistance_ = 18.0f; + glm::vec3 currentFocus_{0.0f}; + glm::vec3 currentPosition_{0.0f}; + + static constexpr float kMinPitch = -1.45f; + static constexpr float kMaxPitch = 1.45f; + static constexpr float kMinDistance = 2.0f; + static constexpr float kMaxDistance = 400.0f; + static constexpr float kSmoothingSpeed = 6.0f; +}; + +} // namespace planetarium diff --git a/include/Engine.hpp b/include/Engine.hpp new file mode 100644 index 0000000..bfc2cb6 --- /dev/null +++ b/include/Engine.hpp @@ -0,0 +1,77 @@ +#pragma once + +#include "Camera.hpp" + +#include + +struct GLFWwindow; + +namespace planetarium { + +// ----------------------------------------------------------------------- +// Engine +// +// Top-level owner of the GLFW window/context, the frame loop, and input +// routing between raw GLFW callbacks and the Camera. This is the only +// class that knows about GLFW directly. +// +// This is the reusable "engine" half of the original Planetarium project +// with every game-specific piece (SolarSystem, Planet, UI, picking) +// removed. Hook your own logic in via setUpdateCallback/setRenderCallback: +// +// Engine engine; +// engine.initialize(1600, 900, "My App"); +// engine.setUpdateCallback([](float dt) { ... }); +// engine.setRenderCallback([&](int fbWidth, int fbHeight) { ... }); +// engine.run(); +// +// Left-drag orbits the camera, middle-drag pans it, scroll zooms, and R +// resets it - wire up more input in your own update/render callbacks via +// window() if you need it. +// ----------------------------------------------------------------------- +class Engine { +public: + using UpdateCallback = std::function; + using RenderCallback = std::function; + + ~Engine(); + + bool initialize(int width, int height, const char* title); + void run(); + + void setUpdateCallback(UpdateCallback cb) { updateCallback_ = std::move(cb); } + void setRenderCallback(RenderCallback cb) { renderCallback_ = std::move(cb); } + + Camera& camera() { return camera_; } + const Camera& camera() const { return camera_; } + GLFWwindow* window() const { return window_; } + +private: + void update(float deltaTime); + void render(); + + // GLFW callback trampolines (static -> instance via glfwGetWindowUserPointer). + static void cursorPosCallback(GLFWwindow* window, double x, double y); + static void mouseButtonCallback(GLFWwindow* window, int button, int action, int mods); + static void scrollCallback(GLFWwindow* window, double xOffset, double yOffset); + static void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); + static void framebufferSizeCallback(GLFWwindow* window, int width, int height); + + GLFWwindow* window_ = nullptr; + Camera camera_; + + UpdateCallback updateCallback_; + RenderCallback renderCallback_; + + int framebufferWidth_ = 1600; + int framebufferHeight_ = 900; + + double lastMouseX_ = 0.0; + double lastMouseY_ = 0.0; + bool rotating_ = false; + bool panning_ = false; + + double lastFrameTime_ = 0.0; +}; + +} // namespace planetarium diff --git a/include/GLFunctions.hpp b/include/GLFunctions.hpp new file mode 100644 index 0000000..f0999f1 --- /dev/null +++ b/include/GLFunctions.hpp @@ -0,0 +1,146 @@ +#pragma once + +// ----------------------------------------------------------------------- +// GLFunctions +// +// Linux distributions only ship GL/gl.h with legacy (<=1.1/1.2) function +// declarations; everything from OpenGL 1.5 onward (VAOs/VBOs, GLSL +// shaders, etc.) must be resolved at runtime as function pointers. This +// is a small, self-contained loader for exactly the subset of OpenGL 3.3 +// core functions this project's renderer uses. It is intentionally +// separate from Dear ImGui's own bundled loader (imgui_impl_opengl3_loader.h) +// to avoid the multiple-definition problems that occur when two GL +// loaders are mixed in the same program - see the comment at the top of +// that file for details. +// +// Usage: call planetarium::gl::loadGLFunctions() exactly once, right +// after the GLFW OpenGL context has been made current and before any +// other GL call in the project's own rendering code. +// ----------------------------------------------------------------------- + +#include +#include + +#ifndef GL_ARRAY_BUFFER +#define GL_ARRAY_BUFFER 0x8892 +#endif +#ifndef GL_ELEMENT_ARRAY_BUFFER +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#endif +#ifndef GL_STATIC_DRAW +#define GL_STATIC_DRAW 0x88E4 +#endif +#ifndef GL_DYNAMIC_DRAW +#define GL_DYNAMIC_DRAW 0x88E8 +#endif +#ifndef GL_FRAGMENT_SHADER +#define GL_FRAGMENT_SHADER 0x8B30 +#endif +#ifndef GL_VERTEX_SHADER +#define GL_VERTEX_SHADER 0x8B31 +#endif +#ifndef GL_COMPILE_STATUS +#define GL_COMPILE_STATUS 0x8B81 +#endif +#ifndef GL_LINK_STATUS +#define GL_LINK_STATUS 0x8B82 +#endif +#ifndef GL_TEXTURE0 +#define GL_TEXTURE0 0x84C0 +#endif +#ifndef GL_PROGRAM_POINT_SIZE +#define GL_PROGRAM_POINT_SIZE 0x8642 +#endif +#ifndef GL_CLAMP_TO_EDGE +#define GL_CLAMP_TO_EDGE 0x812F +#endif +#ifndef GL_MULTISAMPLE +#define GL_MULTISAMPLE 0x809D +#endif +#ifndef GL_MAJOR_VERSION +#define GL_MAJOR_VERSION 0x821B +#endif +#ifndef GL_MINOR_VERSION +#define GL_MINOR_VERSION 0x821C +#endif + +typedef char GLchar; +typedef ptrdiff_t GLsizeiptr; +typedef ptrdiff_t GLintptr; + +namespace planetarium::gl { + +using PFNGLGENVERTEXARRAYS = void (*)(GLsizei, GLuint*); +using PFNGLBINDVERTEXARRAY = void (*)(GLuint); +using PFNGLDELETEVERTEXARRAYS = void (*)(GLsizei, const GLuint*); +using PFNGLGENBUFFERS = void (*)(GLsizei, GLuint*); +using PFNGLBINDBUFFER = void (*)(GLenum, GLuint); +using PFNGLBUFFERDATA = void (*)(GLenum, GLsizeiptr, const void*, GLenum); +using PFNGLDELETEBUFFERS = void (*)(GLsizei, const GLuint*); +using PFNGLVERTEXATTRIBPOINTER = void (*)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void*); +using PFNGLENABLEVERTEXATTRIBARRAY = void (*)(GLuint); +using PFNGLDISABLEVERTEXATTRIBARRAY = void (*)(GLuint); + +using PFNGLCREATESHADER = GLuint (*)(GLenum); +using PFNGLSHADERSOURCE = void (*)(GLuint, GLsizei, const GLchar* const*, const GLint*); +using PFNGLCOMPILESHADER = void (*)(GLuint); +using PFNGLGETSHADERIV = void (*)(GLuint, GLenum, GLint*); +using PFNGLGETSHADERINFOLOG = void (*)(GLuint, GLsizei, GLsizei*, GLchar*); +using PFNGLDELETESHADER = void (*)(GLuint); +using PFNGLCREATEPROGRAM = GLuint (*)(); +using PFNGLATTACHSHADER = void (*)(GLuint, GLuint); +using PFNGLLINKPROGRAM = void (*)(GLuint); +using PFNGLGETPROGRAMIV = void (*)(GLuint, GLenum, GLint*); +using PFNGLGETPROGRAMINFOLOG = void (*)(GLuint, GLsizei, GLsizei*, GLchar*); +using PFNGLUSEPROGRAM = void (*)(GLuint); +using PFNGLDELETEPROGRAM = void (*)(GLuint); + +using PFNGLGETUNIFORMLOCATION = GLint (*)(GLuint, const GLchar*); +using PFNGLUNIFORMMATRIX4FV = void (*)(GLint, GLsizei, GLboolean, const GLfloat*); +using PFNGLUNIFORM3FV = void (*)(GLint, GLsizei, const GLfloat*); +using PFNGLUNIFORM4FV = void (*)(GLint, GLsizei, const GLfloat*); +using PFNGLUNIFORM1F = void (*)(GLint, GLfloat); +using PFNGLUNIFORM1I = void (*)(GLint, GLint); +using PFNGLACTIVETEXTURE = void (*)(GLenum); +using PFNGLGENERATEMIPMAP = void (*)(GLenum); + +extern PFNGLGENVERTEXARRAYS glGenVertexArrays; +extern PFNGLBINDVERTEXARRAY glBindVertexArray; +extern PFNGLDELETEVERTEXARRAYS glDeleteVertexArrays; +extern PFNGLGENBUFFERS glGenBuffers; +extern PFNGLBINDBUFFER glBindBuffer; +extern PFNGLBUFFERDATA glBufferData; +extern PFNGLDELETEBUFFERS glDeleteBuffers; +extern PFNGLVERTEXATTRIBPOINTER glVertexAttribPointer; +extern PFNGLENABLEVERTEXATTRIBARRAY glEnableVertexAttribArray; +extern PFNGLDISABLEVERTEXATTRIBARRAY glDisableVertexAttribArray; + +extern PFNGLCREATESHADER glCreateShader; +extern PFNGLSHADERSOURCE glShaderSource; +extern PFNGLCOMPILESHADER glCompileShader; +extern PFNGLGETSHADERIV glGetShaderiv; +extern PFNGLGETSHADERINFOLOG glGetShaderInfoLog; +extern PFNGLDELETESHADER glDeleteShader; +extern PFNGLCREATEPROGRAM glCreateProgram; +extern PFNGLATTACHSHADER glAttachShader; +extern PFNGLLINKPROGRAM glLinkProgram; +extern PFNGLGETPROGRAMIV glGetProgramiv; +extern PFNGLGETPROGRAMINFOLOG glGetProgramInfoLog; +extern PFNGLUSEPROGRAM glUseProgram; +extern PFNGLDELETEPROGRAM glDeleteProgram; + +extern PFNGLGETUNIFORMLOCATION glGetUniformLocation; +extern PFNGLUNIFORMMATRIX4FV glUniformMatrix4fv; +extern PFNGLUNIFORM3FV glUniform3fv; +extern PFNGLUNIFORM4FV glUniform4fv; +extern PFNGLUNIFORM1F glUniform1f; +extern PFNGLUNIFORM1I glUniform1i; +extern PFNGLACTIVETEXTURE glActiveTexture; +extern PFNGLGENERATEMIPMAP glGenerateMipmap; + +// Resolves every function pointer above via glfwGetProcAddress. Must be +// called once, after glfwMakeContextCurrent(). Returns false if any +// required entry point could not be resolved. +bool loadGLFunctions(); + +} // namespace planetarium::gl diff --git a/include/Mesh.hpp b/include/Mesh.hpp new file mode 100644 index 0000000..1330974 --- /dev/null +++ b/include/Mesh.hpp @@ -0,0 +1,54 @@ +#pragma once + +#include "GLFunctions.hpp" + +#include +#include + +namespace planetarium { + +// ----------------------------------------------------------------------- +// Mesh +// +// Owns a VAO/VBO/(optional)EBO describing an interleaved +// position+normal+uv vertex stream, plus static factory methods that +// procedurally build a few common primitive shapes (spheres, rings, +// circles) so a project has no dependency on external model files. +// ----------------------------------------------------------------------- +struct Vertex { + glm::vec3 position; + glm::vec3 normal; + glm::vec2 uv; +}; + +class Mesh { +public: + Mesh() = default; + ~Mesh(); + + Mesh(const Mesh&) = delete; + Mesh& operator=(const Mesh&) = delete; + Mesh(Mesh&& other) noexcept; + Mesh& operator=(Mesh&& other) noexcept; + + void upload(const std::vector& vertices, const std::vector& indices); + void uploadLineStrip(const std::vector& points); + void draw() const; + void drawLineStrip() const; + + static Mesh createUVSphere(int stacks, int slices); + static Mesh createRing(float innerRadius, float outerRadius, int segments); + static Mesh createOrbitCircle(int segments); // unit circle in XZ + +private: + void release(); + + GLuint vao_ = 0; + GLuint vbo_ = 0; + GLuint ebo_ = 0; + GLsizei indexCount_ = 0; + GLsizei vertexCount_ = 0; + bool isLineStrip_ = false; +}; + +} // namespace planetarium diff --git a/include/Shader.hpp b/include/Shader.hpp new file mode 100644 index 0000000..25532a2 --- /dev/null +++ b/include/Shader.hpp @@ -0,0 +1,45 @@ +#pragma once + +#include "GLFunctions.hpp" + +#include +#include + +namespace planetarium { + +// ----------------------------------------------------------------------- +// Shader +// +// Thin RAII wrapper around a linked OpenGL program object, compiled from +// a vertex + fragment shader pair loaded from disk. +// ----------------------------------------------------------------------- +class Shader { +public: + Shader() = default; + ~Shader(); + + Shader(const Shader&) = delete; + Shader& operator=(const Shader&) = delete; + Shader(Shader&& other) noexcept; + Shader& operator=(Shader&& other) noexcept; + + // Compiles and links the program. Returns false (and logs to stderr) + // on failure; the shader remains unusable but the caller can continue + // running with a null program. + bool loadFromFiles(const std::string& vertexPath, const std::string& fragmentPath); + + void use() const; + GLuint id() const { return program_; } + + void setMat4(const std::string& name, const glm::mat4& m) const; + void setVec3(const std::string& name, const glm::vec3& v) const; + void setVec4(const std::string& name, const glm::vec4& v) const; + void setFloat(const std::string& name, float f) const; + void setInt(const std::string& name, int i) const; + +private: + GLuint program_ = 0; + GLint locationOf(const std::string& name) const; +}; + +} // namespace planetarium diff --git a/src/Camera.cpp b/src/Camera.cpp new file mode 100644 index 0000000..fc813b3 --- /dev/null +++ b/src/Camera.cpp @@ -0,0 +1,71 @@ +#include "Camera.hpp" + +#include + +#include +#include + +namespace planetarium { + +Camera::Camera() { reset(); } + +void Camera::onMouseDrag(float deltaX, float deltaY) { + const float rotateSpeed = 0.005f; + targetYaw_ -= deltaX * rotateSpeed; + targetPitch_ += deltaY * rotateSpeed; + targetPitch_ = std::clamp(targetPitch_, kMinPitch, kMaxPitch); +} + +void Camera::onMousePan(float deltaX, float deltaY) { + // Pan moves the orbit focus along the camera's local right/up axes, + // scaled by distance so panning feels consistent whether zoomed in + // close to a planet or viewing the whole system. + glm::vec3 forward = glm::normalize(currentFocus_ - currentPosition_); + glm::vec3 right = glm::normalize(glm::cross(forward, glm::vec3(0.0f, 1.0f, 0.0f))); + glm::vec3 up = glm::normalize(glm::cross(right, forward)); + + float panSpeed = 0.0015f * currentDistance_; + targetFocus_ += (-right * deltaX + up * deltaY) * panSpeed; +} + +void Camera::onScroll(float deltaY) { + float zoomFactor = std::pow(0.9f, deltaY); + targetDistance_ = std::clamp(targetDistance_ * zoomFactor, kMinDistance, kMaxDistance); +} + +void Camera::reset() { + targetYaw_ = -0.6f; + targetPitch_ = 0.45f; + targetDistance_ = 18.0f; + targetFocus_ = glm::vec3(0.0f); +} + +void Camera::focusOn(const glm::vec3& worldPoint, float suggestedDistance) { + targetFocus_ = worldPoint; + targetDistance_ = std::clamp(suggestedDistance, kMinDistance, kMaxDistance); +} + +void Camera::update(float deltaTime) { + // Exponential ("critically damped") smoothing: each frame closes a + // fixed fraction of the remaining gap to the target, giving smooth + // deceleration without overshoot regardless of frame rate. + float t = 1.0f - std::exp(-kSmoothingSpeed * deltaTime); + + currentYaw_ += (targetYaw_ - currentYaw_) * t; + currentPitch_ += (targetPitch_ - currentPitch_) * t; + currentDistance_ += (targetDistance_ - currentDistance_) * t; + currentFocus_ += (targetFocus_ - currentFocus_) * t; + + glm::vec3 offset; + offset.x = currentDistance_ * std::cos(currentPitch_) * std::sin(currentYaw_); + offset.y = currentDistance_ * std::sin(currentPitch_); + offset.z = currentDistance_ * std::cos(currentPitch_) * std::cos(currentYaw_); + + currentPosition_ = currentFocus_ + offset; +} + +glm::mat4 Camera::viewMatrix() const { + return glm::lookAt(currentPosition_, currentFocus_, glm::vec3(0.0f, 1.0f, 0.0f)); +} + +} // namespace planetarium diff --git a/src/Engine.cpp b/src/Engine.cpp new file mode 100644 index 0000000..40dfb54 --- /dev/null +++ b/src/Engine.cpp @@ -0,0 +1,148 @@ +#include "Engine.hpp" + +#include "GLFunctions.hpp" + +#include + +#include +#include + +namespace planetarium { + +Engine::~Engine() { + if (window_) { + glfwDestroyWindow(window_); + glfwTerminate(); + } +} + +bool Engine::initialize(int width, int height, const char* title) { + if (!glfwInit()) { + std::fprintf(stderr, "[Engine] glfwInit failed\n"); + return false; + } + + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); +#ifdef __APPLE__ + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE); +#endif + glfwWindowHint(GLFW_SAMPLES, 4); + + window_ = glfwCreateWindow(width, height, title, nullptr, nullptr); + if (!window_) { + std::fprintf(stderr, "[Engine] Failed to create GLFW window (is a display/X server available?)\n"); + glfwTerminate(); + return false; + } + + glfwSetWindowUserPointer(window_, this); + glfwMakeContextCurrent(window_); + glfwSwapInterval(1); + + if (!gl::loadGLFunctions()) { + std::fprintf(stderr, "[Engine] Failed to load required OpenGL 3.3 entry points\n"); + return false; + } + + glfwSetCursorPosCallback(window_, &Engine::cursorPosCallback); + glfwSetMouseButtonCallback(window_, &Engine::mouseButtonCallback); + glfwSetScrollCallback(window_, &Engine::scrollCallback); + glfwSetKeyCallback(window_, &Engine::keyCallback); + glfwSetFramebufferSizeCallback(window_, &Engine::framebufferSizeCallback); + + glfwGetFramebufferSize(window_, &framebufferWidth_, &framebufferHeight_); + + lastFrameTime_ = glfwGetTime(); + return true; +} + +void Engine::run() { + while (window_ && !glfwWindowShouldClose(window_)) { + double now = glfwGetTime(); + float deltaTime = static_cast(now - lastFrameTime_); + lastFrameTime_ = now; + deltaTime = std::min(deltaTime, 0.1f); // clamp huge stalls (e.g. window drag) + + glfwPollEvents(); + update(deltaTime); + render(); + glfwSwapBuffers(window_); + } +} + +void Engine::update(float deltaTime) { + camera_.update(deltaTime); + if (updateCallback_) updateCallback_(deltaTime); +} + +void Engine::render() { + if (renderCallback_) renderCallback_(framebufferWidth_, framebufferHeight_); +} + +// --------------------------------------------------------------------- +// GLFW callback trampolines +// --------------------------------------------------------------------- +void Engine::cursorPosCallback(GLFWwindow* window, double x, double y) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + + double dx = x - engine->lastMouseX_; + double dy = y - engine->lastMouseY_; + engine->lastMouseX_ = x; + engine->lastMouseY_ = y; + + if (engine->rotating_) { + engine->camera_.onMouseDrag(static_cast(dx), static_cast(dy)); + } else if (engine->panning_) { + engine->camera_.onMousePan(static_cast(dx), static_cast(dy)); + } +} + +void Engine::mouseButtonCallback(GLFWwindow* window, int button, int action, int mods) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + (void)mods; + + if (button == GLFW_MOUSE_BUTTON_LEFT) { + engine->rotating_ = (action == GLFW_PRESS); + } else if (button == GLFW_MOUSE_BUTTON_MIDDLE) { + engine->panning_ = (action == GLFW_PRESS); + } +} + +void Engine::scrollCallback(GLFWwindow* window, double xOffset, double yOffset) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + (void)xOffset; + engine->camera_.onScroll(static_cast(yOffset)); +} + +void Engine::keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + (void)scancode; + (void)mods; + if (action != GLFW_PRESS) return; + + switch (key) { + case GLFW_KEY_R: + engine->camera_.reset(); + break; + case GLFW_KEY_ESCAPE: + glfwSetWindowShouldClose(window, GLFW_TRUE); + break; + default: + break; + } +} + +void Engine::framebufferSizeCallback(GLFWwindow* window, int width, int height) { + auto* engine = static_cast(glfwGetWindowUserPointer(window)); + if (!engine) return; + engine->framebufferWidth_ = width; + engine->framebufferHeight_ = height; +} + +} // namespace planetarium diff --git a/src/GLFunctions.cpp b/src/GLFunctions.cpp new file mode 100644 index 0000000..e49a566 --- /dev/null +++ b/src/GLFunctions.cpp @@ -0,0 +1,92 @@ +#include "GLFunctions.hpp" + +#include +#include + +namespace planetarium::gl { + +PFNGLGENVERTEXARRAYS glGenVertexArrays = nullptr; +PFNGLBINDVERTEXARRAY glBindVertexArray = nullptr; +PFNGLDELETEVERTEXARRAYS glDeleteVertexArrays = nullptr; +PFNGLGENBUFFERS glGenBuffers = nullptr; +PFNGLBINDBUFFER glBindBuffer = nullptr; +PFNGLBUFFERDATA glBufferData = nullptr; +PFNGLDELETEBUFFERS glDeleteBuffers = nullptr; +PFNGLVERTEXATTRIBPOINTER glVertexAttribPointer = nullptr; +PFNGLENABLEVERTEXATTRIBARRAY glEnableVertexAttribArray = nullptr; +PFNGLDISABLEVERTEXATTRIBARRAY glDisableVertexAttribArray = nullptr; + +PFNGLCREATESHADER glCreateShader = nullptr; +PFNGLSHADERSOURCE glShaderSource = nullptr; +PFNGLCOMPILESHADER glCompileShader = nullptr; +PFNGLGETSHADERIV glGetShaderiv = nullptr; +PFNGLGETSHADERINFOLOG glGetShaderInfoLog = nullptr; +PFNGLDELETESHADER glDeleteShader = nullptr; +PFNGLCREATEPROGRAM glCreateProgram = nullptr; +PFNGLATTACHSHADER glAttachShader = nullptr; +PFNGLLINKPROGRAM glLinkProgram = nullptr; +PFNGLGETPROGRAMIV glGetProgramiv = nullptr; +PFNGLGETPROGRAMINFOLOG glGetProgramInfoLog = nullptr; +PFNGLUSEPROGRAM glUseProgram = nullptr; +PFNGLDELETEPROGRAM glDeleteProgram = nullptr; + +PFNGLGETUNIFORMLOCATION glGetUniformLocation = nullptr; +PFNGLUNIFORMMATRIX4FV glUniformMatrix4fv = nullptr; +PFNGLUNIFORM3FV glUniform3fv = nullptr; +PFNGLUNIFORM4FV glUniform4fv = nullptr; +PFNGLUNIFORM1F glUniform1f = nullptr; +PFNGLUNIFORM1I glUniform1i = nullptr; +PFNGLACTIVETEXTURE glActiveTexture = nullptr; +PFNGLGENERATEMIPMAP glGenerateMipmap = nullptr; + +namespace { +template +bool resolve(T& out, const char* name) { + out = reinterpret_cast(glfwGetProcAddress(name)); + if (!out) { + std::fprintf(stderr, "[GLFunctions] Failed to resolve entry point: %s\n", name); + return false; + } + return true; +} +} // namespace + +bool loadGLFunctions() { + bool ok = true; + ok &= resolve(glGenVertexArrays, "glGenVertexArrays"); + ok &= resolve(glBindVertexArray, "glBindVertexArray"); + ok &= resolve(glDeleteVertexArrays, "glDeleteVertexArrays"); + ok &= resolve(glGenBuffers, "glGenBuffers"); + ok &= resolve(glBindBuffer, "glBindBuffer"); + ok &= resolve(glBufferData, "glBufferData"); + ok &= resolve(glDeleteBuffers, "glDeleteBuffers"); + ok &= resolve(glVertexAttribPointer, "glVertexAttribPointer"); + ok &= resolve(glEnableVertexAttribArray, "glEnableVertexAttribArray"); + ok &= resolve(glDisableVertexAttribArray, "glDisableVertexAttribArray"); + + ok &= resolve(glCreateShader, "glCreateShader"); + ok &= resolve(glShaderSource, "glShaderSource"); + ok &= resolve(glCompileShader, "glCompileShader"); + ok &= resolve(glGetShaderiv, "glGetShaderiv"); + ok &= resolve(glGetShaderInfoLog, "glGetShaderInfoLog"); + ok &= resolve(glDeleteShader, "glDeleteShader"); + ok &= resolve(glCreateProgram, "glCreateProgram"); + ok &= resolve(glAttachShader, "glAttachShader"); + ok &= resolve(glLinkProgram, "glLinkProgram"); + ok &= resolve(glGetProgramiv, "glGetProgramiv"); + ok &= resolve(glGetProgramInfoLog, "glGetProgramInfoLog"); + ok &= resolve(glUseProgram, "glUseProgram"); + ok &= resolve(glDeleteProgram, "glDeleteProgram"); + + ok &= resolve(glGetUniformLocation, "glGetUniformLocation"); + ok &= resolve(glUniformMatrix4fv, "glUniformMatrix4fv"); + ok &= resolve(glUniform3fv, "glUniform3fv"); + ok &= resolve(glUniform4fv, "glUniform4fv"); + ok &= resolve(glUniform1f, "glUniform1f"); + ok &= resolve(glUniform1i, "glUniform1i"); + ok &= resolve(glActiveTexture, "glActiveTexture"); + ok &= resolve(glGenerateMipmap, "glGenerateMipmap"); + return ok; +} + +} // namespace planetarium::gl diff --git a/src/Mesh.cpp b/src/Mesh.cpp new file mode 100644 index 0000000..e560a5e --- /dev/null +++ b/src/Mesh.cpp @@ -0,0 +1,216 @@ +#include "Mesh.hpp" + +#include +#include + +namespace planetarium { +using namespace gl; + +Mesh::~Mesh() { release(); } + +Mesh::Mesh(Mesh&& other) noexcept + : vao_(other.vao_), + vbo_(other.vbo_), + ebo_(other.ebo_), + indexCount_(other.indexCount_), + vertexCount_(other.vertexCount_), + isLineStrip_(other.isLineStrip_) { + other.vao_ = other.vbo_ = other.ebo_ = 0; + other.indexCount_ = other.vertexCount_ = 0; +} + +Mesh& Mesh::operator=(Mesh&& other) noexcept { + if (this != &other) { + release(); + vao_ = other.vao_; + vbo_ = other.vbo_; + ebo_ = other.ebo_; + indexCount_ = other.indexCount_; + vertexCount_ = other.vertexCount_; + isLineStrip_ = other.isLineStrip_; + other.vao_ = other.vbo_ = other.ebo_ = 0; + other.indexCount_ = other.vertexCount_ = 0; + } + return *this; +} + +void Mesh::release() { + if (ebo_) glDeleteBuffers(1, &ebo_); + if (vbo_) glDeleteBuffers(1, &vbo_); + if (vao_) glDeleteVertexArrays(1, &vao_); + vao_ = vbo_ = ebo_ = 0; + indexCount_ = vertexCount_ = 0; +} + +void Mesh::upload(const std::vector& vertices, const std::vector& indices) { + release(); + isLineStrip_ = false; + + glGenVertexArrays(1, &vao_); + glGenBuffers(1, &vbo_); + glBindVertexArray(vao_); + + glBindBuffer(GL_ARRAY_BUFFER, vbo_); + glBufferData(GL_ARRAY_BUFFER, static_cast(vertices.size() * sizeof(Vertex)), + vertices.data(), GL_STATIC_DRAW); + + if (!indices.empty()) { + glGenBuffers(1, &ebo_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, + static_cast(indices.size() * sizeof(unsigned int)), + indices.data(), GL_STATIC_DRAW); + indexCount_ = static_cast(indices.size()); + } + + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + reinterpret_cast(offsetof(Vertex, position))); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + reinterpret_cast(offsetof(Vertex, normal))); + glEnableVertexAttribArray(2); + glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), + reinterpret_cast(offsetof(Vertex, uv))); + + glBindVertexArray(0); + vertexCount_ = static_cast(vertices.size()); +} + +void Mesh::uploadLineStrip(const std::vector& points) { + release(); + isLineStrip_ = true; + + glGenVertexArrays(1, &vao_); + glGenBuffers(1, &vbo_); + glBindVertexArray(vao_); + + glBindBuffer(GL_ARRAY_BUFFER, vbo_); + glBufferData(GL_ARRAY_BUFFER, static_cast(points.size() * sizeof(glm::vec3)), + points.data(), GL_STATIC_DRAW); + + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(glm::vec3), nullptr); + + glBindVertexArray(0); + vertexCount_ = static_cast(points.size()); +} + +void Mesh::draw() const { + if (!vao_) return; + glBindVertexArray(vao_); + if (ebo_) { + glDrawElements(GL_TRIANGLES, indexCount_, GL_UNSIGNED_INT, nullptr); + } else { + glDrawArrays(GL_TRIANGLES, 0, vertexCount_); + } + glBindVertexArray(0); +} + +void Mesh::drawLineStrip() const { + if (!vao_) return; + glBindVertexArray(vao_); + glDrawArrays(GL_LINE_LOOP, 0, vertexCount_); + glBindVertexArray(0); +} + +Mesh Mesh::createUVSphere(int stacks, int slices) { + std::vector vertices; + std::vector indices; + vertices.reserve(static_cast((stacks + 1) * (slices + 1))); + + const float pi = 3.14159265358979323846f; + for (int i = 0; i <= stacks; ++i) { + float v = static_cast(i) / static_cast(stacks); + float phi = v * pi; + for (int j = 0; j <= slices; ++j) { + float u = static_cast(j) / static_cast(slices); + float theta = u * 2.0f * pi; + + float x = std::sin(phi) * std::cos(theta); + float y = std::cos(phi); + float z = std::sin(phi) * std::sin(theta); + + Vertex vert; + vert.position = glm::vec3(x, y, z); + vert.normal = glm::normalize(glm::vec3(x, y, z)); + vert.uv = glm::vec2(u, 1.0f - v); + vertices.push_back(vert); + } + } + + for (int i = 0; i < stacks; ++i) { + for (int j = 0; j < slices; ++j) { + unsigned int a = static_cast(i * (slices + 1) + j); + unsigned int b = static_cast(a + slices + 1); + + indices.push_back(a); + indices.push_back(b); + indices.push_back(a + 1); + + indices.push_back(a + 1); + indices.push_back(b); + indices.push_back(b + 1); + } + } + + Mesh mesh; + mesh.upload(vertices, indices); + return mesh; +} + +Mesh Mesh::createRing(float innerRadius, float outerRadius, int segments) { + std::vector vertices; + std::vector indices; + const float pi = 3.14159265358979323846f; + + for (int i = 0; i <= segments; ++i) { + float t = static_cast(i) / static_cast(segments); + float theta = t * 2.0f * pi; + float ct = std::cos(theta), st = std::sin(theta); + + Vertex inner; + inner.position = glm::vec3(ct * innerRadius, 0.0f, st * innerRadius); + inner.normal = glm::vec3(0.0f, 1.0f, 0.0f); + inner.uv = glm::vec2(t, 0.0f); + vertices.push_back(inner); + + Vertex outer; + outer.position = glm::vec3(ct * outerRadius, 0.0f, st * outerRadius); + outer.normal = glm::vec3(0.0f, 1.0f, 0.0f); + outer.uv = glm::vec2(t, 1.0f); + vertices.push_back(outer); + } + + for (int i = 0; i < segments; ++i) { + unsigned int a = static_cast(i * 2); + unsigned int b = a + 1; + unsigned int c = a + 2; + unsigned int d = a + 3; + indices.push_back(a); + indices.push_back(b); + indices.push_back(c); + indices.push_back(b); + indices.push_back(d); + indices.push_back(c); + } + + Mesh mesh; + mesh.upload(vertices, indices); + return mesh; +} + +Mesh Mesh::createOrbitCircle(int segments) { + std::vector points; + points.reserve(static_cast(segments)); + const float pi = 3.14159265358979323846f; + for (int i = 0; i < segments; ++i) { + float t = static_cast(i) / static_cast(segments) * 2.0f * pi; + points.emplace_back(std::cos(t), 0.0f, std::sin(t)); + } + Mesh mesh; + mesh.uploadLineStrip(points); + return mesh; +} + +} // namespace planetarium diff --git a/src/Shader.cpp b/src/Shader.cpp new file mode 100644 index 0000000..ba6d8e5 --- /dev/null +++ b/src/Shader.cpp @@ -0,0 +1,121 @@ +#include "Shader.hpp" + +#include + +#include +#include +#include + +namespace planetarium { +using namespace gl; + +namespace { +std::string readFile(const std::string& path) { + std::ifstream file(path); + if (!file.is_open()) { + std::fprintf(stderr, "[Shader] Could not open file: %s\n", path.c_str()); + return {}; + } + std::ostringstream ss; + ss << file.rdbuf(); + return ss.str(); +} + +GLuint compileStage(GLenum stage, const std::string& source, const std::string& debugName) { + GLuint shader = glCreateShader(stage); + const char* src = source.c_str(); + glShaderSource(shader, 1, &src, nullptr); + glCompileShader(shader); + + GLint success = GL_FALSE; + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + if (!success) { + char log[1024]; + glGetShaderInfoLog(shader, sizeof(log), nullptr, log); + std::fprintf(stderr, "[Shader] Compile error in %s:\n%s\n", debugName.c_str(), log); + glDeleteShader(shader); + return 0; + } + return shader; +} +} // namespace + +Shader::~Shader() { + if (program_) glDeleteProgram(program_); +} + +Shader::Shader(Shader&& other) noexcept : program_(other.program_) { + other.program_ = 0; +} + +Shader& Shader::operator=(Shader&& other) noexcept { + if (this != &other) { + if (program_) glDeleteProgram(program_); + program_ = other.program_; + other.program_ = 0; + } + return *this; +} + +bool Shader::loadFromFiles(const std::string& vertexPath, const std::string& fragmentPath) { + std::string vertSrc = readFile(vertexPath); + std::string fragSrc = readFile(fragmentPath); + if (vertSrc.empty() || fragSrc.empty()) return false; + + GLuint vs = compileStage(GL_VERTEX_SHADER, vertSrc, vertexPath); + GLuint fs = compileStage(GL_FRAGMENT_SHADER, fragSrc, fragmentPath); + if (!vs || !fs) { + if (vs) glDeleteShader(vs); + if (fs) glDeleteShader(fs); + return false; + } + + GLuint prog = glCreateProgram(); + glAttachShader(prog, vs); + glAttachShader(prog, fs); + glLinkProgram(prog); + + GLint linked = GL_FALSE; + glGetProgramiv(prog, GL_LINK_STATUS, &linked); + glDeleteShader(vs); + glDeleteShader(fs); + + if (!linked) { + char log[1024]; + glGetProgramInfoLog(prog, sizeof(log), nullptr, log); + std::fprintf(stderr, "[Shader] Link error (%s / %s):\n%s\n", vertexPath.c_str(), + fragmentPath.c_str(), log); + glDeleteProgram(prog); + return false; + } + + if (program_) glDeleteProgram(program_); + program_ = prog; + return true; +} + +void Shader::use() const { + if (program_) glUseProgram(program_); +} + +GLint Shader::locationOf(const std::string& name) const { + return glGetUniformLocation(program_, name.c_str()); +} + +void Shader::setMat4(const std::string& name, const glm::mat4& m) const { + glUniformMatrix4fv(locationOf(name), 1, GL_FALSE, glm::value_ptr(m)); +} +void Shader::setVec3(const std::string& name, const glm::vec3& v) const { + glUniform3fv(locationOf(name), 1, glm::value_ptr(v)); +} +void Shader::setVec4(const std::string& name, const glm::vec4& v) const { + glUniform4fv(locationOf(name), 1, glm::value_ptr(v)); +} +void Shader::setFloat(const std::string& name, float f) const { + glUniform1f(locationOf(name), f); +} +void Shader::setInt(const std::string& name, int i) const { + glUniform1i(locationOf(name), i); +} + +} // namespace planetarium diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..e50f4d6 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,70 @@ +#include "Engine.hpp" +#include "GLFunctions.hpp" +#include "Mesh.hpp" +#include "Shader.hpp" + +#include + +#include +#include + +using namespace planetarium; +using namespace planetarium::gl; + +namespace { +bool directoryExists(const std::string& path) { + struct stat info{}; + return stat(path.c_str(), &info) == 0 && (info.st_mode & S_IFDIR); +} +} // namespace + +int main() { + Engine engine; + if (!engine.initialize(1280, 720, "Engine Demo")) { + std::fprintf(stderr, "Failed to initialize engine.\n"); + return 1; + } + + std::string assetDir = "assets"; + if (!directoryExists(assetDir + "/shaders")) { +#ifdef ENGINE_ASSET_DIR + assetDir = ENGINE_ASSET_DIR; +#endif + } + + Shader shader; + if (!shader.loadFromFiles(assetDir + "/shaders/basic.vert", assetDir + "/shaders/basic.frag")) { + std::fprintf(stderr, "Failed to load demo shaders from %s\n", assetDir.c_str()); + return 1; + } + + Mesh sphere = Mesh::createUVSphere(32, 32); + float spinDeg = 0.0f; + + engine.setUpdateCallback([&](float dt) { spinDeg += dt * 20.0f; }); + + engine.setRenderCallback([&](int fbWidth, int fbHeight) { + glViewport(0, 0, fbWidth, fbHeight); + glClearColor(0.05f, 0.06f, 0.09f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glEnable(GL_DEPTH_TEST); + + float aspect = fbHeight > 0 ? static_cast(fbWidth) / static_cast(fbHeight) : 1.0f; + glm::mat4 projection = glm::perspective(glm::radians(50.0f), aspect, 0.05f, 200.0f); + + glm::mat4 model = glm::rotate(glm::mat4(1.0f), glm::radians(spinDeg), glm::vec3(0.0f, 1.0f, 0.0f)); + + shader.use(); + shader.setMat4("uModel", model); + shader.setMat4("uView", engine.camera().viewMatrix()); + shader.setMat4("uProjection", projection); + shader.setVec3("uBaseColor", glm::vec3(0.30f, 0.65f, 0.95f)); + shader.setVec3("uLightDir", glm::vec3(-0.4f, -1.0f, -0.3f)); + shader.setVec3("uViewPos", engine.camera().position()); + + sphere.draw(); + }); + + engine.run(); + return 0; +}