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 target_include_directories(main PRIVATE lib/glm) # STB target_include_directories(main PRIVATE lib/stb) target_link_libraries(main PRIVATE glfw glew) 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()