{"action":"created","issue":{"url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/71","repository_url":"https://api.github.com/repos/FNA-XNA/FAudio","labels_url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/71/labels{/name}","comments_url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/71/comments","events_url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/71/events","html_url":"https://github.com/FNA-XNA/FAudio/issues/71","id":382271421,"node_id":"MDU6SXNzdWUzODIyNzE0MjE=","number":71,"title":"Replace Makefile with CMake","user":{"login":"flibitijibibo","id":1396814,"node_id":"MDQ6VXNlcjEzOTY4MTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1396814?v=4","gravatar_id":"","url":"https://api.github.com/users/flibitijibibo","html_url":"https://github.com/flibitijibibo","followers_url":"https://api.github.com/users/flibitijibibo/followers","following_url":"https://api.github.com/users/flibitijibibo/following{/other_user}","gists_url":"https://api.github.com/users/flibitijibibo/gists{/gist_id}","starred_url":"https://api.github.com/users/flibitijibibo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flibitijibibo/subscriptions","organizations_url":"https://api.github.com/users/flibitijibibo/orgs","repos_url":"https://api.github.com/users/flibitijibibo/repos","events_url":"https://api.github.com/users/flibitijibibo/events{/privacy}","received_events_url":"https://api.github.com/users/flibitijibibo/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":19,"created_at":"2018-11-19T15:39:51Z","updated_at":"2018-12-09T22:42:48Z","closed_at":"2018-12-06T21:09:34Z","author_association":"MEMBER","body":"I think enough cases have come up to consider replacing the Makefile... Typically I just write a handwritten Makefile because there's not much you're meant to do with the library, but FAudio has run into WAY more use cases than anything I've ever built before, so CMake is starting to make a little more sense now. There are many reasons for this, including easy Debug/Release configuration, a clear options list (FFmpeg, XNA_Song, etc), improving the utils/ builds, and if we can, integrating the cpp/ folder's builds.\r\n\r\nNote that this is replacing ONLY the Makefiles. The VS/Xcode projects will stay as-is. (Maik, I'll still take the Android.mk if that's still useful)\r\n\r\nI wrote up a basic file that covers the core sources, with a bunch of TODOs to fill in:\r\n\r\nhttps://github.com/FNA-XNA/FAudio/tree/cmake\r\n\r\nA bunch of people are involved, so here's a list so everyone has an idea of what's going on:\r\n- Myself and @aeikum need this to work not just with Proton's build system, but with the needs of the various Linux distributions. If we're going to integrate FAudio into Wine, we need to make it easy for distros to package FAudio first. @GloriousEggroll has been working on the Proton build with FAudio's Makefile and has been hacking my build files to death, so we have a decent idea of what we need to fix to make that happen.\r\n- @JohanSmet wrote the build system for the COM wrapper and Wine DLL; thankfully the two aren't wildly different but they do have some specific needs that have to be introduced just for those files somehow. @GloriousEggroll was playing with this a lot for Warframe, before we started looking at the Proton build.\r\n- @cybik and @NeroBurner actually wrote their own CMake projects already, we just need to write a new CMakeLists.txt that covers the whole repo, not just the core FAudio sources.\r\n\r\nAs far as mandatory requirements go, we're stuck supporting Debian's criminally old CMake version, 3.7. Yes, it really is that old. Aside from this limitation, there aren't really any hard rules I can think of.\r\n\r\nI'm currently stuck on the code side of things, but I know a lot of people were getting frustrated with my crappy old build system so I thought I'd open this up for anyone who's ready to throw it in the dumpster.\r\n\r\nChecklist:\r\n- [x] libFAudio\r\n- [x] utils\r\n- [x] tests\r\n- [x] cpp (MinGW only)\r\n- [x] FFmpeg"},"comment":{"url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/comments/445578937","html_url":"https://github.com/FNA-XNA/FAudio/issues/71#issuecomment-445578937","issue_url":"https://api.github.com/repos/FNA-XNA/FAudio/issues/71","id":445578937,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTU3ODkzNw==","user":{"login":"NeroBurner","id":9076163,"node_id":"MDQ6VXNlcjkwNzYxNjM=","avatar_url":"https://avatars1.githubusercontent.com/u/9076163?v=4","gravatar_id":"","url":"https://api.github.com/users/NeroBurner","html_url":"https://github.com/NeroBurner","followers_url":"https://api.github.com/users/NeroBurner/followers","following_url":"https://api.github.com/users/NeroBurner/following{/other_user}","gists_url":"https://api.github.com/users/NeroBurner/gists{/gist_id}","starred_url":"https://api.github.com/users/NeroBurner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NeroBurner/subscriptions","organizations_url":"https://api.github.com/users/NeroBurner/orgs","repos_url":"https://api.github.com/users/NeroBurner/repos","events_url":"https://api.github.com/users/NeroBurner/events{/privacy}","received_events_url":"https://api.github.com/users/NeroBurner/received_events","type":"User","site_admin":false},"created_at":"2018-12-09T22:42:48Z","updated_at":"2018-12-09T22:42:48Z","author_association":"CONTRIBUTOR","body":"yes looks good :+1: \r\n"}}
{"actor":{"display_login":"NeroBurner"}}