add guide

This commit is contained in:
ben de roo
2026-09-06 21:30:55 +02:00
parent 3a2a671325
commit f6f1988943
22 changed files with 485 additions and 79 deletions
+406
View File
@@ -0,0 +1,406 @@
# Engine — gebruikshandleiding
Deze handleiding legt uit hoe de engine in elkaar zit, hoe je hem gebruikt,
hoe je eigen elementen (objecten die getekend/geüpdatet worden) toevoegt,
en hoe je input afhandelt. De engine bestaat uit vier onderdelen:
| Klasse | Bestand | Verantwoordelijkheid |
|----------------|-----------------------------------|----------------------------------------------------------|
| `Engine` | `include/Engine.hpp` / `src/Engine.cpp` | Venster, GL-context, main loop, ruwe input → Camera |
| `Camera` | `include/Camera.hpp` / `src/Camera.cpp` | Arcball-camera (orbit/pan/zoom, cinematisch smoothed) |
| `Shader` | `include/Shader.hpp` / `src/Shader.cpp` | RAII-wrapper om een gelinkt GLSL-programma |
| `Mesh` | `include/Mesh.hpp` / `src/Mesh.cpp` | VAO/VBO/EBO-wrapper + procedurele geometrie (sphere/ring/circle) |
Alle vier zitten in de `engine` namespace, zodat er geen naamsbotsingen
ontstaan met GLFW/OpenGL-symbolen of andere libraries. Voeg je eigen
elementen (zie sectie 3) toe aan diezelfde namespace.
---
## 1. Basisgebruik
```cpp
#include "Engine.hpp"
int main() {
engine::Engine engine;
if (!engine.initialize(1280, 720, "Mijn App")) {
return 1;
}
engine.setUpdateCallback([](float deltaTime) {
// hier zit jouw simulatie/game-state update, één keer per frame
});
engine.setRenderCallback([](int framebufferWidth, int framebufferHeight) {
// hier zit jouw OpenGL-tekenwerk, één keer per frame
});
engine.run();
return 0;
}
```
`initialize()` doet alles wat met GLFW/OpenGL-opstart te maken heeft:
venster aanmaken, context activeren, de OpenGL 3.3-functiepointers laden
(`gl::loadGLFunctions()`), en de GLFW-callbacks aan de instantie koppelen.
`run()` is de main loop: pollen van events, delta-time berekenen, `update()`
en `render()` aanroepen, buffers swappen. Dat blijft zo doorlopen tot het
venster gesloten wordt (kruisje, of Escape — zie hieronder).
Je hoeft `Engine.hpp` niet aan te passen om iets te laten gebeuren: alles
gaat via de twee callbacks. Dat houdt de engine zelf generiek en jouw
project-specifieke code gescheiden.
---
## 2. De Camera gebruiken
`Engine` bezit al een `Camera` en stuurt muisinput er automatisch naartoe:
- **linker muisknop + slepen** → oriënteren (yaw/pitch)
- **middelste muisknop + slepen** → pannen
- **scrollwiel** → in-/uitzoomen
- **R** → camera terugzetten naar standaardstand
- **Escape** → venster sluiten
Je haalt de camera op met `engine.camera()` en gebruikt hem in je
render-callback:
```cpp
glm::mat4 view = engine.camera().viewMatrix();
glm::vec3 eye = engine.camera().position();
```
Wil je de camera ergens naartoe laten bewegen (bijv. "focus op dit object"),
gebruik dan `focusOn(worldPoint, suggestedDistance)` — dat zet alleen het
*doel* van de smoothing, `update()` (elke frame al door `Engine` aangeroepen)
beweegt er geleidelijk naartoe.
```cpp
engine.camera().focusOn(objectPosition, 8.0f);
```
---
## 3. Een eigen element maken
Met "element" bedoelen we een zelfstandig object dat iets voorstelt in je
scene: een blokje, personage, deeltjeseffect, wat dan ook. Het patroon dat
deze engine gebruikt (en dat je zelf ook aanhoudt) is steeds: **data +
gedrag in een klasse, header in `include/`, implementatie in `src/`,
buiten de klasse gebeurt niets rechtstreeks met OpenGL.**
### 3.1 Bestandsstructuur
Voor een nieuw element `Cube` maak je:
```
include/Cube.hpp
src/Cube.cpp
```
`Cube.hpp`:
```cpp
#pragma once
#include "Mesh.hpp"
#include "Shader.hpp"
#include <glm/glm.hpp>
namespace engine {
// -----------------------------------------------------------------------
// Cube
//
// Eén gekleurd blokje: eigen transform + eigen shader-uniforms, tekent
// zichzelf met de gedeelde Mesh-geometrie.
// -----------------------------------------------------------------------
class Cube {
public:
bool initialize(); // compileert shader, bouwt mesh — kan mislukken
void update(float deltaTime);
void draw(const glm::mat4& view, const glm::mat4& projection,
const glm::vec3& viewPos) const;
glm::vec3 position{0.0f};
glm::vec3 baseColor{0.8f, 0.3f, 0.2f};
private:
Mesh mesh_;
Shader shader_;
float spinDeg_ = 0.0f;
};
} // namespace engine
```
`Cube.cpp`:
```cpp
#include "Cube.hpp"
#include <glm/gtc/matrix_transform.hpp>
namespace engine {
bool Cube::initialize() {
// Mesh::createUVSphere/createRing/createOrbitCircle bestaan al; voor een
// echte kubus zou je een Mesh::createBox() toevoegen aan Mesh (zie
// sectie 4). Voor dit voorbeeld hergebruiken we de bol als placeholder.
mesh_ = Mesh::createUVSphere(16, 16);
return shader_.loadFromFiles("assets/shaders/basic.vert", "assets/shaders/basic.frag");
}
void Cube::update(float deltaTime) {
spinDeg_ += deltaTime * 45.0f;
}
void Cube::draw(const glm::mat4& view, const glm::mat4& projection,
const glm::vec3& viewPos) const {
glm::mat4 model = glm::translate(glm::mat4(1.0f), position);
model = glm::rotate(model, glm::radians(spinDeg_), glm::vec3(0.0f, 1.0f, 0.0f));
shader_.use();
shader_.setMat4("uModel", model);
shader_.setMat4("uView", view);
shader_.setMat4("uProjection", projection);
shader_.setVec3("uBaseColor", baseColor);
shader_.setVec3("uLightDir", glm::vec3(-0.4f, -1.0f, -0.3f));
shader_.setVec3("uViewPos", viewPos);
mesh_.draw();
}
} // namespace engine
```
### 3.2 Aanhaken in main.cpp
```cpp
#include "Cube.hpp"
#include "Engine.hpp"
engine::Cube cube;
int main() {
engine::Engine engine;
engine.initialize(1280, 720, "Mijn App");
cube.initialize();
cube.position = glm::vec3(0.0f, 0.0f, 0.0f);
engine.setUpdateCallback([&](float dt) {
cube.update(dt);
});
engine.setRenderCallback([&](int w, int h) {
glViewport(0, 0, w, h);
glClearColor(0.05f, 0.06f, 0.09f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
float aspect = static_cast<float>(w) / static_cast<float>(h);
glm::mat4 proj = glm::perspective(glm::radians(50.0f), aspect, 0.05f, 200.0f);
cube.draw(engine.camera().viewMatrix(), proj, engine.camera().position());
});
engine.run();
return 0;
}
```
Zodra je meerdere elementen hebt, wordt dit al snel een simpele lijst:
```cpp
std::vector<std::unique_ptr<Cube>> cubes;
// update: for (auto& c : cubes) c->update(dt);
// render: for (auto& c : cubes) c->draw(view, proj, eye);
```
Er zit geen "Scene"- of "Entity"-systeem in deze engine — dat is bewust
weggelaten, zodat je zelf kiest hoe zwaar je dat wilt maken (een simpele
`std::vector`, of iets uitgebreiders als je project groeit).
---
## 4. Nieuwe geometrie toevoegen aan `Mesh`
`Mesh` heeft nu `createUVSphere`, `createRing` en `createOrbitCircle` als
static factory-methodes. Een nieuwe vorm (bijv. een kubus) voeg je op
dezelfde manier toe:
**In `include/Mesh.hpp`**, bij de andere static methodes:
```cpp
static Mesh createBox(float halfExtent);
```
**In `src/Mesh.cpp`**, een nieuwe functie die `Vertex`-en `unsigned int`-arrays
vult en via `upload()` naar de GPU stuurt (zoals `createUVSphere` doet):
```cpp
Mesh Mesh::createBox(float halfExtent) {
std::vector<Vertex> vertices;
std::vector<unsigned int> indices;
// ... vul vertices/indices met de 8 hoekpunten + 12 driehoeken ...
Mesh mesh;
mesh.upload(vertices, indices);
return mesh;
}
```
Het patroon is steeds: bouw CPU-side arrays van `Vertex{position, normal, uv}`
en `unsigned int`-indices, en geef die aan `upload()`. Voor een lijnvorm
(zoals een orbit-pad) gebruik je `uploadLineStrip()` in plaats daarvan.
---
## 5. Eigen shaders toevoegen
Shaders zijn losse `.vert`/`.frag`-bestanden in `assets/shaders/`. Om een
nieuwe te gebruiken:
1. Zet `mijnshader.vert` en `mijnshader.frag` in `assets/shaders/`.
2. `Shader shader; shader.loadFromFiles("assets/shaders/mijnshader.vert", "assets/shaders/mijnshader.frag");`
3. Uniforms zet je via `setMat4`/`setVec3`/`setVec4`/`setFloat`/`setInt` — de
namen moeten exact overeenkomen met de `uniform`-declaraties in de shader.
Er is geen build-stap nodig voor nieuwe shaders: `CMakeLists.txt` kopieert
gewoon de hele `assets/`-map naast de executable na elke build
(`add_custom_command(TARGET ... POST_BUILD ...)`), dus een nieuw bestand
daarin verschijnt vanzelf mee.
---
## 6. Input afhandelen
### 6.1 Wat de Engine al doet
`Engine` routeert standaard alleen muis (orbit/pan/zoom) naar de `Camera`,
plus **R** (camera reset) en **Escape** (venster sluiten) als toetsen. Dat
zit in de private GLFW-callbacks in `Engine.cpp`
(`cursorPosCallback`, `mouseButtonCallback`, `scrollCallback`, `keyCallback`).
### 6.2 Eigen input toevoegen zonder Engine aan te passen
Voor input die niet met de camera te maken heeft (bijv. spatie om te pauzeren,
een klik om iets te selecteren) poll je zelf, direct in je update-callback,
via `engine.window()`:
```cpp
engine.setUpdateCallback([&](float dt) {
if (glfwGetKey(engine.window(), GLFW_KEY_SPACE) == GLFW_PRESS) {
paused = !paused;
}
});
```
Let op: dit is *polling* (elke frame checken of een toets nu ingedrukt is),
wat prima werkt voor "hou ingedrukt"-gedrag maar bij "één druk = één actie"
kan dubbel triggeren zolang de toets ingedrukt blijft. Hou daarvoor zelf een
"was dit al ingedrukt vorige frame"-vlag bij, of ga naar optie 6.3.
### 6.3 Eigen input toevoegen mét een discrete "press"-callback
Wil je events (niet polling) zoals de originele game had
(`keyCallback` die éénmalig reageert op `GLFW_PRESS`), dan breid je `Engine`
zelf uit met een extra callback-slot, op dezelfde manier als
`updateCallback_`/`renderCallback_`:
**In `include/Engine.hpp`:**
```cpp
using KeyCallback = std::function<void(int key, int action)>;
void setKeyCallback(KeyCallback cb) { keyCallback_ = std::move(cb); }
// ...
KeyCallback keyCallback_;
```
**In `src/Engine.cpp`**, in de bestaande static `Engine::keyCallback`
(de GLFW-trampoline), roep je hem aan:
```cpp
void Engine::keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) {
auto* engine = static_cast<Engine*>(glfwGetWindowUserPointer(window));
if (!engine) return;
if (action == GLFW_PRESS) {
switch (key) {
case GLFW_KEY_R: engine->camera_.reset(); break;
case GLFW_KEY_ESCAPE: glfwSetWindowShouldClose(window, GLFW_TRUE); break;
default: break;
}
}
if (engine->keyCallback_) engine->keyCallback_(key, action);
}
```
Dan in je eigen `main.cpp`:
```cpp
engine.setKeyCallback([&](int key, int action) {
if (key == GLFW_KEY_SPACE && action == GLFW_PRESS) {
paused = !paused;
}
});
```
Dit is exact het patroon dat de engine al gebruikt voor `update`/`render`
een `std::function`-lid + een setter + een aanroep op de juiste plek in de
bestaande GLFW-trampoline. Muisklikken (bijv. voor object-picking) volgen
dezelfde aanpak via `mouseButtonCallback`.
---
## 7. Hoe je `.hpp`/`.cpp`-bestanden zo opzet dat ze echt bij de engine horen
Drie regels houden nieuwe code consistent met wat er al staat:
1. **Eén klasse per bestandspaar**, header in `include/`, implementatie in
`src/`, zelfde bestandsnaam als de klasse (`Cube.hpp``Cube.cpp`).
`#include "Cube.hpp"` bovenaan `Cube.cpp` als eerste include.
2. **Alles in de `engine`-namespace** (of je eigen naam, zie hieronder), zodat
er geen naamsbotsingen ontstaan met GLFW/OpenGL-symbolen of andere
libraries.
3. **RAII voor GPU-resources.** Kijk naar `Mesh` en `Shader`: een destructor
die opruimt, `= delete` op de copy-constructor/-assignment (GPU-handles
mogen niet per ongeluk gekopieerd worden), en een move-constructor/
-assignment die de handle overneemt en de bron op `0`/leeg zet. Elk
nieuw element dat zelf een VAO/VBO/shader-programma bezit volgt hetzelfde
patroon.
Je hoeft `CMakeLists.txt` niet aan te passen voor nieuwe `.cpp`-bestanden:
`file(GLOB ENGINE_SOURCES ${CMAKE_SOURCE_DIR}/src/*.cpp)` pakt alles in
`src/` automatisch mee bij de volgende keer dat je `cmake ..` opnieuw
draait (nodig omdat GLOB niet automatisch herconfigureert bij een build —
dus na een nieuw bestand: eenmalig opnieuw `cmake ..` in je build-map).
---
## 8. Namespace hernoemen
Alles zit in de generieke `engine`-namespace, zonder verwijzingen naar het
project waar deze code oorspronkelijk uit kwam. Wil je toch een andere naam
(bijv. de naam van je eigen project), dan is dat een kwestie van een
projectbrede find-and-replace van `engine` naar jouw naam in alle
`.hpp`/`.cpp`-bestanden — er zit verder geen afhankelijkheid aan die
specifieke naam. Let op: de klasse heet ook `Engine` (met hoofdletter) —
die hoef je niet mee te hernoemen, `jouwnaam::Engine` blijft prima werken.
---
## 9. Bouwen
```bash
sudo apt install cmake libglfw3-dev libglm-dev libgl1-mesa-dev libglu1-mesa-dev xorg-dev
cd engine && mkdir build && cd build
cmake .. && make -j$(nproc)
./engine_demo
```
Na het toevoegen van nieuwe `.cpp`-bestanden: draai `cmake ..` opnieuw in de
build-map voordat je `make` draait (zie sectie 7).
View File
+1 -1
View File
@@ -22,7 +22,7 @@ CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Release
CMAKE_BUILD_TYPE:STRING=
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
+52 -52
View File
@@ -39,8 +39,8 @@ events:
checks:
- "Detecting CXX compiler ABI info"
directories:
source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK"
binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK"
source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB"
binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB"
cmakeVariables:
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -50,13 +50,13 @@ events:
variable: "CMAKE_CXX_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'
Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_171b0/fast
/usr/bin/gmake -f CMakeFiles/cmTC_171b0.dir/build.make CMakeFiles/cmTC_171b0.dir/build
gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-8FI7xK'
Building CXX object CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_171b0.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_87765/fast
/usr/bin/gmake -f CMakeFiles/cmTC_87765.dir/build.make CMakeFiles/cmTC_87765.dir/build
gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB'
Building CXX object CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
@@ -66,8 +66,8 @@ events:
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.2.0 (Debian 14.2.0-19)
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/'
/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
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/'
/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_87765.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccax2DBV.s
GNU C++17 (Debian 14.2.0-19) version 14.2.0 (x86_64-linux-gnu)
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
@@ -89,14 +89,14 @@ events:
/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
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/'
as -v --64 -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccax2DBV.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
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.'
Linking CXX executable cmTC_87765
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87765.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
@@ -109,14 +109,14 @@ events:
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
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.'
/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/ccWKqsp9.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_87765 /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_87765.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
/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/ccWKqsp9.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_87765 /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_87765.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'
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.'
/usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_87765
gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB'
exitCode: 0
-
@@ -157,13 +157,13 @@ events:
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: [Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB']
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: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_87765/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_87765.dir/build.make CMakeFiles/cmTC_87765.dir/build]
ignore line: [gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-uvcrgB']
ignore line: [Building CXX object CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_87765.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]
@@ -173,8 +173,8 @@ events:
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: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.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_87765.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccax2DBV.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: []
@@ -196,14 +196,14 @@ events:
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: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccax2DBV.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: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.']
ignore line: [Linking CXX executable cmTC_87765]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87765.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]
@@ -216,13 +216,13 @@ events:
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]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_87765' '-foffload-options=-l_GCC_m' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_87765.']
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/ccWKqsp9.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_87765 /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_87765.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=-fresolution=/tmp/ccWKqsp9.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -238,7 +238,7 @@ events:
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-o] ==> ignore
arg [cmTC_171b0] ==> ignore
arg [cmTC_87765] ==> 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]
@@ -251,7 +251,7 @@ events:
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 [CMakeFiles/cmTC_87765.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
@@ -262,7 +262,7 @@ events:
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]
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/ccWKqsp9.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_87765 /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_87765.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]
@@ -304,8 +304,8 @@ events:
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"
source: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa"
binary: "/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa"
cmakeVariables:
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -314,17 +314,17 @@ events:
variable: "CMAKE_HAVE_LIBC_PTHREAD"
cached: true
stdout: |
Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-cTQD8l'
Change Dir: '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa'
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'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_6041b/fast
/usr/bin/gmake -f CMakeFiles/cmTC_6041b.dir/build.make CMakeFiles/cmTC_6041b.dir/build
gmake[1]: Entering directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa'
Building CXX object CMakeFiles/cmTC_6041b.dir/src.cxx.o
/usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu++17 -o CMakeFiles/cmTC_6041b.dir/src.cxx.o -c /home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa/src.cxx
Linking CXX executable cmTC_6041b
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6041b.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/cmTC_6041b.dir/src.cxx.o -o cmTC_6041b
gmake[1]: Leaving directory '/home/ben/Desktop/engine/build/CMakeFiles/CMakeScratch/TryCompile-qBgyEa'
exitCode: 0
...
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -2,7 +2,7 @@
#include <glm/glm.hpp>
namespace planetarium {
namespace engine {
// -----------------------------------------------------------------------
// Camera
@@ -59,4 +59,4 @@ private:
static constexpr float kSmoothingSpeed = 6.0f;
};
} // namespace planetarium
} // namespace engine
+5 -5
View File
@@ -6,7 +6,7 @@
struct GLFWwindow;
namespace planetarium {
namespace engine {
// -----------------------------------------------------------------------
// Engine
@@ -15,9 +15,9 @@ namespace planetarium {
// 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:
// A generic reusable "engine" shell: window/context setup, the main loop,
// and camera input routing, with no game-specific logic baked in. Hook
// your own logic in via setUpdateCallback/setRenderCallback:
//
// Engine engine;
// engine.initialize(1600, 900, "My App");
@@ -74,4 +74,4 @@ private:
double lastFrameTime_ = 0.0;
};
} // namespace planetarium
} // namespace engine
+3 -3
View File
@@ -13,7 +13,7 @@
// 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
// Usage: call engine::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.
// -----------------------------------------------------------------------
@@ -68,7 +68,7 @@ typedef char GLchar;
typedef ptrdiff_t GLsizeiptr;
typedef ptrdiff_t GLintptr;
namespace planetarium::gl {
namespace engine::gl {
using PFNGLGENVERTEXARRAYS = void (*)(GLsizei, GLuint*);
using PFNGLBINDVERTEXARRAY = void (*)(GLuint);
@@ -143,4 +143,4 @@ extern PFNGLGENERATEMIPMAP glGenerateMipmap;
// required entry point could not be resolved.
bool loadGLFunctions();
} // namespace planetarium::gl
} // namespace engine::gl
+2 -2
View File
@@ -5,7 +5,7 @@
#include <glm/glm.hpp>
#include <vector>
namespace planetarium {
namespace engine {
// -----------------------------------------------------------------------
// Mesh
@@ -51,4 +51,4 @@ private:
bool isLineStrip_ = false;
};
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -5,7 +5,7 @@
#include <glm/glm.hpp>
#include <string>
namespace planetarium {
namespace engine {
// -----------------------------------------------------------------------
// Shader
@@ -42,4 +42,4 @@ private:
GLint locationOf(const std::string& name) const;
};
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -5,7 +5,7 @@
#include <algorithm>
#include <cmath>
namespace planetarium {
namespace engine {
Camera::Camera() { reset(); }
@@ -68,4 +68,4 @@ glm::mat4 Camera::viewMatrix() const {
return glm::lookAt(currentPosition_, currentFocus_, glm::vec3(0.0f, 1.0f, 0.0f));
}
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -7,7 +7,7 @@
#include <algorithm>
#include <cstdio>
namespace planetarium {
namespace engine {
Engine::~Engine() {
if (window_) {
@@ -145,4 +145,4 @@ void Engine::framebufferSizeCallback(GLFWwindow* window, int width, int height)
engine->framebufferHeight_ = height;
}
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -3,7 +3,7 @@
#include <GLFW/glfw3.h>
#include <cstdio>
namespace planetarium::gl {
namespace engine::gl {
PFNGLGENVERTEXARRAYS glGenVertexArrays = nullptr;
PFNGLBINDVERTEXARRAY glBindVertexArray = nullptr;
@@ -89,4 +89,4 @@ bool loadGLFunctions() {
return ok;
}
} // namespace planetarium::gl
} // namespace engine::gl
+2 -2
View File
@@ -3,7 +3,7 @@
#include <cmath>
#include <cstddef>
namespace planetarium {
namespace engine {
using namespace gl;
Mesh::~Mesh() { release(); }
@@ -213,4 +213,4 @@ Mesh Mesh::createOrbitCircle(int segments) {
return mesh;
}
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -6,7 +6,7 @@
#include <fstream>
#include <sstream>
namespace planetarium {
namespace engine {
using namespace gl;
namespace {
@@ -118,4 +118,4 @@ void Shader::setInt(const std::string& name, int i) const {
glUniform1i(locationOf(name), i);
}
} // namespace planetarium
} // namespace engine
+2 -2
View File
@@ -8,8 +8,8 @@
#include <cstdio>
#include <sys/stat.h>
using namespace planetarium;
using namespace planetarium::gl;
using namespace engine;
using namespace engine::gl;
namespace {
bool directoryExists(const std::string& path) {