| set(expected_compile_commands |
| [==[^\[ |
| { |
| "directory": "[^ |
| ]*(/Tests/RunCMake/NinjaMultiConfig/CompileCommands-build|\\\\Tests\\\\RunCMake\\\\NinjaMultiConfig\\\\CompileCommands-build)", |
| "command": "[^ |
| ]*Debug[^ |
| ]*", |
| "file": "[^ |
| ]*(/Tests/RunCMake/NinjaMultiConfig/main\.c|\\\\Tests\\\\RunCMake\\\\NinjaMultiConfig\\\\main\.c)", |
| "output": "(CMakeFiles/exe\.dir/Debug/main\.c\.o|CMakeFiles\\\\exe\.dir\\\\Debug\\\\main\.c\.(obj|o))" |
| }, |
| { |
| "directory": "[^ |
| ]*(/Tests/RunCMake/NinjaMultiConfig/CompileCommands-build|\\\\Tests\\\\RunCMake\\\\NinjaMultiConfig\\\\CompileCommands-build)", |
| "command": "[^ |
| ]*Release[^ |
| ]*", |
| "file": "[^ |
| ]*(/Tests/RunCMake/NinjaMultiConfig/main\.c|\\\\Tests\\\\RunCMake\\\\NinjaMultiConfig\\\\main\.c)", |
| "output": "(CMakeFiles/exe\.dir/Release/main\.c\.o|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() |