Repository navigation
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
85 lines (66 loc) · 2.35 KB
/
Copy pathCMakeLists.txt
File metadata and controls
85 lines (66 loc) · 2.35 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
cmake_minimum_required(VERSION 3.19)
Project(soltrace_ui VERSION 4.0.0)
include(cmake/CPM.cmake)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
if(MSVC)
add_compile_options("$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANG_AND_ID:CXX,MSVC>>:/bigobj>")
endif()
option(SOLTRACE_BUILD_GUI "Build the GUI parts of Soltrace" ON)
option(
SOLTRACE_BUILD_CORETRACE
"Legacy ray tracing backend including the strace executable"
OFF)
option(SOLTRACE_BUILD_EMBREE_SUPPORT "Build Embree support for ray tracing" OFF)
option(SOLTRACE_BUILD_OPTIX_SUPPORT "Build the OptiX support for ray tracing" OFF)
option(SOLTRACE_BUILD_PERF_TEST "Build performance tests (not built for debug)" OFF)
option(SOLTRACE_BUILD_TESTS "Build SolTrace test targets" ON)
option(SOLTRACE_ENABLE_ASAN "Enable AddressSanitizer for supported builds" OFF)
option(FULL_FIELD_VALIDATION_TEST "Include full field validation tests" OFF)
if(SOLTRACE_ENABLE_ASAN)
if(MSVC)
message(WARNING "SOLTRACE_ENABLE_ASAN is not yet supported with MSVC or GCC")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang")
message(STATUS "Enabling address sanitizer")
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-fsanitize=address>
$<$<COMPILE_LANGUAGE:C,CXX>:-fno-omit-frame-pointer>
)
add_link_options(-fsanitize=address)
else()
message(WARNING "SOLTRACE_ENABLE_ASAN is only supported with Clang")
endif()
endif()
if(SOLTRACE_BUILD_TESTS)
enable_testing()
endif()
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/SolTraceConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/SolTraceConfig.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SolTrace"
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/SolTraceConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/SolTraceConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/SolTraceConfigVersion.cmake"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindOptiX.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SolTrace"
)
install(EXPORT SolTraceTargets
FILE SolTraceTargets.cmake
NAMESPACE SolTrace::
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/SolTrace"
)
add_subdirectory(coretrace)
if(SOLTRACE_BUILD_TESTS)
add_subdirectory(google-tests)
endif()
if(SOLTRACE_BUILD_GUI)
add_subdirectory(gui)
endif()