{"action":"created","issue":{"url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/1","repository_url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj","labels_url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/1/comments","events_url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/1/events","html_url":"https://github.com/xsdk-project/XSDKCMakeProj/issues/1","id":156275520,"number":1,"title":"Make `XSDK_ENABLE_<LANG>` a user cache var?","user":{"login":"bartlettroscoe","id":1959736,"avatar_url":"https://avatars.githubusercontent.com/u/1959736?v=3","gravatar_id":"","url":"https://api.github.com/users/bartlettroscoe","html_url":"https://github.com/bartlettroscoe","followers_url":"https://api.github.com/users/bartlettroscoe/followers","following_url":"https://api.github.com/users/bartlettroscoe/following{/other_user}","gists_url":"https://api.github.com/users/bartlettroscoe/gists{/gist_id}","starred_url":"https://api.github.com/users/bartlettroscoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartlettroscoe/subscriptions","organizations_url":"https://api.github.com/users/bartlettroscoe/orgs","repos_url":"https://api.github.com/users/bartlettroscoe/repos","events_url":"https://api.github.com/users/bartlettroscoe/events{/privacy}","received_events_url":"https://api.github.com/users/bartlettroscoe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-05-23T13:03:25Z","updated_at":"2016-05-23T21:25:34Z","closed_at":null,"body":"It seems that there is a desire for the vars `XSDK_ENABLE_<LANG>` to be settable by the cleint configuring a CMake project using the XSDKDefaults.cmake module (see TriBITSPub/TriBITS#121 and xiaoyeli/superlu_dist#3).\r\n\r\nWhen XSDKDefaults.cmake module was written, the assumption that was made was that the client CMake project would know what languages it needed and would set them with `SET(XSDK_ENABLE_<LANG>  [TRUE|FALSE])` before including the module.  If you look [here](https://github.com/xsdk-project/XSDKCMakeProj/blob/master/xsdk/XSDKDefaults.cmake#L101), you can see that these vars are set using `SET_DEFAULT()` which does **not** create a CMake cache var so these would be invisible to the general user.  That seems not to be what people expected so we need to change this; hence TriBITSPub/TriBITS#121.\r\n\r\nBut what about CMake client projects where a given language is *not* optional?  For example, does it make any sense for a client project to expose `XSDK_ENABLE_Fortran` as a cache var if Fortran is required in order to build anything?  Clearly a client project like Trilinos or SuperLUDist could not build anything if the client disabled C and C++.  So how is this handled?\r\n\r\nThe requirements for the handling of optional language support and languages is not clear to me."},"comment":{"url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/comments/221101080","html_url":"https://github.com/xsdk-project/XSDKCMakeProj/issues/1#issuecomment-221101080","issue_url":"https://api.github.com/repos/xsdk-project/XSDKCMakeProj/issues/1","id":221101080,"user":{"login":"bartlettroscoe","id":1959736,"avatar_url":"https://avatars.githubusercontent.com/u/1959736?v=3","gravatar_id":"","url":"https://api.github.com/users/bartlettroscoe","html_url":"https://github.com/bartlettroscoe","followers_url":"https://api.github.com/users/bartlettroscoe/followers","following_url":"https://api.github.com/users/bartlettroscoe/following{/other_user}","gists_url":"https://api.github.com/users/bartlettroscoe/gists{/gist_id}","starred_url":"https://api.github.com/users/bartlettroscoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartlettroscoe/subscriptions","organizations_url":"https://api.github.com/users/bartlettroscoe/orgs","repos_url":"https://api.github.com/users/bartlettroscoe/repos","events_url":"https://api.github.com/users/bartlettroscoe/events{/privacy}","received_events_url":"https://api.github.com/users/bartlettroscoe/received_events","type":"User","site_admin":false},"created_at":"2016-05-23T21:25:34Z","updated_at":"2016-05-23T21:25:34Z","body":"> Autoconf has --enable- and --disable- For PETSc if you pass in --disable-c it will print a very useful error message.\r\n\r\nSo PETSc configure will error out right away if the user passes in `--disable-c`?  I did not realize that.  That was not obvious to me.  If that is the desired behavior, then we can implement that behavior.\r\n\r\n> If you pass in --enable-COBOL it will be ignored.\r\n\r\nRight.  The same would happen with CMake as well, but at least CMake would warn the user that they set an a user cache variable that was ignored (which is a warning that you selected a nonsense option or misspelled an option name).  What does PETSc configure do if the user passes in a misspelled option name?  Does it just silently ignore it, like autotools configure scripts do (if my memory serves back to the Trilinos autotools days)?\r\n"}}
{"actor":{"display_login":"bartlettroscoe"}}