Skip to content

Commit

Permalink
fix: use cmake_parse_arguments for target_include_system_directories
Browse files Browse the repository at this point in the history
  • Loading branch information
aminya committed Nov 2, 2021
1 parent b2321fe commit f12e422
Showing 1 changed file with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions src/SystemLink.cmake
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
# Include a system directory (which suppresses its warnings).
function(
target_include_system_directories
target
scope
lib_include_dirs)
if(MSVC)
# system includes do not work in MSVC
# awaiting https://gitlab.kitware.com/cmake/cmake/-/issues/18272#
# awaiting https://gitlab.kitware.com/cmake/cmake/-/issues/17904
target_include_directories(${target} ${scope} ${lib_include_dirs})
else()
target_include_directories(
${target}
SYSTEM
${scope}
${lib_include_dirs})
endif()
function(target_include_system_directories target)
set(multiValueArgs INTERFACE PUBLIC PRIVATE)
cmake_parse_arguments(
ARG
""
""
"${multiValueArgs}"
${ARGN})

foreach(scope IN ITEMS INTERFACE PUBLIC PRIVATE)
foreach(lib_include_dirs IN LISTS ARG_${scope})
if(MSVC)
# system includes do not work in MSVC
# awaiting https://gitlab.kitware.com/cmake/cmake/-/issues/18272#
# awaiting https://gitlab.kitware.com/cmake/cmake/-/issues/17904
target_include_directories(${target} ${scope} ${lib_include_dirs})
else()
target_include_directories(
${target}
SYSTEM
${scope}
${lib_include_dirs})
endif()
endforeach()
endforeach()

endfunction()

# Include the directories of a library target as system directories (which suppresses their warnings).
Expand Down

0 comments on commit f12e422

Please sign in to comment.