{"action":"created","issue":{"url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/25","repository_url":"https://api.github.com/repos/mapnik/mapnik-gyp","labels_url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/25/comments","events_url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/25/events","html_url":"https://github.com/mapnik/mapnik-gyp/issues/25","id":131514712,"number":25,"title":"\"heavy\" files still built in parallel","user":{"login":"lightmare","id":1419852,"avatar_url":"https://avatars.githubusercontent.com/u/1419852?v=3","gravatar_id":"","url":"https://api.github.com/users/lightmare","html_url":"https://github.com/lightmare","followers_url":"https://api.github.com/users/lightmare/followers","following_url":"https://api.github.com/users/lightmare/following{/other_user}","gists_url":"https://api.github.com/users/lightmare/gists{/gist_id}","starred_url":"https://api.github.com/users/lightmare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lightmare/subscriptions","organizations_url":"https://api.github.com/users/lightmare/orgs","repos_url":"https://api.github.com/users/lightmare/repos","events_url":"https://api.github.com/users/lightmare/events{/privacy}","received_events_url":"https://api.github.com/users/lightmare/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-05T00:15:56Z","updated_at":"2016-02-05T12:57:56Z","closed_at":"2016-02-05T12:16:13Z","body":"https://ci.appveyor.com/project/Mapbox/mapnik/build/1.0.582#L122\r\nIt was apparently compiling 3 files at once:\r\n```\r\nC:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\CL.exe ... /MP ...\r\n\r\n... fatal error C1060: compiler is out of heap space (compiling source file ..\\..\\src\\expression_grammar.cpp)\r\n... fatal error C1060: compiler is out of heap space (compiling source file ..\\..\\src\\transform_expression_grammar.cpp)\r\n... fatal error C1060: compiler is out of heap space (compiling source file ..\\..\\src\\css_color_grammar.cpp)\r\n \r\n    0 Warning(s)\r\n    3 Error(s)\r\n```\r\n\r\nThe problem is likely that `msbuild /m:1` option limits only the number of processes msbuild spawns, but the compiler then forks itself: [/MP](https://msdn.microsoft.com/en-us/library/bb385193.aspx)\r\n\r\nAlso while you'll be looking into it, would it be possible to make the `/p:SelectedFiles=` more easily editable? I honestly have no idea whether it can be multiline, or whether you can use backticks to read the list from another file.\r\n"},"comment":{"url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/comments/180344862","html_url":"https://github.com/mapnik/mapnik-gyp/issues/25#issuecomment-180344862","issue_url":"https://api.github.com/repos/mapnik/mapnik-gyp/issues/25","id":180344862,"user":{"login":"lightmare","id":1419852,"avatar_url":"https://avatars.githubusercontent.com/u/1419852?v=3","gravatar_id":"","url":"https://api.github.com/users/lightmare","html_url":"https://github.com/lightmare","followers_url":"https://api.github.com/users/lightmare/followers","following_url":"https://api.github.com/users/lightmare/following{/other_user}","gists_url":"https://api.github.com/users/lightmare/gists{/gist_id}","starred_url":"https://api.github.com/users/lightmare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lightmare/subscriptions","organizations_url":"https://api.github.com/users/lightmare/orgs","repos_url":"https://api.github.com/users/lightmare/repos","events_url":"https://api.github.com/users/lightmare/events{/privacy}","received_events_url":"https://api.github.com/users/lightmare/received_events","type":"User","site_admin":false},"created_at":"2016-02-05T12:57:56Z","updated_at":"2016-02-05T12:57:56Z","body":"I'm bad with ... what?! there's no emoji :bat: :scream_cat:  ... but maybe you could override the option before each step:\r\n```bat\r\n:: before building big files\r\nIF DEFINED APPVEYOR SET CL=/MP1\r\n\r\n:: before building the rest\r\nIF DEFINED APPVEYOR SET CL=/MP\r\n```\r\n\r\nMaybe even use `msbuild /m:1` for both. From the description it looks like that option is intended for building projects (does that mean targets?) in parallel -- buf if targets have multiple sources (which most in mapnik do), and /MP (without number) forks as many CL.exe workers as it has processors, then perhaps there's no need for more than `/m:1` :grey_question: \r\n"}}