{"action":"created","issue":{"url":"https://api.github.com/repos/Robot/robot/issues/17","repository_url":"https://api.github.com/repos/Robot/robot","labels_url":"https://api.github.com/repos/Robot/robot/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/Robot/robot/issues/17/comments","events_url":"https://api.github.com/repos/Robot/robot/issues/17/events","html_url":"https://github.com/Robot/robot/issues/17","id":151443942,"number":17,"title":"Compiler choice limited","user":{"login":"Sqeaky","id":1239092,"avatar_url":"https://avatars.githubusercontent.com/u/1239092?v=3","gravatar_id":"","url":"https://api.github.com/users/Sqeaky","html_url":"https://github.com/Sqeaky","followers_url":"https://api.github.com/users/Sqeaky/followers","following_url":"https://api.github.com/users/Sqeaky/following{/other_user}","gists_url":"https://api.github.com/users/Sqeaky/gists{/gist_id}","starred_url":"https://api.github.com/users/Sqeaky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sqeaky/subscriptions","organizations_url":"https://api.github.com/users/Sqeaky/orgs","repos_url":"https://api.github.com/users/Sqeaky/repos","events_url":"https://api.github.com/users/Sqeaky/events{/privacy}","received_events_url":"https://api.github.com/users/Sqeaky/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Robot/robot/labels/Request","name":"Request","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-04-27T17:30:47Z","updated_at":"2016-04-29T19:05:36Z","closed_at":null,"body":"Currently I do not see any way to build this with MinGW on windows or Clang on Linux. I would like to use Clang for the code analysis tools, and on Windows I have a sophisticated project that uses C++14 which is not well supported by visual studio.\r\n\r\nHaving the compiler hardcoded in the makefile does not seem like the best way to do things. One possible solution, which seems common is to use a project file creation tool like Autoconf or CMake. \r\n\r\nPossible Pros: Less maintenance of several project files, Larger selection of buildchains, more idiomatic build could ease developer transition, build would work on linuxes\r\n\r\nPossible Cons: This would need to be documented, you would gain a dependency.\r\n\r\nIf I made a CMakeLists.txt that can emit all the Visual Studio solutions and working Makefiles on windows/Linux/MacOSX and allow arbitrary selection of compiler and build chain would you be receptive of that? I would also try to help with the documentation.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/Robot/robot/issues/comments/215850373","html_url":"https://github.com/Robot/robot/issues/17#issuecomment-215850373","issue_url":"https://api.github.com/repos/Robot/robot/issues/17","id":215850373,"user":{"login":"Sqeaky","id":1239092,"avatar_url":"https://avatars.githubusercontent.com/u/1239092?v=3","gravatar_id":"","url":"https://api.github.com/users/Sqeaky","html_url":"https://github.com/Sqeaky","followers_url":"https://api.github.com/users/Sqeaky/followers","following_url":"https://api.github.com/users/Sqeaky/following{/other_user}","gists_url":"https://api.github.com/users/Sqeaky/gists{/gist_id}","starred_url":"https://api.github.com/users/Sqeaky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sqeaky/subscriptions","organizations_url":"https://api.github.com/users/Sqeaky/orgs","repos_url":"https://api.github.com/users/Sqeaky/repos","events_url":"https://api.github.com/users/Sqeaky/events{/privacy}","received_events_url":"https://api.github.com/users/Sqeaky/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T19:05:36Z","updated_at":"2016-04-29T19:05:36Z","body":"OK, that is good to know, so I might be able to make just a tiny change somewhere that prevents the inclusion of the offending std header I can likely fix the MinGW build issue.\r\n\r\nLooking forward, If you want I have a mutex implementation that uses atomic integers to implement a simple spinlock. Reading #5 a spinlock might be ideal, because they use CPU instructions, which are cheap, rather than operating system calls, which tend to be expensive and you just need it to last long enough to write some memory. I used it over here: https://github.com/BlackToppStudios/DAGFrameScheduler/blob/master/src/mutex.h This is GPL'd but I have permission from BlackTopp Studios inc to copy small snippets for other project and re-license them. You could conditionally compile the mutex in when building without C++11 or on old versions of msvc.\r\n\r\nI think I forked your master, I will import changes from your dev branch."}}