Я использую эти два файла cmake для создания моих проектов OpenGL, и все они работают хорошо.
Во-первых, основной CMakeLists.txt
blockquote>cmake_minimum_required(VERSION 3.1.0) project(project_name) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/") find_package(OpenGL REQUIRED) find_package(FREEGLUT REQUIRED) find_package(GLEW REQUIRED) if(NOT ${OPENGL_FOUND}) message("OPENGL not found") endif() include_directories( ${PROJECT_SOURCE_DIR} ${FREEGLUT_INCLUDE_DIR} ${GLEW_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ) message(${OPENGL_INCLUDE_DIR}) add_executable(${PROJECT_NAME} ${PROJECT_SOURCE_DIR}/filename.cpp) target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARY} ${FREEGLUT_LIBRARY} ${GLEW_LIBRARY} )
Во-вторых, файл cmake find GLUT в каталоге CMakeModules
blockquote># Try to find the FREEGLUT library # # FREEGLUT_INCLUDE_DIR # FREEGLUT_LIBRARY # FREEGLUT_FOUND FIND_PATH( FREEGLUT_INCLUDE_DIR GL/freeglut.h GL/gl.h GL/glu.h GL/glew.h ${CMAKE_INCLUDE_PATH} $ENV{include} ${OPENGL_INCLUDE_DIR} /usr/include /usr/local/include ) SET(STORE_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK}) SET(CMAKE_FIND_FRAMEWORK NEVER) FIND_LIBRARY( FREEGLUT_LIBRARY NAMES freeglut_static freeglut glut GL PATH /opt/local/lib ${CMAKE_LIBRARY_PATH} $ENV{lib} /usr/lib /usr/local/lib ) SET(CMAKE_FIND_FRAMEWORK ${STORE_CMAKE_FIND_FRAMEWORK}) IF (FREEGLUT_INCLUDE_DIR AND FREEGLUT_LIBRARY) SET(FREEGLUT_FOUND TRUE) ENDIF (FREEGLUT_INCLUDE_DIR AND FREEGLUT_LIBRARY) IF (FREEGLUT_FOUND) IF (NOT FREEGLUT_FIND_QUIETLY) MESSAGE(STATUS "Found FREEGLUT: ${FREEGLUT_LIBRARY}") ENDIF (NOT FREEGLUT_FIND_QUIETLY) ELSE (FREEGLUT_FOUND) IF (FREEGLUT_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Could not find FREEGLUT") ENDIF (FREEGLUT_FIND_REQUIRED) ENDIF (FREEGLUT_FOUND)