if (NOT CMAKE_C_COMPILER_ID MATCHES "GNU|LCC|Intel" OR
   (CMAKE_C_COMPILER_ID STREQUAL "Intel" AND CMAKE_HOST_WIN32))
  return()
endif()

file(STRINGS ${RunCMake_TEST_BINARY_DIR}/compile_commands.json empty_dir_commands
     REGEX "command.*-Winvalid-pch.*empty.dir/cmake_pch.h")
file(STRINGS ${RunCMake_TEST_BINARY_DIR}/compile_commands.json foo_dir_commands
     REGEX "command.*-Winvalid-pch.*foo.dir/cmake_pch.h")

list(LENGTH empty_dir_commands empty_dir_commands_size)
list(LENGTH foo_dir_commands foo_dir_commands_size)

if (empty_dir_commands_size EQUAL 0)
  set(RunCMake_TEST_FAILED "empty target should have -Winvalid-pch compile option present")
  return()
endif()

if (foo_dir_commands_size GREATER 0)
  set(RunCMake_TEST_FAILED "foo target should not have -Winvalid-pch compile option present")
  return()
endif()