Files
learnopengl/CMakeLists.txt

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()