{"action":"opened","issue":{"url":"https://api.github.com/repos/afritz1/OpenTESArena/issues/58","repository_url":"https://api.github.com/repos/afritz1/OpenTESArena","labels_url":"https://api.github.com/repos/afritz1/OpenTESArena/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/afritz1/OpenTESArena/issues/58/comments","events_url":"https://api.github.com/repos/afritz1/OpenTESArena/issues/58/events","html_url":"https://github.com/afritz1/OpenTESArena/issues/58","id":194801540,"number":58,"title":"Remodel the repository for CMake","user":{"login":"afritz1","id":6729557,"avatar_url":"https://avatars.githubusercontent.com/u/6729557?v=3","gravatar_id":"","url":"https://api.github.com/users/afritz1","html_url":"https://github.com/afritz1","followers_url":"https://api.github.com/users/afritz1/followers","following_url":"https://api.github.com/users/afritz1/following{/other_user}","gists_url":"https://api.github.com/users/afritz1/gists{/gist_id}","starred_url":"https://api.github.com/users/afritz1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afritz1/subscriptions","organizations_url":"https://api.github.com/users/afritz1/orgs","repos_url":"https://api.github.com/users/afritz1/repos","events_url":"https://api.github.com/users/afritz1/events{/privacy}","received_events_url":"https://api.github.com/users/afritz1/received_events","type":"User","site_admin":false},"labels":[{"id":318306907,"url":"https://api.github.com/repos/afritz1/OpenTESArena/labels/help%20wanted","name":"help wanted","color":"159818","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-10T23:36:29Z","updated_at":"2016-12-10T23:36:29Z","closed_at":null,"body":"I would like to move the repository over to CMake so there's no more Visual Studio clutter lying around, and so other Windows programmers don't have to mess with my project files for their own computer.\r\n\r\nI've been kind of avoiding CMake because it wasn't producing desirable Visual Studio files (i.e., just plopping all source files into one folder), so the CMakeLists files in the repo will need to have some more configuration done so they produce pretty VS project files in addition to Linux Makefiles, etc.. \r\n\r\nMaybe we could take some hints from the [OpenMW](https://github.com/OpenMW/openmw) or [freeablo](https://github.com/wheybags/freeablo) repositories. I'm not an expert on CMake, so help is appreciated!\r\n\r\nHere's the general structure I'm envisioning. The new `apps` folder is there in case the repo ever has something else added, such as an Arena image viewer.\r\n```\r\nmaster:\r\n  apps\r\n    OpenTESArena\r\n      Assets\r\n      Entities\r\n      Game\r\n      ...\r\n      Main.cpp\r\n  cmake\r\n  components\r\n  data\r\n  docs\r\n  options\r\n  samples\r\n  .gitattributes\r\n  .gitignore\r\n  ...\r\n  CMakeLists.txt\r\n  icon.ico\r\n  ...\r\n```\r\n\r\nThe results of CMake would go in a new `build` folder, and that's also where the executable would go, along with a copy of `data` and `options`.\r\n\r\n`.travis.yml` will also need to be updated with the new directories, etc..\r\n\r\nSome general requirements for build rules:\r\n- C++11, SDL2, OpenAL Soft, OpenCL, WildMIDI\r\n- Some minimum required CMake version\r\n- Preprocessor definitions (HAVE_WILDMIDI, _SCL_SECURE_NO_WARNINGS)\r\n- Debug and release modes, x86 and x64\r\n- Put solution/makefile in generated `build` folder\r\n- Build \"OpenTESArena\" executable using code in `apps/OpenTESArena` and `components` (no more \"TESArena\" on Linux)\r\n- Use `icon.ico` when building executable\r\n- Copy `data` and `options` to `build`"}}
{"actor":{"display_login":"afritz1"}}