freeglut provides CMake targets: find_package(FreeGLUT CONFIG REQUIRED) target_link_libraries(main PRIVATE $,FreeGLUT::freeglut,FreeGLUT::freeglut_static>) freeglut is compatible with built-in CMake targets: find_package(GLUT REQUIRED) target_link_libraries(main PRIVATE GLUT::GLUT)