Changeset View
Changeset View
Standalone View
Standalone View
CMakeLists.txt
| Show First 20 Lines • Show All 533 Lines • ▼ Show 20 Lines | if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") | ||||
| if(WITH_COMPILER_ASAN) | if(WITH_COMPILER_ASAN) | ||||
| set(_asan_defaults "\ | set(_asan_defaults "\ | ||||
| -fsanitize=address \ | -fsanitize=address \ | ||||
| -fsanitize=bool \ | -fsanitize=bool \ | ||||
| -fsanitize=bounds \ | -fsanitize=bounds \ | ||||
| -fsanitize=enum \ | -fsanitize=enum \ | ||||
| -fsanitize=float-cast-overflow \ | -fsanitize=float-cast-overflow \ | ||||
| -fsanitize=float-divide-by-zero \ | -fsanitize=float-divide-by-zero \ | ||||
| -fsanitize=leak \ | |||||
| -fsanitize=nonnull-attribute \ | -fsanitize=nonnull-attribute \ | ||||
| -fsanitize=object-size \ | |||||
| -fsanitize=returns-nonnull-attribute \ | -fsanitize=returns-nonnull-attribute \ | ||||
| -fsanitize=signed-integer-overflow \ | -fsanitize=signed-integer-overflow \ | ||||
| -fsanitize=undefined \ | -fsanitize=undefined \ | ||||
| -fsanitize=vla-bound \ | -fsanitize=vla-bound \ | ||||
| -fno-sanitize=alignment \ | -fno-sanitize=alignment \ | ||||
| ") | ") | ||||
| if(NOT MSVC) # not all sanitizers are supported with clang-cl, these two however are very vocal about it | |||||
| set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size" ) | |||||
campbellbarton: Should be `${_asan_defaults}` | |||||
| endif() | |||||
| set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer") | set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer") | ||||
| mark_as_advanced(COMPILER_ASAN_CFLAGS) | mark_as_advanced(COMPILER_ASAN_CFLAGS) | ||||
| set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer") | set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer") | ||||
| mark_as_advanced(COMPILER_ASAN_CXXFLAGS) | mark_as_advanced(COMPILER_ASAN_CXXFLAGS) | ||||
| unset(_asan_defaults) | unset(_asan_defaults) | ||||
| if(NOT MSVC) | |||||
| find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) | find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) | ||||
| else() | |||||
| find_library( COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64 | |||||
| PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows | |||||
| [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows | |||||
| ) | |||||
| endif() | |||||
| mark_as_advanced(COMPILER_ASAN_LIBRARY) | mark_as_advanced(COMPILER_ASAN_LIBRARY) | ||||
| endif() | endif() | ||||
| endif() | endif() | ||||
| # Dependency graph | # Dependency graph | ||||
| option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON) | option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON) | ||||
| mark_as_advanced(WITH_LEGACY_DEPSGRAPH) | mark_as_advanced(WITH_LEGACY_DEPSGRAPH) | ||||
| if(WIN32) | if(WIN32) | ||||
| ▲ Show 20 Lines • Show All 288 Lines • ▼ Show 20 Lines | |||||
| set(PLATFORM_LINKFLAGS_DEBUG "") | set(PLATFORM_LINKFLAGS_DEBUG "") | ||||
| if(WITH_COMPILER_ASAN) | if(WITH_COMPILER_ASAN) | ||||
| set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}") | set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}") | ||||
| set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}") | set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}") | ||||
| set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}") | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}") | ||||
| set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}") | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}") | ||||
| if(MSVC) | |||||
| set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY}") | set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6") | ||||
| endif() | |||||
| set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}") | |||||
| set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}") | |||||
| set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}") | |||||
| endif() | endif() | ||||
| #----------------------------------------------------------------------------- | #----------------------------------------------------------------------------- | ||||
| #Platform specifics | #Platform specifics | ||||
| if(WITH_X11) | if(WITH_X11) | ||||
| find_package(X11 REQUIRED) | find_package(X11 REQUIRED) | ||||
| ▲ Show 20 Lines • Show All 967 Lines • Show Last 20 Lines | |||||
Should be ${_asan_defaults}