cmake_minimum_required(VERSION 3.5) set(VERSION_MAJOR 0) set(VERSION_MINOR 0) set(VERSION_PATCH 1) set(PROJECT_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") project(glw VERSION ${PROJECT_VERSION}) set(GLW_HEADERS buffer.h common.h shader.h vertex_descriptor.h texture.h framebuffer.h texture_array.h debug.h timer.h ) # Set CPP Standard set(CMAKE_CXX_STANDARD 23) set(CMAKE_C_STANDARD 23) # Find Dependencies find_package(glm REQUIRED) find_package(GLEW REQUIRED) find_package(OpenGL REQUIRED COMPONENTS OpenGL) add_subdirectory(open-cpp-utils) add_library(glw INTERFACE ${GLW_HEADERS} ) target_link_libraries(glw INTERFACE Freetype::Freetype GLEW::GLEW OpenGL::GL open-cpp-utils ) # Testing Framework ---------------------------------------------------------------------------------------------------- if (GTest_FOUND) find_package(GTest) add_executable(glw-test) target_link_libraries(glw-test PRIVATE GTest::gtest glw ) endif () # DOXYGEN ============================================================================================================== # https://vicrucann.github.io/tutorials/quick-cmake-doxygen/ find_package(Doxygen) if(DOXYGEN_FOUND) get_filename_component(DOXYGEN_PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) set(DOXYGEN_CONFIG_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) set(DOXYGEN_CONFIG_OUT ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile) configure_file(${DOXYGEN_CONFIG_IN} ${DOXYGEN_CONFIG_OUT} @ONLY) message("Doxygen Build Started.") if(WIN32) add_custom_target(glw-documentation ALL COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG_OUT} COMMAND start firefox "${CMAKE_CURRENT_SOURCE_DIR}/Documentation/html/index.html" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating Doxygen Documentation" VERBATIM) else() add_custom_target(glw-documentation ALL COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG_OUT} COMMAND firefox "${CMAKE_CURRENT_SOURCE_DIR}/Documentation/html/index.html" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating Doxygen Documentation" VERBATIM) endif() else() message("Doxygen not found.") endif()