{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/vcpkg/issues/249","repository_url":"https://api.github.com/repos/Microsoft/vcpkg","labels_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/249/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/249/comments","events_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/249/events","html_url":"https://github.com/Microsoft/vcpkg/issues/249","id":186988446,"number":249,"title":"Optional Dependencies","user":{"login":"JohannesBeck","id":15986995,"avatar_url":"https://avatars.githubusercontent.com/u/15986995?v=3","gravatar_id":"","url":"https://api.github.com/users/JohannesBeck","html_url":"https://github.com/JohannesBeck","followers_url":"https://api.github.com/users/JohannesBeck/followers","following_url":"https://api.github.com/users/JohannesBeck/following{/other_user}","gists_url":"https://api.github.com/users/JohannesBeck/gists{/gist_id}","starred_url":"https://api.github.com/users/JohannesBeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JohannesBeck/subscriptions","organizations_url":"https://api.github.com/users/JohannesBeck/orgs","repos_url":"https://api.github.com/users/JohannesBeck/repos","events_url":"https://api.github.com/users/JohannesBeck/events{/privacy}","received_events_url":"https://api.github.com/users/JohannesBeck/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-03T06:47:05Z","updated_at":"2016-11-03T21:42:28Z","closed_at":null,"body":"I would like to specify optional dependencies, e.g. using OpenCV with cuda, if it is available, or boost with zlib. Is there such a mechanism available? "},"comment":{"url":"https://api.github.com/repos/Microsoft/vcpkg/issues/comments/258282976","html_url":"https://github.com/Microsoft/vcpkg/issues/249#issuecomment-258282976","issue_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/249","id":258282976,"user":{"login":"ras0219-msft","id":12301622,"avatar_url":"https://avatars.githubusercontent.com/u/12301622?v=3","gravatar_id":"","url":"https://api.github.com/users/ras0219-msft","html_url":"https://github.com/ras0219-msft","followers_url":"https://api.github.com/users/ras0219-msft/followers","following_url":"https://api.github.com/users/ras0219-msft/following{/other_user}","gists_url":"https://api.github.com/users/ras0219-msft/gists{/gist_id}","starred_url":"https://api.github.com/users/ras0219-msft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ras0219-msft/subscriptions","organizations_url":"https://api.github.com/users/ras0219-msft/orgs","repos_url":"https://api.github.com/users/ras0219-msft/repos","events_url":"https://api.github.com/users/ras0219-msft/events{/privacy}","received_events_url":"https://api.github.com/users/ras0219-msft/received_events","type":"User","site_admin":false},"created_at":"2016-11-03T21:42:28Z","updated_at":"2016-11-03T21:42:28Z","body":"We don't have such a mechanism currently. Instead, we tend to specify hard requirements on everything the project depends on in the default configuration. We want to build every piece that other libraries currently depend on.\r\n\r\nIn the future, we may need to have a mechanism like this, however it does cause some problems with transitive dependencies:\r\n\r\n- SignalR depends on cpprestsdk's websockets support\r\n- Cpprestsdk's websocket support is conditional on boost+openssl (optional dependencies)\r\n\r\nTherefore, if we support optional dependencies for `cpprestsdk`, `signalr` isn't able to properly express its dependencies.\r\n\r\nA simplifying invariant that might solve this is that \"if library `B` is installed, all libraries with optional dependencies on `B` will be built with that dependency.\" Then, `signalr` could simply state that it depends on `cpprestsdk`, `boost`, and `openssl` and would then be guaranteed that `cpprestsdk` was built with full websockets support."}}
{"actor":{"display_login":"ras0219-msft"}}