Add a cmake option to use SYSTEM in target_include_directories

Without SYSTEM static analysis like clang-tidy raise warnings on
json.hpp.  This is not desirable for projects embedding nlohmann_json

Tests:
- Validated that without the option OFF the warnings are raised as
  before
- Validated that with the option ON the warnings are silenced
pull/2762/head
Jean-Philippe Lemieux 2021-05-05 16:19:24 -04:00
parent fc2f7116fe
commit afbb84b2c8
1 changed files with 6 additions and 1 deletions

View File

@ -36,6 +36,7 @@ option(JSON_MultipleHeaders "Use non-amalgamated version of the library." OFF)
option(JSON_ImplicitConversions "Enable implicit conversions." ON)
option(JSON_Diagnostics "Enable better diagnostic messages." OFF)
option(JSON_CI "Enable CI build targets." OFF)
option(JSON_SystemInclude "Include as system headers (skip for clang-tidy)" OFF)
if (JSON_CI)
include(cmake/ci.cmake)
@ -73,6 +74,10 @@ if (JSON_Diagnostics)
message(STATUS "Diagnostics enabled")
endif()
if (JSON_SystemInclude)
set(NLOHMANN_JSON_SYSTEM_INCLUDE "SYSTEM")
endif()
##
## TARGET
## create target and add include path
@ -94,7 +99,7 @@ target_compile_definitions(
target_include_directories(
${NLOHMANN_JSON_TARGET_NAME}
INTERFACE
${NLOHMANN_JSON_SYSTEM_INCLUDE} INTERFACE
$<BUILD_INTERFACE:${NLOHMANN_JSON_INCLUDE_BUILD_DIR}>
$<INSTALL_INTERFACE:include>
)