mirror of
https://github.com/guezoloic/LearnOpenGL.git
synced 2026-01-25 06:34:14 +00:00
chore(CMakeLists): add default config
This commit is contained in:
52
CMakeLists.txt
Normal file
52
CMakeLists.txt
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user