{"action":"closed","number":1883,"pull_request":{"url":"https://api.github.com/repos/realm/realm-core/pulls/1883","id":73562525,"html_url":"https://github.com/realm/realm-core/pull/1883","diff_url":"https://github.com/realm/realm-core/pull/1883.diff","patch_url":"https://github.com/realm/realm-core/pull/1883.patch","issue_url":"https://api.github.com/repos/realm/realm-core/issues/1883","number":1883,"state":"closed","locked":false,"title":"Switch to CMake","user":{"login":"danielpovlsen","id":77737,"avatar_url":"https://avatars1.githubusercontent.com/u/77737?v=3","gravatar_id":"","url":"https://api.github.com/users/danielpovlsen","html_url":"https://github.com/danielpovlsen","followers_url":"https://api.github.com/users/danielpovlsen/followers","following_url":"https://api.github.com/users/danielpovlsen/following{/other_user}","gists_url":"https://api.github.com/users/danielpovlsen/gists{/gist_id}","starred_url":"https://api.github.com/users/danielpovlsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielpovlsen/subscriptions","organizations_url":"https://api.github.com/users/danielpovlsen/orgs","repos_url":"https://api.github.com/users/danielpovlsen/repos","events_url":"https://api.github.com/users/danielpovlsen/events{/privacy}","received_events_url":"https://api.github.com/users/danielpovlsen/received_events","type":"User","site_admin":false},"body":"This PR introduces CMake as a meta build system for realm-core. CMake will generate projects upon request in one of many formats. This means that all the makefiles, Xcode, and Visual Studio projects have been removed. This allows to have one source of truth and removes the need to update several projects when changes are made to the build system.\r\n\r\nIt is a custom in CMake to create a build folder from which CMake will be invoked. This folder will contain all the build artifacts, including object files, generated makefiles, static and dynamic libraries and so on. This means that to clean a project all that's needed is to remove the build folder. The source folders will no longer be polluted with build artifacts.\r\n\r\nThe readme and how-to-build files have been updated and provide a cmake primer. Please review such changes with care and let me know if anything can be expressed in a clearer way. Providing a full documentation and description of CMake is of course not the purpose of such documents, and the CMake documentation is of course always available [here](https://cmake.org/cmake/help/v3.7/release/3.7.html).\r\n\r\nThe Jenkinsfile has been heavily modified as well. Now Android and Cocoa builds happen in parallel, which makes the build take around 10 minutes as opposed to the usual 40 minutes.\r\n\r\nThe way the artifacts are packaged is also changed. Now architectures are built and packaged separately and the filename follows the following convention: `realm-core-<build type>-<version>-<operating system>-<arch>-<component>.<extension>`. There are two components available: `release` and `devel`. `release` contains the dynamic library and is what would normally be installed system-wide with rpms, debs and so on. `devel` contains the static libraries and the include files.\r\n\r\nAll static libraries are currently compiled in PIC mode, as they all will be, at some point, be included in a dynamic library.\r\n\r\nFixes #1543 ","created_at":"2016-06-13T11:48:31Z","updated_at":"2017-06-26T18:22:50Z","closed_at":"2017-06-26T18:22:50Z","merged_at":"2017-06-26T18:22:50Z","merge_commit_sha":"35b100d5d97432cb7a3271c193ba69d864bec8a7","assignee":{"login":"emanuelez","id":473050,"avatar_url":"https://avatars3.githubusercontent.com/u/473050?v=3","gravatar_id":"","url":"https://api.github.com/users/emanuelez","html_url":"https://github.com/emanuelez","followers_url":"https://api.github.com/users/emanuelez/followers","following_url":"https://api.github.com/users/emanuelez/following{/other_user}","gists_url":"https://api.github.com/users/emanuelez/gists{/gist_id}","starred_url":"https://api.github.com/users/emanuelez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emanuelez/subscriptions","organizations_url":"https://api.github.com/users/emanuelez/orgs","repos_url":"https://api.github.com/users/emanuelez/repos","events_url":"https://api.github.com/users/emanuelez/events{/privacy}","received_events_url":"https://api.github.com/users/emanuelez/received_events","type":"User","site_admin":false},"assignees":[{"login":"emanuelez","id":473050,"avatar_url":"https://avatars3.githubusercontent.com/u/473050?v=3","gravatar_id":"","url":"https://api.github.com/users/emanuelez","html_url":"https://github.com/emanuelez","followers_url":"https://api.github.com/users/emanuelez/followers","following_url":"https://api.github.com/users/emanuelez/following{/other_user}","gists_url":"https://api.github.com/users/emanuelez/gists{/gist_id}","starred_url":"https://api.github.com/users/emanuelez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emanuelez/subscriptions","organizations_url":"https://api.github.com/users/emanuelez/orgs","repos_url":"https://api.github.com/users/emanuelez/repos","events_url":"https://api.github.com/users/emanuelez/events{/privacy}","received_events_url":"https://api.github.com/users/emanuelez/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/realm/realm-core/pulls/1883/commits","review_comments_url":"https://api.github.com/repos/realm/realm-core/pulls/1883/comments","review_comment_url":"https://api.github.com/repos/realm/realm-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/realm/realm-core/issues/1883/comments","statuses_url":"https://api.github.com/repos/realm/realm-core/statuses/22f1d0e177258002a1c72883ed88f917aeabdaff","head":{"label":"realm:su/cmake-experiment","ref":"su/cmake-experiment","sha":"22f1d0e177258002a1c72883ed88f917aeabdaff","user":{"login":"realm","id":7575099,"avatar_url":"https://avatars3.githubusercontent.com/u/7575099?v=3","gravatar_id":"","url":"https://api.github.com/users/realm","html_url":"https://github.com/realm","followers_url":"https://api.github.com/users/realm/followers","following_url":"https://api.github.com/users/realm/following{/other_user}","gists_url":"https://api.github.com/users/realm/gists{/gist_id}","starred_url":"https://api.github.com/users/realm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/realm/subscriptions","organizations_url":"https://api.github.com/users/realm/orgs","repos_url":"https://api.github.com/users/realm/repos","events_url":"https://api.github.com/users/realm/events{/privacy}","received_events_url":"https://api.github.com/users/realm/received_events","type":"Organization","site_admin":false},"repo":{"id":1917262,"name":"realm-core","full_name":"realm/realm-core","owner":{"login":"realm","id":7575099,"avatar_url":"https://avatars3.githubusercontent.com/u/7575099?v=3","gravatar_id":"","url":"https://api.github.com/users/realm","html_url":"https://github.com/realm","followers_url":"https://api.github.com/users/realm/followers","following_url":"https://api.github.com/users/realm/following{/other_user}","gists_url":"https://api.github.com/users/realm/gists{/gist_id}","starred_url":"https://api.github.com/users/realm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/realm/subscriptions","organizations_url":"https://api.github.com/users/realm/orgs","repos_url":"https://api.github.com/users/realm/repos","events_url":"https://api.github.com/users/realm/events{/privacy}","received_events_url":"https://api.github.com/users/realm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/realm/realm-core","description":"Core database component for the Realm Mobile Database SDKs","fork":false,"url":"https://api.github.com/repos/realm/realm-core","forks_url":"https://api.github.com/repos/realm/realm-core/forks","keys_url":"https://api.github.com/repos/realm/realm-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/realm/realm-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/realm/realm-core/teams","hooks_url":"https://api.github.com/repos/realm/realm-core/hooks","issue_events_url":"https://api.github.com/repos/realm/realm-core/issues/events{/number}","events_url":"https://api.github.com/repos/realm/realm-core/events","assignees_url":"https://api.github.com/repos/realm/realm-core/assignees{/user}","branches_url":"https://api.github.com/repos/realm/realm-core/branches{/branch}","tags_url":"https://api.github.com/repos/realm/realm-core/tags","blobs_url":"https://api.github.com/repos/realm/realm-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/realm/realm-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/realm/realm-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/realm/realm-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/realm/realm-core/statuses/{sha}","languages_url":"https://api.github.com/repos/realm/realm-core/languages","stargazers_url":"https://api.github.com/repos/realm/realm-core/stargazers","contributors_url":"https://api.github.com/repos/realm/realm-core/contributors","subscribers_url":"https://api.github.com/repos/realm/realm-core/subscribers","subscription_url":"https://api.github.com/repos/realm/realm-core/subscription","commits_url":"https://api.github.com/repos/realm/realm-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/realm/realm-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/realm/realm-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/realm/realm-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/realm/realm-core/contents/{+path}","compare_url":"https://api.github.com/repos/realm/realm-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/realm/realm-core/merges","archive_url":"https://api.github.com/repos/realm/realm-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/realm/realm-core/downloads","issues_url":"https://api.github.com/repos/realm/realm-core/issues{/number}","pulls_url":"https://api.github.com/repos/realm/realm-core/pulls{/number}","milestones_url":"https://api.github.com/repos/realm/realm-core/milestones{/number}","notifications_url":"https://api.github.com/repos/realm/realm-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/realm/realm-core/labels{/name}","releases_url":"https://api.github.com/repos/realm/realm-core/releases{/id}","deployments_url":"https://api.github.com/repos/realm/realm-core/deployments","created_at":"2011-06-18T21:18:46Z","updated_at":"2017-06-23T02:34:04Z","pushed_at":"2017-06-26T18:22:50Z","git_url":"git://github.com/realm/realm-core.git","ssh_url":"git@github.com:realm/realm-core.git","clone_url":"https://github.com/realm/realm-core.git","svn_url":"https://github.com/realm/realm-core","homepage":"https://realm.io","size":53001,"stargazers_count":554,"watchers_count":554,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":189,"forks":34,"open_issues":189,"watchers":554,"default_branch":"master"}},"base":{"label":"realm:master","ref":"master","sha":"78b21670d59615678ac7998fc1a8a4bfdfdd7173","user":{"login":"realm","id":7575099,"avatar_url":"https://avatars3.githubusercontent.com/u/7575099?v=3","gravatar_id":"","url":"https://api.github.com/users/realm","html_url":"https://github.com/realm","followers_url":"https://api.github.com/users/realm/followers","following_url":"https://api.github.com/users/realm/following{/other_user}","gists_url":"https://api.github.com/users/realm/gists{/gist_id}","starred_url":"https://api.github.com/users/realm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/realm/subscriptions","organizations_url":"https://api.github.com/users/realm/orgs","repos_url":"https://api.github.com/users/realm/repos","events_url":"https://api.github.com/users/realm/events{/privacy}","received_events_url":"https://api.github.com/users/realm/received_events","type":"Organization","site_admin":false},"repo":{"id":1917262,"name":"realm-core","full_name":"realm/realm-core","owner":{"login":"realm","id":7575099,"avatar_url":"https://avatars3.githubusercontent.com/u/7575099?v=3","gravatar_id":"","url":"https://api.github.com/users/realm","html_url":"https://github.com/realm","followers_url":"https://api.github.com/users/realm/followers","following_url":"https://api.github.com/users/realm/following{/other_user}","gists_url":"https://api.github.com/users/realm/gists{/gist_id}","starred_url":"https://api.github.com/users/realm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/realm/subscriptions","organizations_url":"https://api.github.com/users/realm/orgs","repos_url":"https://api.github.com/users/realm/repos","events_url":"https://api.github.com/users/realm/events{/privacy}","received_events_url":"https://api.github.com/users/realm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/realm/realm-core","description":"Core database component for the Realm Mobile Database SDKs","fork":false,"url":"https://api.github.com/repos/realm/realm-core","forks_url":"https://api.github.com/repos/realm/realm-core/forks","keys_url":"https://api.github.com/repos/realm/realm-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/realm/realm-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/realm/realm-core/teams","hooks_url":"https://api.github.com/repos/realm/realm-core/hooks","issue_events_url":"https://api.github.com/repos/realm/realm-core/issues/events{/number}","events_url":"https://api.github.com/repos/realm/realm-core/events","assignees_url":"https://api.github.com/repos/realm/realm-core/assignees{/user}","branches_url":"https://api.github.com/repos/realm/realm-core/branches{/branch}","tags_url":"https://api.github.com/repos/realm/realm-core/tags","blobs_url":"https://api.github.com/repos/realm/realm-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/realm/realm-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/realm/realm-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/realm/realm-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/realm/realm-core/statuses/{sha}","languages_url":"https://api.github.com/repos/realm/realm-core/languages","stargazers_url":"https://api.github.com/repos/realm/realm-core/stargazers","contributors_url":"https://api.github.com/repos/realm/realm-core/contributors","subscribers_url":"https://api.github.com/repos/realm/realm-core/subscribers","subscription_url":"https://api.github.com/repos/realm/realm-core/subscription","commits_url":"https://api.github.com/repos/realm/realm-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/realm/realm-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/realm/realm-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/realm/realm-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/realm/realm-core/contents/{+path}","compare_url":"https://api.github.com/repos/realm/realm-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/realm/realm-core/merges","archive_url":"https://api.github.com/repos/realm/realm-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/realm/realm-core/downloads","issues_url":"https://api.github.com/repos/realm/realm-core/issues{/number}","pulls_url":"https://api.github.com/repos/realm/realm-core/pulls{/number}","milestones_url":"https://api.github.com/repos/realm/realm-core/milestones{/number}","notifications_url":"https://api.github.com/repos/realm/realm-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/realm/realm-core/labels{/name}","releases_url":"https://api.github.com/repos/realm/realm-core/releases{/id}","deployments_url":"https://api.github.com/repos/realm/realm-core/deployments","created_at":"2011-06-18T21:18:46Z","updated_at":"2017-06-23T02:34:04Z","pushed_at":"2017-06-26T18:22:50Z","git_url":"git://github.com/realm/realm-core.git","ssh_url":"git@github.com:realm/realm-core.git","clone_url":"https://github.com/realm/realm-core.git","svn_url":"https://github.com/realm/realm-core","homepage":"https://realm.io","size":53001,"stargazers_count":554,"watchers_count":554,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":189,"forks":34,"open_issues":189,"watchers":554,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/realm/realm-core/pulls/1883"},"html":{"href":"https://github.com/realm/realm-core/pull/1883"},"issue":{"href":"https://api.github.com/repos/realm/realm-core/issues/1883"},"comments":{"href":"https://api.github.com/repos/realm/realm-core/issues/1883/comments"},"review_comments":{"href":"https://api.github.com/repos/realm/realm-core/pulls/1883/comments"},"review_comment":{"href":"https://api.github.com/repos/realm/realm-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/realm/realm-core/pulls/1883/commits"},"statuses":{"href":"https://api.github.com/repos/realm/realm-core/statuses/22f1d0e177258002a1c72883ed88f917aeabdaff"}},"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"finnschiermer","id":5137726,"avatar_url":"https://avatars1.githubusercontent.com/u/5137726?v=3","gravatar_id":"","url":"https://api.github.com/users/finnschiermer","html_url":"https://github.com/finnschiermer","followers_url":"https://api.github.com/users/finnschiermer/followers","following_url":"https://api.github.com/users/finnschiermer/following{/other_user}","gists_url":"https://api.github.com/users/finnschiermer/gists{/gist_id}","starred_url":"https://api.github.com/users/finnschiermer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/finnschiermer/subscriptions","organizations_url":"https://api.github.com/users/finnschiermer/orgs","repos_url":"https://api.github.com/users/finnschiermer/repos","events_url":"https://api.github.com/users/finnschiermer/events{/privacy}","received_events_url":"https://api.github.com/users/finnschiermer/received_events","type":"User","site_admin":false},"comments":57,"review_comments":58,"maintainer_can_modify":false,"commits":492,"additions":4823,"deletions":13924,"changed_files":137}}
{"actor":{"display_login":"finnschiermer"}}