Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
imjiangjun
pbrt-v4
提交
cd82b6fd
P
pbrt-v4
项目概览
imjiangjun
/
pbrt-v4
12 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pbrt-v4
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
cd82b6fd
编写于
1月 04, 2021
作者:
M
Matt Pharr
提交者:
GitHub
1月 04, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #73 from pierremoreau/cmake_improvements
CMake improvements
上级
a51b4a00
15afa444
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
89 addition
and
72 deletion
+89
-72
CMakeLists.txt
CMakeLists.txt
+73
-63
src/pbrt/util/check.h
src/pbrt/util/check.h
+16
-9
未找到文件。
CMakeLists.txt
浏览文件 @
cd82b6fd
...
...
@@ -8,7 +8,7 @@ set (CMAKE_CXX_STANDARD 17)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
# For sanitizers
set
(
CMAKE_MODULE_PATH
"
${
CMAKE_SOURCE_DIR
}
/cmake"
${
CMAKE_MODULE_PATH
}
)
list
(
PREPEND CMAKE_MODULE_PATH
"
${
CMAKE_SOURCE_DIR
}
/cmake"
)
# Configuration options
...
...
@@ -75,7 +75,11 @@ find_package ( Threads )
set_property
(
GLOBAL PROPERTY USE_FOLDERS ON
)
if
(
MSVC
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_IS_MSVC _CRT_SECURE_NO_WARNINGS
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_IS_MSVC"
"_CRT_SECURE_NO_WARNINGS"
)
endif
()
if
(
PBRT_FLOAT_AS_DOUBLE
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_FLOAT_AS_DOUBLE"
)
endif
()
#######################################
...
...
@@ -89,14 +93,14 @@ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR}/src/ext)
# os/compiler-specific stuff
if
(
CMAKE_SYSTEM_NAME STREQUAL Windows
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_IS_WINDOWS NOMINMAX
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_IS_WINDOWS"
"NOMINMAX"
)
elseif
(
CMAKE_SYSTEM_NAME STREQUAL Darwin
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_IS_OSX
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_IS_OSX"
)
elseif
(
CMAKE_SYSTEM_NAME STREQUAL Linux
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_IS_LINUX
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_IS_LINUX"
)
# -rdynamic so we can get backtrace symbols...
# --no-as-needed so libprofiler sticks around
s
et
(
CMAKE_EXE_LINKER_FLAGS
"
${
CMAKE_EXE_LINKER_FLAGS
}
-rdynamic -Wl,--no-as-needed"
)
s
tring
(
APPEND CMAKE_EXE_LINKER_FLAGS
"
-rdynamic -Wl,--no-as-needed"
)
else
()
message
(
SEND_ERROR
"Unknown system name: "
+ CMAKE_SYSTEM_NAME
)
endif
()
...
...
@@ -109,9 +113,25 @@ else ()
message
(
STATUS
"Found -lprofiler:
${
PROFILE_LIB
}
"
)
endif
()
add_library
(
pbrt_warnings INTERFACE
)
target_compile_options
(
pbrt_warnings
INTERFACE
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4244>"
# int -> float conversion
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4267>"
# size_t -> int conversion
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4305>"
# double constant assigned to float
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4552>"
# result of expression not used
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4838>"
# double -> int conversion
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd4843>"
# double -> float conversion
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd26451>"
# arithmetic on 4-byte value, then cast to 8-byte
"$<$<CXX_COMPILER_ID:MSVC>:$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >/wd26495>"
# uninitialized member variable
)
#########################################
## CUDA / OptiX
add_library
(
cuda_build_configuration INTERFACE
)
include
(
CheckLanguage
)
check_language
(
CUDA
)
...
...
@@ -134,30 +154,36 @@ if (CMAKE_CUDA_COMPILER)
message
(
WARNING
"Found CUDA but PBRT_OPTIX7_PATH is not set. Disabling GPU compilation."
)
else
()
enable_language
(
CUDA
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_BUILD_GPU_RENDERER
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
NVTX
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_BUILD_GPU_RENDERER"
)
list
(
APPEND PBRT_DEFINITIONS
"NVTX"
)
set
(
PBRT_CUDA_ENABLED ON
)
# FIXME
include_directories
(
${
CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
}
)
# for regular c++ compiles
# http://www.ssl.berkeley.edu/~jimm/grizzly_docs/SSL/opt/intel/cc/9.0/lib/locale/en_US/mcpcom.msg
set
(
PBRT_CUDA_DIAG_FLAGS
""
)
#set (PBRT_CUDA_DIAG_FLAGS "${PBRT_CUDA_DIAG_FLAGS} -Xptxas --warn-on-double-precision-use")
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
-Xcudafe --diag_suppress=partial_override"
)
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
-Xcudafe --diag_suppress=virtual_function_decl_hidden"
)
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
-Xcudafe --diag_suppress=integer_sign_change"
)
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
-Xcudafe --diag_suppress=declared_but_not_referenced"
)
# WAR invalid warnings about this with "if constexpr
"
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
-Xcudafe --diag_suppress=implicit_return_from_non_void_function"
)
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
--expt-relaxed-constexpr"
)
set
(
PBRT_CUDA_DIAG_FLAGS
"
${
PBRT_CUDA_DIAG_FLAGS
}
--extended-lambda"
)
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
${
PBRT_CUDA_DIAG_FLAGS
}
"
)
target_compile_options
(
pbrt_warnings
INTERFACE
#"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xptxas --warn-on-double-precision-use>"
"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcudafe --diag_suppress=partial_override>"
"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcudafe --diag_suppress=virtual_function_decl_hidden>"
"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcudafe --diag_suppress=integer_sign_change>
"
"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcudafe --diag_suppress=declared_but_not_referenced>"
# WAR invalid warnings about this with "if constexpr"
"$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcudafe --diag_suppress=implicit_return_from_non_void_function>"
)
# Willie hears yeh..
s
et
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
-Xnvlink -suppress-stack-size-warning"
)
s
tring
(
APPEND CMAKE_CUDA_FLAGS
"
-Xnvlink -suppress-stack-size-warning"
)
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
--forward-unknown-to-host-compiler"
)
target_compile_options
(
cuda_build_configuration
INTERFACE
"$<$<COMPILE_LANGUAGE:CUDA>:--std=c++17;--use_fast_math;--expt-relaxed-constexpr;--extended-lambda;--forward-unknown-to-host-compiler>"
# The "$<NOT:$<BOOL:$<TARGET_PROPERTY:CUDA_PTX_COMPILATION>>>" part is to not add debugging symbols when generating PTX files for OptiX; see https://github.com/mmp/pbrt-v4/issues/69#issuecomment-715499748.
"$<$<COMPILE_LANGUAGE:CUDA>:$<IF:$<AND:$<CONFIG:Debug>,$<NOT:$<BOOL:$<TARGET_PROPERTY:CUDA_PTX_COMPILATION>>>>,-G;-g,-lineinfo;-maxrregcount;128>>"
)
# https://wagonhelm.github.io/articles/2018-03/detecting-cuda-capability-with-cmake
# Get CUDA compute capability
...
...
@@ -172,19 +198,12 @@ if (CMAKE_CUDA_COMPILER)
RESULT_VARIABLE CUDA_RETURN_CODE
OUTPUT_VARIABLE CHECK_CUDA_OUTPUT
)
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
--std=c++17"
)
if
(
CMAKE_BUILD_TYPE MATCHES Debug
)
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
--use_fast_math -G -g"
)
else
()
set
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
--use_fast_math -lineinfo -maxrregcount 128"
)
endif
()
if
(
NOT
${
CUDA_RETURN_CODE
}
EQUAL 0
)
message
(
SEND_ERROR
${
CHECK_CUDA_OUTPUT
}
)
else
()
set
(
ARCH
"
${
CHECK_CUDA_OUTPUT
}
"
)
message
(
STATUS
"CUDA Architecture:
${
ARCH
}
"
)
s
et
(
CMAKE_CUDA_FLAGS
"
${
CMAKE_CUDA_FLAGS
}
--gpu-architecture=
${
ARCH
}
"
)
s
tring
(
APPEND CMAKE_CUDA_FLAGS
"
--gpu-architecture=
${
ARCH
}
"
)
endif
()
set
(
PBRT_CUDA_LIB cuda
)
...
...
@@ -235,6 +254,7 @@ if (CMAKE_CUDA_COMPILER)
endif
()
target_include_directories
(
"
${
lib_name
}
"
PRIVATE src
${
CMAKE_BINARY_DIR
}
)
target_include_directories
(
"
${
lib_name
}
"
SYSTEM PRIVATE
${
NANOVDB_INCLUDE
}
)
target_link_libraries
(
"
${
lib_name
}
"
PRIVATE cuda_build_configuration pbrt_warnings
)
add_dependencies
(
"
${
lib_name
}
"
pbrt_soa_generated
)
set
(
c_var_name
${
output_var
}
)
set
(
embedded_file
${
cuda_file
}
.ptx_embedded.c
)
...
...
@@ -257,10 +277,6 @@ else ()
message
(
STATUS
"CUDA not found"
)
endif
()
if
(
PBRT_FLOAT_AS_DOUBLE
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_FLOAT_AS_DOUBLE
)
endif
()
###########################################################################
# Annoying compiler-specific details
...
...
@@ -276,11 +292,11 @@ INCLUDE(CheckCXXCompilerFlag)
check_cxx_compiler_flag
(
"-march=native"
COMPILER_SUPPORTS_MARCH_NATIVE
)
if
(
COMPILER_SUPPORTS_MARCH_NATIVE AND PBRT_BUILD_NATIVE_EXECUTABLE AND
NOT PBRT_CUDA_ENABLED
)
list
(
APPEND PBRT_CXX_FLAGS
-march=native
)
list
(
APPEND PBRT_CXX_FLAGS
"-march=native"
)
endif
()
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"Intel"
)
list
(
APPEND PBRT_CXX_FLAGS -std=c++17
)
list
(
APPEND PBRT_CXX_FLAGS
"-std=c++17"
)
FIND_PROGRAM
(
XIAR xiar
)
IF
(
XIAR
)
...
...
@@ -299,24 +315,13 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set
(
FP_MODEL
"precise"
CACHE STRING
"The floating point model to compile with."
)
set_property
(
CACHE FP_MODEL PROPERTY STRINGS
"precise"
"fast=1"
"fast=2"
)
list
(
APPEND PBRT_CXX_FLAGS
"-fp-model
${
FP_MODEL
}
"
)
list
(
APPEND PBRT_CXX_FLAGS
"-fp-model
"
"
${
FP_MODEL
}
"
)
endif
()
if
(
MSVC AND MSVC_VERSION LESS 1920
)
message
(
SEND_ERROR
"pbrt-v4 currently requires MSVC 2019 to build on Windows. PRs that get MSVC 2017 working as well would be welcomed. :-)"
)
endif
()
if
(
MSVC AND NOT PBRT_CUDA_ENABLED
)
# FIXME: it would be nice to still pipe these through to MSVC in this case.
list
(
APPEND PBRT_CXX_FLAGS /wd4305
)
# double constant assigned to float
list
(
APPEND PBRT_CXX_FLAGS /wd4244
)
# int -> float conversion
list
(
APPEND PBRT_CXX_FLAGS /wd4843
)
# double -> float conversion
list
(
APPEND PBRT_CXX_FLAGS /wd4267
)
# size_t -> int conversion
list
(
APPEND PBRT_CXX_FLAGS /wd4838
)
# double -> int conversion
list
(
APPEND PBRT_CXX_FLAGS /wd26495
)
# uninitialized member variable
list
(
APPEND PBRT_CXX_FLAGS /wd26451
)
# arithmetic on 4-byte value, then cast to 8-byte
endif
()
###########################################################################
# Check for various C++ features and set preprocessor variables or
# define workarounds.
...
...
@@ -339,7 +344,7 @@ int main() {
"
HAVE_MMAP
)
if
(
HAVE_MMAP
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_HAVE_MMAP
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_HAVE_MMAP"
)
ENDIF
()
include
(
CheckIncludeFiles
)
...
...
@@ -353,7 +358,7 @@ int main() {
} "
HAS_INTRIN_H
)
if
(
HAS_INTRIN_H
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_HAS_INTRIN_H
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_HAS_INTRIN_H"
)
endif
()
########################################
...
...
@@ -370,11 +375,11 @@ int main() { }"
HAVE_ATTRIBUTE_NOINLINE
)
if
(
HAVE_ATTRIBUTE_NOINLINE
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
"PBRT_NOINLINE=__attribute__((noinline))"
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_NOINLINE=__attribute__((noinline))"
)
elseif
(
HAVE_DECLSPEC_NOINLINE
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
"PBRT_NOINLINE=__declspec(noinline)"
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_NOINLINE=__declspec(noinline)"
)
else
()
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_NOINLINE
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_NOINLINE"
)
endif
()
########################################
...
...
@@ -393,9 +398,9 @@ int main() {
} "
HAVE_POSIX_MEMALIGN
)
if
(
HAVE__ALIGNED_MALLOC
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_HAVE__ALIGNED_MALLOC
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_HAVE__ALIGNED_MALLOC"
)
elseif
(
HAVE_POSIX_MEMALIGN
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_HAVE_POSIX_MEMALIGN
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_HAVE_POSIX_MEMALIGN"
)
else
()
message
(
SEND_ERROR
"Unable to find a way to allocate aligned memory"
)
endif
()
...
...
@@ -411,7 +416,7 @@ int main() { }
"
INT64_IS_OWN_TYPE
)
if
(
INT64_IS_OWN_TYPE
)
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PBRT_INT64_IS_OWN_TYPE
)
list
(
APPEND PBRT_DEFINITIONS
"PBRT_INT64_IS_OWN_TYPE"
)
endif
()
if
(
PBRT_NVTX
)
...
...
@@ -655,7 +660,7 @@ endif ()
###########################################################################
# pbrt libraries and executables
set
(
PBRT_DEFINITIONS
${
PBRT_DEFINITIONS
}
PTEX_STATIC
)
list
(
APPEND PBRT_DEFINITIONS
"PTEX_STATIC"
)
######################
# soac
...
...
@@ -665,6 +670,7 @@ add_executable (pbrt::soac ALIAS soac)
target_compile_definitions
(
soac PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
soac PUBLIC
${
PBRT_CXX_FLAGS
}
)
target_link_libraries
(
soac PRIVATE pbrt_warnings
)
set_target_properties
(
soac PROPERTIES OUTPUT_NAME soac
)
...
...
@@ -731,6 +737,8 @@ endif ()
target_compile_options
(
pbrt_lib PUBLIC
${
PBRT_CXX_FLAGS
}
)
target_link_libraries
(
pbrt_lib PRIVATE pbrt_warnings $<$<BOOL:PBRT_CUDA_ENABLED>:cuda_build_configuration>
)
add_sanitizers
(
pbrt_lib
)
if
(
WIN32
)
...
...
@@ -754,15 +762,15 @@ if (PBRT_CUDA_ENABLED)
${
PBRT_EMBEDDED_PTX
}
)
add_dependencies
(
pbrt_embedded_ptx_lib pbrt_soa_generated
)
set
(
ALL_PBRT_LIBS
${
ALL_PBRT_LIBS
}
pbrt_embedded_ptx_lib
)
list
(
APPEND ALL_PBRT_LIBS
pbrt_embedded_ptx_lib
)
endif
()
if
(
WIN32
)
set
(
ALL_PBRT_LIBS
${
ALL_PBRT_LIBS
}
dbghelp wsock32 ws2_32
)
list
(
APPEND ALL_PBRT_LIBS
"dbghelp"
"wsock32"
"ws2_32"
)
endif
()
if
(
PROFILE_LIB
)
set
(
ALL_PBRT_LIBS
${
ALL_PBRT_LIBS
}
${
PROFILE_LIB
}
)
list
(
APPEND ALL_PBRT_LIBS
"
${
PROFILE_LIB
}
"
)
endif
()
######################
...
...
@@ -773,7 +781,7 @@ add_executable (pbrt::rgb2spec_opt ALIAS rgb2spec_opt)
target_compile_definitions
(
rgb2spec_opt PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
rgb2spec_opt PUBLIC
${
PBRT_CXX_FLAGS
}
)
target_link_libraries
(
rgb2spec_opt
${
CMAKE_THREAD_LIBS_INIT
}
)
target_link_libraries
(
rgb2spec_opt
PRIVATE
${
CMAKE_THREAD_LIBS_INIT
}
pbrt_warnings
)
add_custom_command
(
OUTPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/rgbspectrum_aces.cpp
COMMAND rgb2spec_opt 64
${
CMAKE_CURRENT_BINARY_DIR
}
/rgbspectrum_aces.cpp ACES2065_1
...
...
@@ -800,7 +808,7 @@ add_executable (pbrt::pbrt_exe ALIAS pbrt_exe)
target_compile_definitions
(
pbrt_exe PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
pbrt_exe PRIVATE
${
PBRT_CXX_FLAGS
}
)
target_include_directories
(
pbrt_exe PRIVATE src src/ext
)
target_link_libraries
(
pbrt_exe PRIVATE
${
ALL_PBRT_LIBS
}
)
target_link_libraries
(
pbrt_exe PRIVATE
${
ALL_PBRT_LIBS
}
pbrt_warnings
)
set_target_properties
(
pbrt_exe PROPERTIES OUTPUT_NAME pbrt
)
...
...
@@ -818,7 +826,7 @@ set_property (TARGET sky_lib PROPERTY FOLDER "ext")
target_compile_definitions
(
imgtool PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
imgtool PRIVATE
${
PBRT_CXX_FLAGS
}
)
target_include_directories
(
imgtool PRIVATE src src/ext
${
FLIP_INCLUDE
}
)
target_link_libraries
(
imgtool PRIVATE
${
ALL_PBRT_LIBS
}
sky_lib flip_lib
)
target_link_libraries
(
imgtool PRIVATE
${
ALL_PBRT_LIBS
}
pbrt_warnings
sky_lib flip_lib
)
add_sanitizers
(
imgtool
)
...
...
@@ -842,6 +850,7 @@ add_executable (obj2pbrt src/pbrt/cmd/obj2pbrt.cpp)
target_compile_definitions
(
obj2pbrt PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
obj2pbrt PRIVATE
${
PBRT_CXX_FLAGS
}
)
target_link_libraries
(
obj2pbrt PRIVATE pbrt_warnings
)
add_sanitizers
(
obj2pbrt
)
...
...
@@ -852,6 +861,7 @@ add_executable (cyhair2pbrt src/pbrt/cmd/cyhair2pbrt.cpp)
target_compile_definitions
(
cyhair2pbrt PRIVATE
${
PBRT_DEFINITIONS
}
)
target_compile_options
(
cyhair2pbrt PRIVATE
${
PBRT_CXX_FLAGS
}
)
target_link_libraries
(
cyhair2pbrt PRIVATE pbrt_warnings
)
add_sanitizers
(
cyhair2pbrt
)
...
...
@@ -894,7 +904,7 @@ set (PBRT_TEST_SOURCE
add_executable
(
pbrt_test src/pbrt/cmd/pbrt_test.cpp
${
PBRT_TEST_SOURCE
}
)
target_link_libraries
(
pbrt_test PRIVATE
${
ALL_PBRT_LIBS
}
)
target_link_libraries
(
pbrt_test PRIVATE
${
ALL_PBRT_LIBS
}
pbrt_warnings
)
target_compile_definitions
(
pbrt_test PRIVATE
${
PBRT_DEFINITIONS
}
)
target_include_directories
(
pbrt_test PRIVATE src src/ext
${
DOUBLE_CONVERSION_INCLUDE
}
)
target_compile_options
(
pbrt_test PUBLIC
${
PBRT_CXX_FLAGS
}
)
...
...
src/pbrt/util/check.h
浏览文件 @
cd82b6fd
...
...
@@ -66,15 +66,22 @@ void PrintStackTrace();
#else
#define DCHECK(x)
#define DCHECK_EQ(a, b)
#define DCHECK_NE(a, b)
#define DCHECK_GT(a, b)
#define DCHECK_GE(a, b)
#define DCHECK_LT(a, b)
#define DCHECK_LE(a, b)
#endif
#define EMPTY_CHECK \
do { \
} while (false)
/* swallow semicolon */
// Use an empty check (rather than expanding the macros to nothing) to swallow the
// semicolon at the end, and avoid empty if-statements.
#define DCHECK(x) EMPTY_CHECK
#define DCHECK_EQ(a, b) EMPTY_CHECK
#define DCHECK_NE(a, b) EMPTY_CHECK
#define DCHECK_GT(a, b) EMPTY_CHECK
#define DCHECK_GE(a, b) EMPTY_CHECK
#define DCHECK_LT(a, b) EMPTY_CHECK
#define DCHECK_LE(a, b) EMPTY_CHECK
#endif // !defined(NDEBUG)
#define CHECK_RARE_TO_STRING(x) #x
#define CHECK_RARE_EXPAND_AND_TO_STRING(x) CHECK_RARE_TO_STRING(x)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录