cmake_minimum_required(VERSION 3.15) project(XCVolumeRenderer VERSION 1.0 LANGUAGES CXX) # ============================================================ # Vcpkg Integration # ============================================================ set(VCPKG_ROOT "D:/vcpkg") set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(SOURCES main.cpp BattleFireDirect.cpp StaticMeshComponent.cpp Utils.cpp stbi/stb_image.cpp NanoVDBLoader.cpp ) set(HEADERS BattleFireDirect.h StaticMeshComponent.h Utils.h stbi/stb_image.h ) add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${HEADERS}) target_compile_definitions(${PROJECT_NAME} PRIVATE UNICODE _UNICODE) target_compile_options(${PROJECT_NAME} PRIVATE /utf-8 /MT) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${VCPKG_ROOT}/installed/x64-windows/include ) target_link_libraries(${PROJECT_NAME} PRIVATE d3d12.lib dxgi.lib d3dcompiler.lib winmm.lib kernel32.lib user32.lib ) if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_definitions(${PROJECT_NAME} PRIVATE _DEBUG) else() target_compile_definitions(${PROJECT_NAME} PRIVATE NDEBUG) endif() set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}" ) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/Res $/Res )