Skip to content

Commit c4be14d

Browse files
authored
fixed #12666 - got rid of ill-conceived USE_MATCHCOMPILER CMake option validation (#6348)
I went quite overboard when I introduced the validation of the define. That was not necessary in CMake as we provide feedback on the usage of the matchcompiler. So only handle the special options and otherwise rely on the regular CMake logic.
1 parent 57e0ea5 commit c4be14d

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

cmake/options.cmake

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,23 @@ option(WARNINGS_ARE_ERRORS "Treat warnings as errors"
2222
option(EXTERNALS_AS_SYSTEM "Treat externals as system includes" OFF)
2323

2424
set(USE_MATCHCOMPILER "Auto" CACHE STRING "Usage of match compiler")
25-
set(_MATCHCOMPILER_STRINGS Auto Off On Verify)
26-
set_property(CACHE USE_MATCHCOMPILER PROPERTY STRINGS ${_MATCHCOMPILER_STRINGS})
27-
if(NOT ${USE_MATCHCOMPILER} IN_LIST _MATCHCOMPILER_STRINGS)
28-
message(FATAL_ERROR "Invalid USE_MATCHCOMPILER value '${USE_MATCHCOMPILER}'")
29-
endif()
30-
if(USE_MATCHCOMPILER STREQUAL "Auto")
31-
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
32-
set(USE_MATCHCOMPILER_OPT "On")
25+
set_property(CACHE USE_MATCHCOMPILER PROPERTY STRINGS Auto Off On Verify)
26+
if(USE_MATCHCOMPILER)
27+
if(USE_MATCHCOMPILER STREQUAL "Auto")
28+
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
29+
message(STATUS "Non-debug build detected - enabling matchcompiler")
30+
set(USE_MATCHCOMPILER_OPT "On")
31+
else()
32+
message(STATUS "Debug build detected - disabling matchcompiler")
33+
set(USE_MATCHCOMPILER_OPT "Off")
34+
endif()
35+
elseif(USE_MATCHCOMPILER STREQUAL "Verify")
36+
set(USE_MATCHCOMPILER_OPT "Verify")
3337
else()
34-
set(USE_MATCHCOMPILER_OPT "Off")
38+
set(USE_MATCHCOMPILER_OPT "On")
3539
endif()
3640
else()
37-
set(USE_MATCHCOMPILER_OPT ${USE_MATCHCOMPILER})
41+
set(USE_MATCHCOMPILER_OPT "Off")
3842
endif()
3943

4044
option(BUILD_CORE_DLL "Build lib as cppcheck-core.dll with Visual Studio" OFF)

lib/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function(build_src output filename)
1010
get_filename_component(file ${filename} NAME)
1111
set(outfile ${CMAKE_CURRENT_BINARY_DIR}/build/mc_${file})
1212
set(${output} ${${output}} ${outfile} PARENT_SCOPE)
13-
if (USE_MATCHCOMPILER STREQUAL "Verify")
13+
if (USE_MATCHCOMPILER_OPT STREQUAL "Verify")
1414
set(verify_option "--verify")
1515
endif()
1616
add_custom_command(

0 commit comments

Comments
 (0)