set(expected_compile_commands [==[^\[ { "directory": "[^ ]*/Tests/RunCMake/NinjaMultiConfig/CompileCommands-build", "command": "[^ ]*Debug[^ ]*", "file": "[^ ]*/Tests/RunCMake/NinjaMultiConfig/main\.c", "output": "[^ ]*/CMakeFiles/exe\.dir/Debug/main\.c\.(obj|o)" }, { "directory": "[^ ]*/Tests/RunCMake/NinjaMultiConfig/CompileCommands-build", "command": "[^ ]*Release[^ ]*", "file": "[^ ]*/Tests/RunCMake/NinjaMultiConfig/main\.c", "output": "[^ ]*/CMakeFiles/exe\.dir/Release/main\.c\.(obj|o)" } ] $]==]) file(READ "${RunCMake_TEST_BINARY_DIR}/compile_commands.json" actual_compile_commands) if(NOT actual_compile_commands MATCHES "${expected_compile_commands}") string(REPLACE "\n" "\n " expected_compile_commands_formatted "${expected_compile_commands}") string(REPLACE "\n" "\n " actual_compile_commands_formatted "${actual_compile_commands}") string(APPEND RunCMake_TEST_FAILED "Expected compile_commands.json to match:\n ${expected_compile_commands_formatted}\nActual compile_commands.json:\n ${actual_compile_commands_formatted}\n") endif()