From dbe70d0ae7ccfa05961a13a8bdc30de468b13bdc Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Thu, 23 Jan 2025 15:26:32 +0100 Subject: [PATCH] Fixing vcpkg hopefully --- .gitmodules | 3 +++ CMakeLists.txt | 17 ++++++++--------- CMakeSettings.json | 9 +++++---- external/vcpkg | 1 + src/CMakeLists.txt | 3 +++ src/main.cpp | 6 ++++++ src/scene/CMakeLists.txt | 4 ++++ src/scene/Scene.cpp | 1 + src/scene/Scene.h | 6 ++++++ src/window/CMakeLists.txt | 4 ++++ src/window/Window.cpp | 17 +++++++++++++++++ src/window/Window.h | 12 ++++++++++++ vcpkg.json | 2 +- 13 files changed, 71 insertions(+), 14 deletions(-) create mode 100644 .gitmodules create mode 160000 external/vcpkg create mode 100644 src/scene/CMakeLists.txt create mode 100644 src/scene/Scene.cpp create mode 100644 src/scene/Scene.h create mode 100644 src/window/CMakeLists.txt create mode 100644 src/window/Window.cpp create mode 100644 src/window/Window.h diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..63ff859 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/vcpkg"] + path = external/vcpkg + url = https://github.com/microsoft/vcpkg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index c4720bf..83dc86c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,5 @@ -cmake_minimum_required(VERSION 3.7...3.23) -if(${CMAKE_VERSION} VERSION_LESS 3.12) - cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) -endif() +cmake_minimum_required(VERSION 3.28) set(CMAKE_CXX_STANDARD 23) -# Handle superbuild first -option (USE_SUPERBUILD "Whether or not a superbuild should be invoked" ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_COMPILE_WARNING_AS_ERROR OFF) @@ -12,8 +7,7 @@ set(CMAKE_INSTALL_MESSAGE LAZY) set(BUILD_SHARED_LIBS OFF) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - -set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake) +set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/external/vcpkg/scripts/buildsystems/vcpkg.cmake) project(RayTracer) @@ -29,8 +23,13 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/build) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_SOURCE_DIR}/build) -find_package(Assimp CONFIG REQUIRED) +find_package(glfw3 CONFIG REQUIRED) +find_package(glm CONFIG REQUIRED) +find_package(Ktx CONFIG REQUIRED) add_executable(RayTracer "") +target_link_libraries(RayTracer PUBLIC glfw) +target_link_libraries(RayTracer PUBLIC glm::glm) +target_link_libraries(RayTracer PUBLIC KTX::ktx) add_subdirectory(src/) \ No newline at end of file diff --git a/CMakeSettings.json b/CMakeSettings.json index 385f27e..7dc129b 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -1,15 +1,16 @@ { "configurations": [ { - "name": "x64-Debug", - "generator": "Visual Studio 17 2022 Win64", + "name": "Debug", + "generator": "Ninja", "configurationType": "Debug", "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}\\build\\${name}", + "buildRoot": "${projectDir}\\bin\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", "cmakeCommandArgs": "", "buildCommandArgs": "", - "ctestCommandArgs": "" + "ctestCommandArgs": "", + "cmakeExecutable": "C:/Program Files/CMake/bin/cmake.exe" } ] } \ No newline at end of file diff --git a/external/vcpkg b/external/vcpkg new file mode 160000 index 0000000..01be99f --- /dev/null +++ b/external/vcpkg @@ -0,0 +1 @@ +Subproject commit 01be99fec01f777c4113ceea192a45115c69cdb7 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 187ee1c..b42a2ac 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,6 @@ target_sources(RayTracer PRIVATE main.cpp) + +add_subdirectory(scene/) +add_subdirectory(window/) diff --git a/src/main.cpp b/src/main.cpp index ffc6dab..90d2268 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,9 @@ +#include "window/Window.h" + int main() { + Window w(1920, 1080); + while (true) { + w.update(); + } return 0; } \ No newline at end of file diff --git a/src/scene/CMakeLists.txt b/src/scene/CMakeLists.txt new file mode 100644 index 0000000..3319d65 --- /dev/null +++ b/src/scene/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(RayTracer + PRIVATE + Scene.h + Scene.cpp) \ No newline at end of file diff --git a/src/scene/Scene.cpp b/src/scene/Scene.cpp new file mode 100644 index 0000000..85e7c07 --- /dev/null +++ b/src/scene/Scene.cpp @@ -0,0 +1 @@ +#include "Scene.h" \ No newline at end of file diff --git a/src/scene/Scene.h b/src/scene/Scene.h new file mode 100644 index 0000000..11b06cc --- /dev/null +++ b/src/scene/Scene.h @@ -0,0 +1,6 @@ +#pragma once + +class Scene +{ + +}; \ No newline at end of file diff --git a/src/window/CMakeLists.txt b/src/window/CMakeLists.txt new file mode 100644 index 0000000..ddcf5a0 --- /dev/null +++ b/src/window/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(RayTracer + PRIVATE + Window.h + Window.cpp) \ No newline at end of file diff --git a/src/window/Window.cpp b/src/window/Window.cpp new file mode 100644 index 0000000..8306334 --- /dev/null +++ b/src/window/Window.cpp @@ -0,0 +1,17 @@ +#include "Window.h" + +Window::Window(int width, int height) +{ + glfwInit(); + window = glfwCreateWindow(width, height, "RayTracer", nullptr, nullptr); +} + +Window::~Window() +{ +} + +void Window::update() +{ + glfwPollEvents(); + glfwSwapBuffers(window); +} diff --git a/src/window/Window.h b/src/window/Window.h new file mode 100644 index 0000000..8919ef3 --- /dev/null +++ b/src/window/Window.h @@ -0,0 +1,12 @@ +#pragma once +#include + +class Window +{ +public: + Window(int width, int height); + ~Window(); + void update(); +private: + GLFWwindow* window; +}; \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index f7833c5..c217340 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,3 +1,3 @@ { - "dependencies": ["assimp", "glfw3", "glm", "stb", "fmt"] + "dependencies": ["ktx", "glfw3", "glm", "stb", "fmt"] } \ No newline at end of file