{"action":"created","issue":{"url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/14","repository_url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk","labels_url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/14/comments","events_url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/14/events","html_url":"https://github.com/codeplaysoftware/computecpp-sdk/issues/14","id":202340020,"node_id":"MDU6SXNzdWUyMDIzNDAwMjA=","number":14,"title":"CMake integration for ComputeCpp","user":{"login":"mcopik","id":720619,"node_id":"MDQ6VXNlcjcyMDYxOQ==","avatar_url":"https://avatars2.githubusercontent.com/u/720619?v=4","gravatar_id":"","url":"https://api.github.com/users/mcopik","html_url":"https://github.com/mcopik","followers_url":"https://api.github.com/users/mcopik/followers","following_url":"https://api.github.com/users/mcopik/following{/other_user}","gists_url":"https://api.github.com/users/mcopik/gists{/gist_id}","starred_url":"https://api.github.com/users/mcopik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcopik/subscriptions","organizations_url":"https://api.github.com/users/mcopik/orgs","repos_url":"https://api.github.com/users/mcopik/repos","events_url":"https://api.github.com/users/mcopik/events{/privacy}","received_events_url":"https://api.github.com/users/mcopik/received_events","type":"User","site_admin":false},"labels":[{"id":436977018,"node_id":"MDU6TGFiZWw0MzY5NzcwMTg=","url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"DuncanMcBain","id":5628152,"node_id":"MDQ6VXNlcjU2MjgxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/5628152?v=4","gravatar_id":"","url":"https://api.github.com/users/DuncanMcBain","html_url":"https://github.com/DuncanMcBain","followers_url":"https://api.github.com/users/DuncanMcBain/followers","following_url":"https://api.github.com/users/DuncanMcBain/following{/other_user}","gists_url":"https://api.github.com/users/DuncanMcBain/gists{/gist_id}","starred_url":"https://api.github.com/users/DuncanMcBain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DuncanMcBain/subscriptions","organizations_url":"https://api.github.com/users/DuncanMcBain/orgs","repos_url":"https://api.github.com/users/DuncanMcBain/repos","events_url":"https://api.github.com/users/DuncanMcBain/events{/privacy}","received_events_url":"https://api.github.com/users/DuncanMcBain/received_events","type":"User","site_admin":false},"assignees":[{"login":"DuncanMcBain","id":5628152,"node_id":"MDQ6VXNlcjU2MjgxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/5628152?v=4","gravatar_id":"","url":"https://api.github.com/users/DuncanMcBain","html_url":"https://github.com/DuncanMcBain","followers_url":"https://api.github.com/users/DuncanMcBain/followers","following_url":"https://api.github.com/users/DuncanMcBain/following{/other_user}","gists_url":"https://api.github.com/users/DuncanMcBain/gists{/gist_id}","starred_url":"https://api.github.com/users/DuncanMcBain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DuncanMcBain/subscriptions","organizations_url":"https://api.github.com/users/DuncanMcBain/orgs","repos_url":"https://api.github.com/users/DuncanMcBain/repos","events_url":"https://api.github.com/users/DuncanMcBain/events{/privacy}","received_events_url":"https://api.github.com/users/DuncanMcBain/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2017-01-21T21:09:43Z","updated_at":"2018-12-11T17:10:37Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"\r\nWe have been very happy to use CMake scripts for building SYCL apps with ComputeCpp in our project. It simplifies integration with existing codebases significantly, but our experience suggests that the current approach is not perfect. I don't know the rationale behind this design but so far I have seen two ways of integrating CMake in open-source projects:\r\n\r\n- CMake config file - in a third-party project user is required to pass only one install directory where CMake config file can be located; variables are read and used later to find headers, libraries, compilation and linking flags etc.\r\n- CMake `find_package` script\r\n\r\nThe first option is obviously not applicable in this scenario because the interesting part is code for adding targets for building SYCL code. The second option is convenient as long as the script is freely available, either already distributed with CMake itself or shipped with the package itself - then integration is built on top of one user-defined installation directory. In the case of ComputeCpp, the location of the script is completely independent of ComputeCpp's current location. Therefore, a user of HPX has to either modify `CMAKE_MODULE_PATH` on the command line or pass two variables, one used to extend module path internally and one used to locate ComputeCpp. It's a very non-standard solution and quite inconvenient.\r\n\r\nWe could have included FindComputeCpp in our project and distributed it with HPX but it is not a preferred option - we would have to keep watching your repo to not miss updates and solve possible licensing issues, which may not be a problem, but we are always cautious when adding a third-party code to HPX which is not on Boost license.\r\n\r\nIs there a specific reason why CMake scripts are distributed with SDK? We believe that it's perfectly reasonable to include it in ComputeCpp installation package and it would allow SYCL-based projects to configure build with just one user-defined path."},"comment":{"url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/comments/446282562","html_url":"https://github.com/codeplaysoftware/computecpp-sdk/issues/14#issuecomment-446282562","issue_url":"https://api.github.com/repos/codeplaysoftware/computecpp-sdk/issues/14","id":446282562,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NjI4MjU2Mg==","user":{"login":"MathiasMagnus","id":9763499,"node_id":"MDQ6VXNlcjk3NjM0OTk=","avatar_url":"https://avatars0.githubusercontent.com/u/9763499?v=4","gravatar_id":"","url":"https://api.github.com/users/MathiasMagnus","html_url":"https://github.com/MathiasMagnus","followers_url":"https://api.github.com/users/MathiasMagnus/followers","following_url":"https://api.github.com/users/MathiasMagnus/following{/other_user}","gists_url":"https://api.github.com/users/MathiasMagnus/gists{/gist_id}","starred_url":"https://api.github.com/users/MathiasMagnus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MathiasMagnus/subscriptions","organizations_url":"https://api.github.com/users/MathiasMagnus/orgs","repos_url":"https://api.github.com/users/MathiasMagnus/repos","events_url":"https://api.github.com/users/MathiasMagnus/events{/privacy}","received_events_url":"https://api.github.com/users/MathiasMagnus/received_events","type":"User","site_admin":false},"created_at":"2018-12-11T17:10:37Z","updated_at":"2018-12-11T17:10:37Z","author_association":"CONTRIBUTOR","body":"On a related note, but arriving at it from a totally different angle:\r\n\r\n@DuncanMcBain, what are your thoughts on having upstream CMake support for ComputeCpp?\r\n\r\nDo you think that the parameters to the device compiler are stable enough for such an effort to be worthwhile? I believe the extra compilation step resembles that of CUDA very much, as well as the AUTOMOC machinery of Qt. I believe taking a look at both, one could copy-paste together something similar to make it simple enough to just creating a target property, much like AUTOMOC does."}}
{"actor":{"display_login":"MathiasMagnus"}}