From f117291f8027c27aee078bcb78fb99dbc54595ec Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Tue, 26 Feb 2019 16:52:12 +0000 Subject: [PATCH] CMake: Add DCHECK_ALWAYS_ON flag Enables macros like ASSERT, UNIMPLEMENTED even in release builds. Bug: b/126329018 Change-Id: I7d810862b16d85b0a4ffc6b39a655cc73d4c669a Reviewed-on: https://swiftshader-review.googlesource.com/c/25557 Kokoro-Presubmit: kokoro Reviewed-by: Nicolas Capens Tested-by: Ben Clayton --- .vscode/tasks.json | 3 ++- CMakeLists.txt | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d0804da8a..7a88e94be 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -67,7 +67,8 @@ "args": [ "..", "-DCMAKE_BUILD_TYPE=${input:buildType}", - "-DWARNINGS_AS_ERRORS=1" + "-DWARNINGS_AS_ERRORS=1", + "-DDCHECK_ALWAYS_ON=1" ], "options": { "cwd": "${workspaceRoot}/build" diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ca4085e0..ca10ce95b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,7 @@ option (ASAN "Build with address sanitizer" 0) option (TSAN "Build with thread sanitizer" 0) option (UBSAN "Build with undefined behavior sanitizer" 0) option (WARNINGS_AS_ERRORS "Treat all warnings as errors" 0) +option (DCHECK_ALWAYS_ON "Check validation macros even in release builds" 0) if(ARCH STREQUAL "arm") set(DEFAULT_REACTOR_BACKEND "Subzero") @@ -271,6 +272,10 @@ else() set_cpp_flag("-Werror") # Treat all warnings as errors endif() + if(DCHECK_ALWAYS_ON) + set_cpp_flag("-DDCHECK_ALWAYS_ON") + endif() + # Disable pedanitc warnings if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") set_cpp_flag("-Wno-ignored-attributes") # ignoring attributes on template argument 'X' -- 2.11.0