{"action":"created","issue":{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/116","labels_url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/116/labels{/name}","comments_url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/116/comments","events_url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/116/events","html_url":"https://github.com/cpluspluscom/ChessPlusPlus/pull/116","id":109259317,"number":116,"title":"Updated Travis & Rewritten CMake","user":{"login":"LB--","id":1296838,"avatar_url":"https://avatars.githubusercontent.com/u/1296838?v=3","gravatar_id":"","url":"https://api.github.com/users/LB--","html_url":"https://github.com/LB--","followers_url":"https://api.github.com/users/LB--/followers","following_url":"https://api.github.com/users/LB--/following{/other_user}","gists_url":"https://api.github.com/users/LB--/gists{/gist_id}","starred_url":"https://api.github.com/users/LB--/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LB--/subscriptions","organizations_url":"https://api.github.com/users/LB--/orgs","repos_url":"https://api.github.com/users/LB--/repos","events_url":"https://api.github.com/users/LB--/events{/privacy}","received_events_url":"https://api.github.com/users/LB--/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/labels/enhancement","name":"enhancement","color":"009800"},{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/labels/help%20wanted","name":"help wanted","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"ResidentBiscuit","id":3362733,"avatar_url":"https://avatars.githubusercontent.com/u/3362733?v=3","gravatar_id":"","url":"https://api.github.com/users/ResidentBiscuit","html_url":"https://github.com/ResidentBiscuit","followers_url":"https://api.github.com/users/ResidentBiscuit/followers","following_url":"https://api.github.com/users/ResidentBiscuit/following{/other_user}","gists_url":"https://api.github.com/users/ResidentBiscuit/gists{/gist_id}","starred_url":"https://api.github.com/users/ResidentBiscuit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ResidentBiscuit/subscriptions","organizations_url":"https://api.github.com/users/ResidentBiscuit/orgs","repos_url":"https://api.github.com/users/ResidentBiscuit/repos","events_url":"https://api.github.com/users/ResidentBiscuit/events{/privacy}","received_events_url":"https://api.github.com/users/ResidentBiscuit/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/milestones/6","html_url":"https://github.com/cpluspluscom/ChessPlusPlus/milestones/Test%20Suite","labels_url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/milestones/6/labels","id":990419,"number":6,"title":"Test Suite","description":"We need to add test cases for the code so that travis can make sure it works for us.","creator":{"login":"LB--","id":1296838,"avatar_url":"https://avatars.githubusercontent.com/u/1296838?v=3","gravatar_id":"","url":"https://api.github.com/users/LB--","html_url":"https://github.com/LB--","followers_url":"https://api.github.com/users/LB--/followers","following_url":"https://api.github.com/users/LB--/following{/other_user}","gists_url":"https://api.github.com/users/LB--/gists{/gist_id}","starred_url":"https://api.github.com/users/LB--/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LB--/subscriptions","organizations_url":"https://api.github.com/users/LB--/orgs","repos_url":"https://api.github.com/users/LB--/repos","events_url":"https://api.github.com/users/LB--/events{/privacy}","received_events_url":"https://api.github.com/users/LB--/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2015-02-22T22:53:40Z","updated_at":"2015-10-01T09:13:05Z","due_on":"2015-12-31T06:00:00Z","closed_at":null},"comments":2,"created_at":"2015-10-01T09:13:05Z","updated_at":"2015-10-01T15:05:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/pulls/116","html_url":"https://github.com/cpluspluscom/ChessPlusPlus/pull/116","diff_url":"https://github.com/cpluspluscom/ChessPlusPlus/pull/116.diff","patch_url":"https://github.com/cpluspluscom/ChessPlusPlus/pull/116.patch"},"body":"So, a lot of time has gone by, and in that time I have learned a lot more about CMake. Also in that time, Travis has deprecated the infrastructure we were using and moved to a container-based infrastructure via Docker which doesn't yet support `sudo`. So, I rewrote the CMake stuff using the knowledge I now have about CMake, and I redid the Travis script to no longer run on the legacy infrastructure. Travis supports caching now, so although we still need to build SFML and Boost manually, they can be cached so that future builds run much faster.\r\n\r\n**Please test the new CMake build on your systems!** I don't have access to Mac/OSX, so I can only test on my own Windows 10 and whatever systems Travis has. Currently Travis tests with GCC 5.1 and Clang 3.8 on Ubuntu. Travis supports OSX too but I have no idea how that works - I'll be doing a separate PR for that because it's another huge undertaking (more research, trial, and error, repeat).\r\n\r\nRemember that if you don't have SFML and Boost installed to standard locations, you will definitely need to pass `-DSFML_ROOT=path` and `-DBOOST_ROOT=path` to CMake. If you want to use static linking with SFML, pass `-DSFML_STATIC_LIBRARIES=ON` to CMake as well (and similarly if you build Boost statically with MSVC, pass `-DBoost_USE_STATIC_LIBS=ON` to CMake). If you want hints about the general build process, read the Travis script. Make sure you're using the latest version of your preferred compiler for your system that you can. If you need to build Boost yourself, you can save time by only building `--with-system --with-filesystem` because that's all that is required by ChessPlusPlus currently.\r\n\r\nI have tested with nuwen MinGW 5.1.0 (works very well) and Visual Studio 2015 (everything compiles, but Boost 1.59 is completely broken and tries to link to 1.58 lib files when linking ChessPlusPlus - maybe the Boost devs don't even know VS2015 exists?).\r\n\r\nThings I will be doing in separate PRs:\r\n* Adding OSX support on Travis\r\n* Getting CMake to build SFML for you with [CMake External Projects](https://cmake.org/cmake/help/latest/module/ExternalProject.html)\r\n\r\nAfter all that is out of the way I'll start tackling the other issues (separating client and server logic for multiplayer, adding unit tests, etc.) - though no promises as to the timely nature of these things."},"comment":{"url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/comments/144755136","html_url":"https://github.com/cpluspluscom/ChessPlusPlus/pull/116#issuecomment-144755136","issue_url":"https://api.github.com/repos/cpluspluscom/ChessPlusPlus/issues/116","id":144755136,"user":{"login":"LB--","id":1296838,"avatar_url":"https://avatars.githubusercontent.com/u/1296838?v=3","gravatar_id":"","url":"https://api.github.com/users/LB--","html_url":"https://github.com/LB--","followers_url":"https://api.github.com/users/LB--/followers","following_url":"https://api.github.com/users/LB--/following{/other_user}","gists_url":"https://api.github.com/users/LB--/gists{/gist_id}","starred_url":"https://api.github.com/users/LB--/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LB--/subscriptions","organizations_url":"https://api.github.com/users/LB--/orgs","repos_url":"https://api.github.com/users/LB--/repos","events_url":"https://api.github.com/users/LB--/events{/privacy}","received_events_url":"https://api.github.com/users/LB--/received_events","type":"User","site_admin":false},"created_at":"2015-10-01T15:05:00Z","updated_at":"2015-10-01T15:05:00Z","body":"I meant to squash them but forgot, it's done now."}}