2022-03-31 16:01:08 -04:00
|
|
|
################################################################################
|
|
|
|
## Author: Shaun Reed ##
|
2025-07-05 13:38:47 -04:00
|
|
|
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
|
2022-03-31 16:01:08 -04:00
|
|
|
## ##
|
|
|
|
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
|
|
|
|
################################################################################
|
2021-05-24 17:01:01 -04:00
|
|
|
|
|
|
|
# Define CMake version
|
|
|
|
cmake_minimum_required(VERSION 3.15)
|
|
|
|
|
2025-07-05 13:38:47 -04:00
|
|
|
include(FetchContent)
|
2021-05-24 17:01:01 -04:00
|
|
|
project(
|
|
|
|
#[[NAME]] OpenGL-Cmake
|
|
|
|
DESCRIPTION "Example project for building OpenGL projects with CMake"
|
|
|
|
LANGUAGES CXX
|
|
|
|
)
|
2025-07-05 13:38:47 -04:00
|
|
|
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
|
2021-05-24 17:01:01 -04:00
|
|
|
|
2022-03-31 16:01:08 -04:00
|
|
|
add_library(graphics-lib-opengl src/lib-opengl-test.cpp)
|
|
|
|
target_include_directories(graphics-lib-opengl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
2021-05-24 17:01:01 -04:00
|
|
|
|
|
|
|
# Find OpenGL package
|
2025-07-05 13:38:47 -04:00
|
|
|
find_package(OpenGL)
|
|
|
|
if (NOT OPENGL_FOUND)
|
2021-05-24 17:01:01 -04:00
|
|
|
message(
|
2025-07-05 13:38:47 -04:00
|
|
|
"[Klips] Error: CMake was unable to find OpenGL.\n"
|
|
|
|
"On Ubuntu 24.04 OpenGL can be installed using apt:\n"
|
|
|
|
" sudo apt install libopengl-dev libgl1-mesa-dev mesa-common-dev libglu1-mesa-dev\n"
|
2021-05-24 17:01:01 -04:00
|
|
|
)
|
|
|
|
endif()
|
2025-07-05 13:38:47 -04:00
|
|
|
# Link opengl-test executable to OpenGL
|
|
|
|
message(STATUS "[Klips] Found OpenGL: ${OPENGL_INCLUDE_DIR}")
|
|
|
|
target_include_directories(graphics-lib-opengl PUBLIC ${OPENGL_INCLUDE_DIR})
|
|
|
|
target_link_libraries(graphics-lib-opengl PUBLIC ${OPENGL_LIBRARIES})
|
2021-05-24 17:01:01 -04:00
|
|
|
|
2025-07-05 13:38:47 -04:00
|
|
|
find_package(GLUT QUIET)
|
|
|
|
if(NOT GLUT_FOUND)
|
2021-05-24 17:01:01 -04:00
|
|
|
message(
|
2025-07-05 13:38:47 -04:00
|
|
|
FATAL_ERROR
|
|
|
|
"[Klips] Failed to fetch GLUT. Could not find dependency X11 input libraries.\n"
|
|
|
|
"On Ubuntu 24.04 Xi can be installed using apt:\n"
|
|
|
|
" sudo apt install libxi-dev\n"
|
|
|
|
"Alternatively, on Ubuntu 24.04 GLUT can be installed with apt:\n"
|
|
|
|
" sudo apt install freeglut3-dev\n"
|
2021-05-24 17:01:01 -04:00
|
|
|
)
|
|
|
|
endif()
|
2025-07-05 13:38:47 -04:00
|
|
|
message(STATUS "[Klips] Found GLUT: ${GLUT_INCLUDE_DIR}")
|
|
|
|
# Link lib-opengl-test executable to GLUT
|
|
|
|
target_include_directories(graphics-lib-opengl PUBLIC ${GLUT_INCLUDE_DIR})
|
|
|
|
target_link_libraries(graphics-lib-opengl PUBLIC ${GLUT_LIBRARIES})
|
2021-05-24 17:36:57 -04:00
|
|
|
|
|
|
|
# Add test executable
|
2022-03-31 16:01:08 -04:00
|
|
|
add_executable(graphics-cmake-opengl apps/test-gl.cpp)
|
|
|
|
target_link_libraries(graphics-cmake-opengl PRIVATE graphics-lib-opengl)
|
|
|
|
target_include_directories(graphics-cmake-opengl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
|