diff --git a/CMakeLists.txt b/CMakeLists.txt index bc9d7ed..baa96f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.27) -project(HelloOpenGL) +project(HelloGLEW) # Define platform-specific paths and libraries if(WIN32) @@ -8,11 +8,17 @@ if(WIN32) include_directories(${GLFW_PATH}/include) link_directories(${GLFW_PATH}/lib-vc2022) + # GLEW + set(GLEW_PATH "C:/libs/glew-2.2.0") + include_directories(${GLEW_PATH}/include) + link_directories(${GLEW_PATH}/lib) + # OpenGL find_package(OpenGL REQUIRED) elseif(UNIX) find_package(PkgConfig REQUIRED) pkg_search_module(GLFW REQUIRED glfw3) + find_package(GLEW REQUIRED) find_package(OpenGL REQUIRED) elseif(APPLE) message(FATAL_ERROR "Linux and macOS platforms are not supported yet.") @@ -22,9 +28,12 @@ add_executable(${PROJECT_NAME} hello.cpp) if(WIN32) target_link_libraries(${PROJECT_NAME} glfw3) + target_link_libraries(${PROJECT_NAME} glew) + target_include_directories(${PROJECT_NAME} PRIVATE ${GLEW_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} OpenGL::GL) elseif(UNIX) include_directories(${GLFW_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${GLFW_LIBRARIES}) + target_link_libraries(${PROJECT_NAME} GLEW::GLEW) target_link_libraries(${PROJECT_NAME} OpenGL::GL) endif() diff --git a/hello.cpp b/hello.cpp index 047e8da..50b857e 100644 --- a/hello.cpp +++ b/hello.cpp @@ -24,15 +24,18 @@ // To compile on Arch Linux // // Install dependencies -// sudo pacman -S glfw mesa +// sudo pacman -S glfw mesa glew // // Build // cmake .. // cmake --build . +#include #include #include +#include + int main() { if (!glfwInit()) @@ -47,6 +50,13 @@ int main() glfwMakeContextCurrent(window); + glewExperimental = GL_TRUE; + if (glewInit() != GLEW_OK) + { + std::cerr << "Failed to initialize GLEW" << std::endl; + return -1; + } + while (!glfwWindowShouldClose(window)) { glClearColor(1.0f, 0.0f, 0.0f, 1.0f);