-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
61 lines (50 loc) · 1.67 KB
/
CMakeLists.txt
File metadata and controls
61 lines (50 loc) · 1.67 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
cmake_minimum_required(VERSION 3.15)
set(CMAKE_DISABLE_FIND_PACKAGE_Doxygen TRUE)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -allow-unsupported-compiler")
project(PathtracerBenchmark LANGUAGES CXX)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Vulkan REQUIRED)
option(ENABLE_CUDA "Enable CUDA backend" ON)
message(STATUS "ENABLE_CUDA = ${ENABLE_CUDA}")
if(ENABLE_CUDA)
enable_language(CUDA)
find_package(CUDAToolkit)
endif()
add_subdirectory(vendor/glfw)
include_directories(
vendor/glfw/include
vendor/glm
vendor/io
${Vulkan_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/resources/kernel
)
file(GLOB_RECURSE SOURCES "src/*.cpp")
if(CUDAToolkit_FOUND AND ENABLE_CUDA)
file(GLOB_RECURSE CUDA_SOURCES "src/*.cu")
list(APPEND SOURCES ${CUDA_SOURCES})
add_compile_definitions(HAS_CUDA)
add_compile_definitions(NOMINMAX)
add_compile_definitions(VK_USE_PLATFORM_WIN32_KHR)
endif()
add_executable(PathtracerBenchmark ${SOURCES})
target_link_libraries(PathtracerBenchmark Vulkan::Vulkan glfw)
if(CUDAToolkit_FOUND AND ENABLE_CUDA)
set_target_properties(PathtracerBenchmark PROPERTIES
CUDA_ARCHITECTURES native
)
target_compile_options(PathtracerBenchmark PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:
--use_fast_math
-Xptxas -v
-lineinfo
--maxrregcount=64
-allow-unsupported-compiler
-Wno-deprecated-gpu-targets
>
)
target_link_libraries(PathtracerBenchmark CUDA::cudart)
target_include_directories(PathtracerBenchmark PRIVATE ${CUDAToolkit_INCLUDE_DIRS})
endif()