-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
34 lines (27 loc) · 1.32 KB
/
Copy pathCMakeLists.txt
File metadata and controls
34 lines (27 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
cmake_minimum_required(VERSION 3.20)
project(NeRF.cpp LANGUAGES CXX)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()
# Prefer a project-local LibTorch package if present; otherwise use the
# caller-provided CMAKE_PREFIX_PATH / Torch_DIR.
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libtorch/share/cmake/Torch")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libtorch")
endif()
# LibTorch's Caffe2 CMake still references the imported target CUDA::nvToolsExt,
# but CUDA 12+ ships NVTX header-only and dropped that standalone target. Provide
# an empty interface target so linking succeeds (NVTX calls are no-ops here).
find_package(CUDAToolkit QUIET)
if(NOT TARGET CUDA::nvToolsExt)
add_library(CUDA::nvToolsExt INTERFACE IMPORTED)
endif()
find_package(Torch REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
add_executable(NeRF.cpp src/main.cpp src/nerf.cpp src/renderer.cpp src/utils.cpp src/eval.cpp)
target_include_directories(NeRF.cpp PRIVATE include)
target_link_libraries(NeRF.cpp PRIVATE ${TORCH_LIBRARIES} nlohmann_json::nlohmann_json)