Как получить CMake найти freeglut на Windows? - PullRequest
0 голосов
/ 18 марта 2019

Я работаю в Windows и хотел бы создать независимый от ОС проект в CMake. Я также хотел бы использовать OpenGL с freeglut.

My CMakeLists.txt пока выглядит так:

project (visualizer)

set(GLUT_INCLUDE_DIR "C:/Program Files (x86)/freeglut/include")
set(OPENGL_LIBRARY_DIR "C:/Program Files (x86)/freeglut/lib")

# GLUT
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
if(NOT GLUT_FOUND)
    message(ERROR "GLUT not found!")
endif(NOT GLUT_FOUND)

# OpenGL
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIRS})
if(NOT OPENGL_FOUND)
    message(ERROR "OPENGL not found!")
endif(NOT OPENGL_FOUND)

add_executable(visu visualizer.cpp)
target_link_libraries(visu ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})

Я должен явно определить пути для GLUT_INCLUDE_DIR и OPENGL_LIBRARY_DIR, иначе cmake выдаст мне эту ошибку:

Ошибка CMake в C: / Program Файлы / CMake / доля / CMake-3,14 / Модули / FindPackageHandleStandardArgs.cmake: 137 (сообщение): НЕ удалось найти GLUT (отсутствует: GLUT_INCLUDE_DIR)

Насколько я знаю, это должно быть обработано findglut.cmake. Я имею в виду, у меня нет опыта, чтобы выяснить, где искать библиотеку, но я думаю, что эта часть findglut.cmake должна это сделать:

if (WIN32)
  find_path( GLUT_INCLUDE_DIR NAMES GL/glut.h
    PATHS  ${GLUT_ROOT_PATH}/include )
  find_library( GLUT_glut_LIBRARY_RELEASE NAMES glut glut32 freeglut
    PATHS
    ${OPENGL_LIBRARY_DIR}
    ${GLUT_ROOT_PATH}/Release
    )
  find_library( GLUT_glut_LIBRARY_DEBUG NAMES freeglutd
    PATHS
    ${OPENGL_LIBRARY_DIR}
    ${GLUT_ROOT_PATH}/Debug
    )
  mark_as_advanced(GLUT_glut_LIBRARY_RELEASE GLUT_glut_LIBRARY_DEBUG)
  select_library_configurations(GLUT_glut)
else ()

Мой актуальный вопрос: Куда мне поместить файлы freeglut, чтобы CMake нашел их без каких-либо дополнительных усилий?

...