cmake_minimum_required(VERSION 3.10) project(NBGraphics VERSION 0.1) set(GLAD_PATH ${NBENGINE_ROOT}/../glad/) set(STBIMAGE_PATH ${NBENGINE_ROOT}/../stbi_image) get_filename_component(GLAD_PATH ${GLAD_PATH} ABSOLUTE) get_filename_component(STBIMAGE_PATH ${STBIMAGE_PATH} ABSOLUTE) set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}" "C:/Program Files (x86)/GLFW/lib/cmake/glfw3/" ) find_package(OpenGL REQUIRED) find_package(glfw3 REQUIRED) set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) if (NB_BUILD_TESTS) set(GLFW_BUILD_TESTS ON CACHE BOOL "" FORCE) else() set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) endif() set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) toAbsolutePath(NB_GRAPHICS_SOURCE ./src/Buffers.cpp ./src/FrameBuffers.cpp ./src/Image.cpp ./src/OGLObjects.cpp ./src/ProgramPipeline.cpp ./src/Textures.cpp ./src/VertexArray.cpp ./src/Window.cpp ) toAbsolutePath(NB_GRAPHICS_INCLUDE ./include/NBGraphics/Buffers.hpp ./include/NBGraphics/Camera.hpp ./include/NBGraphics/Draw.hpp ./include/NBGraphics/FrameBuffers.hpp ./include/NBGraphics/GLLoad.hpp ./include/NBGraphics/Image.hpp ./include/NBGraphics/OGLObjects.hpp ./include/NBGraphics/ProgramPipeline.hpp ./include/NBGraphics/Textures.hpp ./include/NBGraphics/VertexArray.hpp ./include/NBGraphics/Window.hpp ) set(NB_GRAPHICS_SOURCE ${NB_GRAPHICS_SOURCE} PARENT_SCOPE) set(NB_GRAPHICS_INCLUDE ${NB_GRAPHICS_INCLUDE} PARENT_SCOPE) add_library(NBGraphics ${NB_GRAPHICS_SOURCE} ${GLAD_PATH}/src/glad.c ) add_library(NBEngine::Graphics ALIAS NBGraphics) target_link_libraries(NBGraphics PUBLIC glfw PUBLIC NBCore ) get_target_property(GLFW_INTERFACE_INCLUDES glfw INTERFACE_INCLUDE_DIRECTORIES) #include_directories(${GLFW_INTERFACE_INCLUDES}) target_include_directories(NBGraphics PUBLIC "$" PUBLIC "$" PUBLIC "${STBIMAGE_PATH}" PUBLIC "${GLAD_PATH}/include" ) if (NBENGINE_INSTALL) message("Installing NBGraphics to ${CMAKE_INSTALL_PREFIX}") include(GNUInstallDirs) include(CMakePackageConfigHelpers) install( TARGETS NBGraphics EXPORT NBGraphicsTargets ) install( DIRECTORY "${PROJECT_SOURCE_DIR}/include/NBGraphics" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp" ) install( EXPORT NBGraphicsTargets DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake NAMESPACE NBEngine:: ) configure_package_config_file( "NBGraphicsConfig.cmake.in" "NBGraphicsConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake PATH_VARS CMAKE_INSTALL_LIBDIR ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfigVersion.cmake" COMPATIBILITY AnyNewerVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/NBGraphicsConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake" ) endif() if (NB_BUILD_TESTS) add_subdirectory(./tests) endif()