Why does /MP turn to /MP1

I’m using CMake with Visual Studio (i.e MSBuild). I have the /MP setting across the board, but running on various machines with 8, 16, 32 physical cores, I’m seeing /MP1 being set when cl.exe is called.

Why is my desire to use all cores possible not being respected?

Update

If I provide a value to /MP i.e /MP8, I then get /MP8. For some reason however /MP seems to result in /MP1 even though I have many cores than this.

Which version of Visual Studio are you generating?

Could you share what the build output looks like when you specify --verbose via CMake? (Just share the command line for 1 source file not the entire project).