{"action":"created","comment":{"url":"https://api.github.com/repos/wavelab/libwave/pulls/comments/147602132","pull_request_review_id":72718075,"id":147602132,"diff_hunk":"@@ -1,28 +1,20 @@\n PROJECT(wave_optimization)\n \n-# PACKAGES\n-FIND_PACKAGE(GTSAM) # optional for now; used only in tests (@todo)\n-\n-WAVE_ADD_LIBRARY(${PROJECT_NAME}\n-    src/ceres/ba.cpp\n-    src/ceres/ceres_examples.cpp)\n-\n-# Use these headers when building, and make clients use them\n-WAVE_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC include)\n-\n-# Depend on these modules and external libraries, and make clients use them\n-TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC\n+WAVE_ADD_MODULE(${PROJECT_NAME} DEPENDS\n     wave::utils\n     wave::kinematics\n     wave::vision\n     Eigen3::Eigen\n-    ceres)\n+    ceres\n+    SOURCES\n+    src/ceres/ba.cpp\n+    src/ceres/ceres_examples.cpp)","path":"wave_optimization/CMakeLists.txt","position":24,"original_position":24,"commit_id":"c956ab1391b47a80927b4acb6afba1821008dc1a","original_commit_id":"3d9f351ed45db7fb24c1d70406391bb5cd45d4de","user":{"login":"leokoppel","id":3952195,"avatar_url":"https://avatars2.githubusercontent.com/u/3952195?v=4","gravatar_id":"","url":"https://api.github.com/users/leokoppel","html_url":"https://github.com/leokoppel","followers_url":"https://api.github.com/users/leokoppel/followers","following_url":"https://api.github.com/users/leokoppel/following{/other_user}","gists_url":"https://api.github.com/users/leokoppel/gists{/gist_id}","starred_url":"https://api.github.com/users/leokoppel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leokoppel/subscriptions","organizations_url":"https://api.github.com/users/leokoppel/orgs","repos_url":"https://api.github.com/users/leokoppel/repos","events_url":"https://api.github.com/users/leokoppel/events{/privacy}","received_events_url":"https://api.github.com/users/leokoppel/received_events","type":"User","site_admin":false},"body":"Yes well we will _actually_ use them soon... I hope","created_at":"2017-10-30T00:46:31Z","updated_at":"2017-10-30T00:46:31Z","html_url":"https://github.com/wavelab/libwave/pull/231#discussion_r147602132","pull_request_url":"https://api.github.com/repos/wavelab/libwave/pulls/231","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/comments/147602132"},"html":{"href":"https://github.com/wavelab/libwave/pull/231#discussion_r147602132"},"pull_request":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/231"}},"in_reply_to_id":147599561},"pull_request":{"url":"https://api.github.com/repos/wavelab/libwave/pulls/231","id":149393001,"html_url":"https://github.com/wavelab/libwave/pull/231","diff_url":"https://github.com/wavelab/libwave/pull/231.diff","patch_url":"https://github.com/wavelab/libwave/pull/231.patch","issue_url":"https://api.github.com/repos/wavelab/libwave/issues/231","number":231,"state":"open","locked":false,"title":"CMake: allow partial build and finding components","user":{"login":"leokoppel","id":3952195,"avatar_url":"https://avatars2.githubusercontent.com/u/3952195?v=4","gravatar_id":"","url":"https://api.github.com/users/leokoppel","html_url":"https://github.com/leokoppel","followers_url":"https://api.github.com/users/leokoppel/followers","following_url":"https://api.github.com/users/leokoppel/following{/other_user}","gists_url":"https://api.github.com/users/leokoppel/gists{/gist_id}","starred_url":"https://api.github.com/users/leokoppel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leokoppel/subscriptions","organizations_url":"https://api.github.com/users/leokoppel/orgs","repos_url":"https://api.github.com/users/leokoppel/repos","events_url":"https://api.github.com/users/leokoppel/events{/privacy}","received_events_url":"https://api.github.com/users/leokoppel/received_events","type":"User","site_admin":false},"body":"This is a higher priority than I thought since we have some projects which need parts of libwave, but don't want to install all the dependencies.\r\n\r\n- There is a BUILD_wave_<module> option for each module, which the user can set OFF to disable that module\r\n- Each module checks its dependencies and disables its own build if any are missing\r\n- There is a new helper, `WAVE_ADD_MODULE`, which does almost everything\r\n- The user can call `find_package(wave COMPONENTS geometry ...)`\r\n- Each module's dependencies are checked again, in case a dependency present at build time is no longer found.\r\n\r\nI used \"component\" and \"module\" somewhat interchangeably, any preferences?\r\n\r\nThis dependency system is less sophisticated than those used by some large projects. For example, a module can't be disabled by default, the modules must be listed in top-level CMakeLists in a particular order with no circular dependencies allowed, and the messages could be prettier. However it is simple and enough for now.\r\n","created_at":"2017-10-29T16:20:02Z","updated_at":"2017-10-30T00:46:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bb412be1bf7baa42cf9f7dde147178f6aaaf38a2","assignee":{"login":"leokoppel","id":3952195,"avatar_url":"https://avatars2.githubusercontent.com/u/3952195?v=4","gravatar_id":"","url":"https://api.github.com/users/leokoppel","html_url":"https://github.com/leokoppel","followers_url":"https://api.github.com/users/leokoppel/followers","following_url":"https://api.github.com/users/leokoppel/following{/other_user}","gists_url":"https://api.github.com/users/leokoppel/gists{/gist_id}","starred_url":"https://api.github.com/users/leokoppel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leokoppel/subscriptions","organizations_url":"https://api.github.com/users/leokoppel/orgs","repos_url":"https://api.github.com/users/leokoppel/repos","events_url":"https://api.github.com/users/leokoppel/events{/privacy}","received_events_url":"https://api.github.com/users/leokoppel/received_events","type":"User","site_admin":false},"assignees":[{"login":"leokoppel","id":3952195,"avatar_url":"https://avatars2.githubusercontent.com/u/3952195?v=4","gravatar_id":"","url":"https://api.github.com/users/leokoppel","html_url":"https://github.com/leokoppel","followers_url":"https://api.github.com/users/leokoppel/followers","following_url":"https://api.github.com/users/leokoppel/following{/other_user}","gists_url":"https://api.github.com/users/leokoppel/gists{/gist_id}","starred_url":"https://api.github.com/users/leokoppel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leokoppel/subscriptions","organizations_url":"https://api.github.com/users/leokoppel/orgs","repos_url":"https://api.github.com/users/leokoppel/repos","events_url":"https://api.github.com/users/leokoppel/events{/privacy}","received_events_url":"https://api.github.com/users/leokoppel/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"chutsu","id":91460,"avatar_url":"https://avatars1.githubusercontent.com/u/91460?v=4","gravatar_id":"","url":"https://api.github.com/users/chutsu","html_url":"https://github.com/chutsu","followers_url":"https://api.github.com/users/chutsu/followers","following_url":"https://api.github.com/users/chutsu/following{/other_user}","gists_url":"https://api.github.com/users/chutsu/gists{/gist_id}","starred_url":"https://api.github.com/users/chutsu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chutsu/subscriptions","organizations_url":"https://api.github.com/users/chutsu/orgs","repos_url":"https://api.github.com/users/chutsu/repos","events_url":"https://api.github.com/users/chutsu/events{/privacy}","received_events_url":"https://api.github.com/users/chutsu/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/wavelab/libwave/pulls/231/commits","review_comments_url":"https://api.github.com/repos/wavelab/libwave/pulls/231/comments","review_comment_url":"https://api.github.com/repos/wavelab/libwave/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wavelab/libwave/issues/231/comments","statuses_url":"https://api.github.com/repos/wavelab/libwave/statuses/c956ab1391b47a80927b4acb6afba1821008dc1a","head":{"label":"wavelab:cmake_components","ref":"cmake_components","sha":"c956ab1391b47a80927b4acb6afba1821008dc1a","user":{"login":"wavelab","id":13383159,"avatar_url":"https://avatars0.githubusercontent.com/u/13383159?v=4","gravatar_id":"","url":"https://api.github.com/users/wavelab","html_url":"https://github.com/wavelab","followers_url":"https://api.github.com/users/wavelab/followers","following_url":"https://api.github.com/users/wavelab/following{/other_user}","gists_url":"https://api.github.com/users/wavelab/gists{/gist_id}","starred_url":"https://api.github.com/users/wavelab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavelab/subscriptions","organizations_url":"https://api.github.com/users/wavelab/orgs","repos_url":"https://api.github.com/users/wavelab/repos","events_url":"https://api.github.com/users/wavelab/events{/privacy}","received_events_url":"https://api.github.com/users/wavelab/received_events","type":"Organization","site_admin":false},"repo":{"id":79469465,"name":"libwave","full_name":"wavelab/libwave","owner":{"login":"wavelab","id":13383159,"avatar_url":"https://avatars0.githubusercontent.com/u/13383159?v=4","gravatar_id":"","url":"https://api.github.com/users/wavelab","html_url":"https://github.com/wavelab","followers_url":"https://api.github.com/users/wavelab/followers","following_url":"https://api.github.com/users/wavelab/following{/other_user}","gists_url":"https://api.github.com/users/wavelab/gists{/gist_id}","starred_url":"https://api.github.com/users/wavelab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavelab/subscriptions","organizations_url":"https://api.github.com/users/wavelab/orgs","repos_url":"https://api.github.com/users/wavelab/repos","events_url":"https://api.github.com/users/wavelab/events{/privacy}","received_events_url":"https://api.github.com/users/wavelab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wavelab/libwave","description":"Wavelab SLAM Library","fork":false,"url":"https://api.github.com/repos/wavelab/libwave","forks_url":"https://api.github.com/repos/wavelab/libwave/forks","keys_url":"https://api.github.com/repos/wavelab/libwave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wavelab/libwave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wavelab/libwave/teams","hooks_url":"https://api.github.com/repos/wavelab/libwave/hooks","issue_events_url":"https://api.github.com/repos/wavelab/libwave/issues/events{/number}","events_url":"https://api.github.com/repos/wavelab/libwave/events","assignees_url":"https://api.github.com/repos/wavelab/libwave/assignees{/user}","branches_url":"https://api.github.com/repos/wavelab/libwave/branches{/branch}","tags_url":"https://api.github.com/repos/wavelab/libwave/tags","blobs_url":"https://api.github.com/repos/wavelab/libwave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wavelab/libwave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wavelab/libwave/git/refs{/sha}","trees_url":"https://api.github.com/repos/wavelab/libwave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wavelab/libwave/statuses/{sha}","languages_url":"https://api.github.com/repos/wavelab/libwave/languages","stargazers_url":"https://api.github.com/repos/wavelab/libwave/stargazers","contributors_url":"https://api.github.com/repos/wavelab/libwave/contributors","subscribers_url":"https://api.github.com/repos/wavelab/libwave/subscribers","subscription_url":"https://api.github.com/repos/wavelab/libwave/subscription","commits_url":"https://api.github.com/repos/wavelab/libwave/commits{/sha}","git_commits_url":"https://api.github.com/repos/wavelab/libwave/git/commits{/sha}","comments_url":"https://api.github.com/repos/wavelab/libwave/comments{/number}","issue_comment_url":"https://api.github.com/repos/wavelab/libwave/issues/comments{/number}","contents_url":"https://api.github.com/repos/wavelab/libwave/contents/{+path}","compare_url":"https://api.github.com/repos/wavelab/libwave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wavelab/libwave/merges","archive_url":"https://api.github.com/repos/wavelab/libwave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wavelab/libwave/downloads","issues_url":"https://api.github.com/repos/wavelab/libwave/issues{/number}","pulls_url":"https://api.github.com/repos/wavelab/libwave/pulls{/number}","milestones_url":"https://api.github.com/repos/wavelab/libwave/milestones{/number}","notifications_url":"https://api.github.com/repos/wavelab/libwave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wavelab/libwave/labels{/name}","releases_url":"https://api.github.com/repos/wavelab/libwave/releases{/id}","deployments_url":"https://api.github.com/repos/wavelab/libwave/deployments","created_at":"2017-01-19T15:58:52Z","updated_at":"2017-10-19T03:02:22Z","pushed_at":"2017-10-30T00:45:13Z","git_url":"git://github.com/wavelab/libwave.git","ssh_url":"git@github.com:wavelab/libwave.git","clone_url":"https://github.com/wavelab/libwave.git","svn_url":"https://github.com/wavelab/libwave","homepage":"https://wavelab.github.io/libwave/","size":278473,"stargazers_count":7,"watchers_count":7,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":44,"forks":3,"open_issues":44,"watchers":7,"default_branch":"master"}},"base":{"label":"wavelab:master","ref":"master","sha":"278e99c4a10f9d84d4d8065bf5feb828b9da0347","user":{"login":"wavelab","id":13383159,"avatar_url":"https://avatars0.githubusercontent.com/u/13383159?v=4","gravatar_id":"","url":"https://api.github.com/users/wavelab","html_url":"https://github.com/wavelab","followers_url":"https://api.github.com/users/wavelab/followers","following_url":"https://api.github.com/users/wavelab/following{/other_user}","gists_url":"https://api.github.com/users/wavelab/gists{/gist_id}","starred_url":"https://api.github.com/users/wavelab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavelab/subscriptions","organizations_url":"https://api.github.com/users/wavelab/orgs","repos_url":"https://api.github.com/users/wavelab/repos","events_url":"https://api.github.com/users/wavelab/events{/privacy}","received_events_url":"https://api.github.com/users/wavelab/received_events","type":"Organization","site_admin":false},"repo":{"id":79469465,"name":"libwave","full_name":"wavelab/libwave","owner":{"login":"wavelab","id":13383159,"avatar_url":"https://avatars0.githubusercontent.com/u/13383159?v=4","gravatar_id":"","url":"https://api.github.com/users/wavelab","html_url":"https://github.com/wavelab","followers_url":"https://api.github.com/users/wavelab/followers","following_url":"https://api.github.com/users/wavelab/following{/other_user}","gists_url":"https://api.github.com/users/wavelab/gists{/gist_id}","starred_url":"https://api.github.com/users/wavelab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavelab/subscriptions","organizations_url":"https://api.github.com/users/wavelab/orgs","repos_url":"https://api.github.com/users/wavelab/repos","events_url":"https://api.github.com/users/wavelab/events{/privacy}","received_events_url":"https://api.github.com/users/wavelab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/wavelab/libwave","description":"Wavelab SLAM Library","fork":false,"url":"https://api.github.com/repos/wavelab/libwave","forks_url":"https://api.github.com/repos/wavelab/libwave/forks","keys_url":"https://api.github.com/repos/wavelab/libwave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wavelab/libwave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wavelab/libwave/teams","hooks_url":"https://api.github.com/repos/wavelab/libwave/hooks","issue_events_url":"https://api.github.com/repos/wavelab/libwave/issues/events{/number}","events_url":"https://api.github.com/repos/wavelab/libwave/events","assignees_url":"https://api.github.com/repos/wavelab/libwave/assignees{/user}","branches_url":"https://api.github.com/repos/wavelab/libwave/branches{/branch}","tags_url":"https://api.github.com/repos/wavelab/libwave/tags","blobs_url":"https://api.github.com/repos/wavelab/libwave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wavelab/libwave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wavelab/libwave/git/refs{/sha}","trees_url":"https://api.github.com/repos/wavelab/libwave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wavelab/libwave/statuses/{sha}","languages_url":"https://api.github.com/repos/wavelab/libwave/languages","stargazers_url":"https://api.github.com/repos/wavelab/libwave/stargazers","contributors_url":"https://api.github.com/repos/wavelab/libwave/contributors","subscribers_url":"https://api.github.com/repos/wavelab/libwave/subscribers","subscription_url":"https://api.github.com/repos/wavelab/libwave/subscription","commits_url":"https://api.github.com/repos/wavelab/libwave/commits{/sha}","git_commits_url":"https://api.github.com/repos/wavelab/libwave/git/commits{/sha}","comments_url":"https://api.github.com/repos/wavelab/libwave/comments{/number}","issue_comment_url":"https://api.github.com/repos/wavelab/libwave/issues/comments{/number}","contents_url":"https://api.github.com/repos/wavelab/libwave/contents/{+path}","compare_url":"https://api.github.com/repos/wavelab/libwave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wavelab/libwave/merges","archive_url":"https://api.github.com/repos/wavelab/libwave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wavelab/libwave/downloads","issues_url":"https://api.github.com/repos/wavelab/libwave/issues{/number}","pulls_url":"https://api.github.com/repos/wavelab/libwave/pulls{/number}","milestones_url":"https://api.github.com/repos/wavelab/libwave/milestones{/number}","notifications_url":"https://api.github.com/repos/wavelab/libwave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wavelab/libwave/labels{/name}","releases_url":"https://api.github.com/repos/wavelab/libwave/releases{/id}","deployments_url":"https://api.github.com/repos/wavelab/libwave/deployments","created_at":"2017-01-19T15:58:52Z","updated_at":"2017-10-19T03:02:22Z","pushed_at":"2017-10-30T00:45:13Z","git_url":"git://github.com/wavelab/libwave.git","ssh_url":"git@github.com:wavelab/libwave.git","clone_url":"https://github.com/wavelab/libwave.git","svn_url":"https://github.com/wavelab/libwave","homepage":"https://wavelab.github.io/libwave/","size":278473,"stargazers_count":7,"watchers_count":7,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":44,"forks":3,"open_issues":44,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/231"},"html":{"href":"https://github.com/wavelab/libwave/pull/231"},"issue":{"href":"https://api.github.com/repos/wavelab/libwave/issues/231"},"comments":{"href":"https://api.github.com/repos/wavelab/libwave/issues/231/comments"},"review_comments":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/231/comments"},"review_comment":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wavelab/libwave/pulls/231/commits"},"statuses":{"href":"https://api.github.com/repos/wavelab/libwave/statuses/c956ab1391b47a80927b4acb6afba1821008dc1a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"leokoppel"}}