| cmake_minimum_required(VERSION 3.25) | |
| project(D3D12MemoryAllocator VERSION 3.2.0) | |
| set_property(GLOBAL PROPERTY USE_FOLDERS ON) | |
| find_package(Doxygen) | |
| option(BUILD_DOCUMENTATION "Create and install the HTML-based API documentation (requires Doxygen)" OFF) | |
| option(BUILD_SHARED_LIBS "Build D3D12 Memory Allocator shared library" OFF) | |
| if(BUILD_DOCUMENTATION) | |
| if(DOXYGEN_FOUND) | |
| # set input and output files | |
| set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/src/Doxyfile) | |
| set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) | |
| # request to configure the file | |
| configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY) | |
| # note the option ALL which allows to build the docs together with the application | |
| add_custom_target( doc_doxygen ALL | |
| COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} | |
| COMMENT "Generating API documentation with Doxygen" | |
| VERBATIM ) | |
| else() | |
| message("Doxygen need to be installed to generate the doxygen documentation") | |
| endif() | |
| endif() | |
| # D3D12MemoryAllocator contains an sample application which is not build by default | |
| option(D3D12MA_BUILD_SAMPLE "Build D3D12MemoryAllocator sample application" OFF) | |
| message(STATUS "D3D12MA_BUILD_SAMPLE = ${D3D12MA_BUILD_SAMPLE}") | |
| add_subdirectory(src) |