Skip to content

Instantly share code, notes, and snippets.

@danielpclin
Last active June 22, 2020 13:00
Show Gist options
  • Select an option

  • Save danielpclin/d76cfb054e4ad9ad99ff1ca61257f567 to your computer and use it in GitHub Desktop.

Select an option

Save danielpclin/d76cfb054e4ad9ad99ff1ca61257f567 to your computer and use it in GitHub Desktop.
OpenGL with GLEW + GLFW cmake file
cmake_minimum_required(VERSION 3.16)
include(ExternalProject)
project(OpenGL_Practice)
set(CMAKE_CXX_STANDARD 14)
add_executable(OpenGL_Practice main.cpp)
# GLEW
find_package(OpenGL REQUIRED)
set(GLEW_DIR dependencies/glew)
ExternalProject_Add(
GLEW
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/glew"
URL "https://sourceforge.net/projects/glew/files/glew/2.2.0/glew-2.2.0.zip/download"
SOURCE_SUBDIR "build/cmake"
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/${GLEW_DIR}"
)
add_library(GLEW_LIB STATIC IMPORTED REQUIRED)
set_target_properties(GLEW_LIB PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/${GLEW_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}glew32${CMAKE_STATIC_LIBRARY_SUFFIX})
include_directories(${PROJECT_NAME} ${GLEW_DIR}/include)
target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} GLEW_LIB)
add_dependencies(${PROJECT_NAME} GLEW)
# GLEW END
# GLFW
set(GLFW_DIR dependencies/glfw)
ExternalProject_Add(
GLFW
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/glfw"
URL "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip"
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${PROJECT_SOURCE_DIR}/${GLFW_DIR}"
)
add_library(GLFW_LIB STATIC IMPORTED REQUIRED)
set_target_properties(GLFW_LIB PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/${GLFW_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}glfw3${CMAKE_STATIC_LIBRARY_SUFFIX})
include_directories(${PROJECT_NAME} ${GLFW_DIR}/include)
target_link_libraries(${PROJECT_NAME} GLFW_LIB)
add_dependencies(${PROJECT_NAME} GLFW)
# GLFW END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment