mirror of
https://github.com/guezoloic/LearnOpenGL.git
synced 2026-01-25 12:34:15 +00:00
57 lines
1.3 KiB
CMake
57 lines
1.3 KiB
CMake
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_include_directories(main PRIVATE inc/)
|
|
|
|
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() |