From e47a8008a30a7f4632e9829c5e9f15d2eb53c1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Thu, 13 Nov 2025 22:44:42 +0100 Subject: [PATCH] chore(CMakeLists): add default config --- CMakeLists.txt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b22a45e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,52 @@ +cmake_minimum_required(VERSION 3.10) +project(learnopengl) + +set(CMAKE_CXX_STANDARD 23) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +file(GLOB_RECURSE CPP_SOURCES CONFIGURE_DEPENDS src/*.cpp) +file(GLOB_RECURSE CPP_HEADERS CONFIGURE_DEPENDS src/*.hpp) +add_executable(main ${CPP_SOURCES} ${CPP_HEADERS}) + +# GLFW +set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) +set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) +set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) +add_subdirectory(lib/glfw) + +# GLEW +add_definitions(-DGLEW_STATIC) +include_directories(lib/glew/include) +add_library(glew STATIC lib/glew/src/glew.c) +target_include_directories(glew PUBLIC lib/glew/include) +target_compile_definitions(glew PRIVATE GLEW_STATIC) + +# GLM +add_subdirectory(lib/glm) + +target_link_libraries(main PRIVATE glfw glew glm) + +find_package(OpenGL REQUIRED) +target_link_libraries(main PRIVATE OpenGL::GL) + +if(APPLE) + target_link_libraries(main PRIVATE + "-framework Cocoa" + "-framework IOKit" + "-framework CoreVideo" + ) +elseif(WIN32) + target_link_libraries(main PRIVATE + opengl32 + gdi32 + user32 + shell32 + ) +elseif(UNIX) + target_link_libraries(main PRIVATE + X11 + pthread + dl + m + ) +endif() \ No newline at end of file