cmake_minimum_required(VERSION 3.10) project(NBGraphics VERSION 0.1) include(GNUInstallDirs) include(CMakePackageConfigHelpers) set(GLAD_PATH ${NBENGINE_ROOT}/../glad/) get_filename_component(GLAD_PATH ${GLAD_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) if (NB_MONITOR_OPENGL_CALLS) add_compile_definitions(_NB_MONITOR_OPENGL_CALLS) endif() 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) add_dependencies(NBGraphics NBCore) add_dependencies(NBGraphics glfw) target_link_libraries(NBGraphics PUBLIC glfw PUBLIC NBCore ) target_include_directories(NBGraphics PUBLIC "$" PUBLIC "$" PUBLIC "${GLAD_PATH}/include" ) export( TARGETS NBGraphics FILE "${CMAKE_BINARY_DIR}/cmake/NBGraphicsTargets.cmake" NAMESPACE NBEngine:: ) configure_package_config_file( "NBGraphicsConfig.cmake.in" "${CMAKE_BINARY_DIR}/cmake/NBGraphicsConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake PATH_VARS CMAKE_INSTALL_LIBDIR ) write_basic_package_version_file( "${CMAKE_BINARY_DIR}/cmake/NBGraphicsConfigVersion.cmake" COMPATIBILITY AnyNewerVersion ) if (NBENGINE_INSTALL) message("Installing NBGraphics to ${CMAKE_INSTALL_PREFIX}") install( TARGETS NBGraphics EXPORT NBGraphicsTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib INCLUDES DESTINATION include ) install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/NBGraphics" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp" ) install( EXPORT NBGraphicsTargets DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake NAMESPACE NBEngine:: ) install(FILES "${CMAKE_BINARY_DIR}/cmake/NBGraphicsConfig.cmake" "${CMAKE_BINARY_DIR}/cmake/NBGraphicsConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/CMake" ) endif() if (NB_BUILD_TESTS) add_subdirectory(./tests) endif()