Freeglut-3.0.0 est construit avec cmake (makefiles MinGW) et mingw et ensuite installé avec succès avec mingw32-make install
à C:/Program Files (x86)/freeglut
.CMake ne peut pas trouver freeglut-3.0.0
Mon CMakeLists.txt
est:
cmake_minimum_required(VERSION 3.7)
project(math_tests)
set(TESTS_SOURCES tests.cpp gl_core_3_3.c)
set(CMAKE_CXX_STANDARD 11)
# 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})
link_directories(${OpenGL_LIBRARY_DIRS})
add_definitions(${OpenGL_DEFINITIONS})
if(NOT OPENGL_FOUND)
message(ERROR "OPENGL not found!")
endif(NOT OPENGL_FOUND)
add_executable(tests ${TESTS_SOURCES})
target_link_libraries(tests math ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
Maintenant erreur imprime CMake: Could NOT find GLUT (missing: GLUT_glut_LIBRARY).
Je ne peux pas comprendre ce que je fais mal.
Merci! Ça a marché. Mais comment l'utilisateur va spécifier ce chemin (puisque FindGLUT aura besoin de ses variables au lieu de OPENG_LIBRARY_DIR au cas où il ne trouvera pas GLUT)? Aussi, je construis aussi pour Linux, et CmakeLists.txt devrait fonctionner sur les deux plates-formes. Actuellement, il définit OPENGL_LIBRARY_DIR dans l'instruction 'if (WIN32)'. – slavust
pour l'intérêt de multiplateforme, mieux vaut définir [CMAKE_PREFIX_PATH] (https://cmake.org/cmake/help/v3.4/variable/CMAKE_PREFIX_PATH.html#variable:CMAKE_PREFIX_PATH) à un parent de '' '" lib/< freeglutlibrary> "' '', comme '" c:/program files (x86)/freeglut "' dans votre scénario spécifique. Il est préférable d'éviter tout 'SET' spécifique dans votre cmake, mais laissez l'utilisateur final définir le préfixe approprié avec' -DCMAKE_PREFIX_PATH = 'au moment de la configuration. Peut-être que l'utilisation d'OPTIONS pour permettre à enduser de définir un chemin spécifique vers freeglut serait également judicieuse (et la valeur de l'option serait ajoutée à 'CMAKE_PREFIX_PATH' par votre script) –
Oublié de dire que pour Linux, vous n'avez rien à configurer pour la découverte de librairie freeglut, il devrait simplement fonctionner sans paramètres supplémentaires –