{"action":"closed","number":408,"pull_request":{"url":"https://api.github.com/repos/lanl/Draco/pulls/408","id":188860153,"html_url":"https://github.com/lanl/Draco/pull/408","diff_url":"https://github.com/lanl/Draco/pull/408.diff","patch_url":"https://github.com/lanl/Draco/pull/408.patch","issue_url":"https://api.github.com/repos/lanl/Draco/issues/408","number":408,"state":"closed","locked":false,"title":"Improve robustness of compiler and MPI detection","user":{"login":"KineticTheory","id":17579601,"avatar_url":"https://avatars0.githubusercontent.com/u/17579601?v=4","gravatar_id":"","url":"https://api.github.com/users/KineticTheory","html_url":"https://github.com/KineticTheory","followers_url":"https://api.github.com/users/KineticTheory/followers","following_url":"https://api.github.com/users/KineticTheory/following{/other_user}","gists_url":"https://api.github.com/users/KineticTheory/gists{/gist_id}","starred_url":"https://api.github.com/users/KineticTheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KineticTheory/subscriptions","organizations_url":"https://api.github.com/users/KineticTheory/orgs","repos_url":"https://api.github.com/users/KineticTheory/repos","events_url":"https://api.github.com/users/KineticTheory/events{/privacy}","received_events_url":"https://api.github.com/users/KineticTheory/received_events","type":"User","site_admin":false},"body":"### Background\r\n\r\nThere are three significant changes in this PR.\r\n\r\n1. Begin using CMake's COMPILER_ID and the primary way of determing the compiler options to use.  Only use path/name matching as a backup.\r\n2. Do more environment checking when configuring on a Cray machine and provide more useful information if the required environment isn't found.\r\n3. Make sourcing `draco-config.cmake` more useful.\r\n\r\n### Purpose of Pull Request\r\n\r\n* [Cray build system fails...]( https://rtt.lanl.gov/redmine/issues/1167)\r\n\r\n### Description of changes\r\n\r\n+ In `platform_checks.cmake`, add a new macro to check if we are running in a Cray Programming Environment.  If so, ensure that the discovered compilers are actually Cray compiler wrappers. Also ensure that dynamic linking is enabled. These are build requirements.\r\n+ Restructure the logic in `compilerEnv.cmake` that chooses which file to source in order to set the compiler options.  Begin using `CMAKE_CXX_COMPILER_ID` as the primary value examined for this selection.\r\n+ Remove some build system logic that was required to use old versions of Allinea MAP.\r\n+ Comment out some code in `setupMPI.cmake` that tells the build system to skip MPI compiler wrapper interrogation when looking for MPI.  I think the newer versions of CMake no longer require this special logic.\r\n+ For GCC, enable the build option `-Wnarrowing` for all builds.\r\n+ For GCC version > 8.0, enable the build options `-Wold-style-cast -fdiagnostics-show-template-tree`.\r\n+ Move the code that sets `SITENAME` from `compilerEnv.cmake` to `platform_checks.cmake`.\r\n+ Move `query_openmp_availability()` from platform_checks.cmake to `compilerEnv.cmake`.  This macro is now called from `dbsSetupCxx` and no longer called from the compiler flag setup files (e.g.: `unix-g++.cmake`).\r\n+ On non-Cray systems, always use the `-xhost` Intel compile option\r\n+ When other packages include `draco-config.cmake`, automatically source\r\n  - `compilerEnv.cmake`\r\n  - `platform_checks.cmake`\r\n  - `component_macros.cmake`\r\n  - `vendor_libraries.cmake`\r\n+ Clean up some formatting issues.\r\n\r\n### Status\r\n\r\n* Reference:\r\n  * [Pre-Merge Code Review](https://github.com/lanl/Draco/wiki/Style-Guide)\r\n  * [CDash Status](https://rtt.lanl.gov/cdash/index.php?project=Draco&filtercount=1&showfilters=1&field1=buildname&compare1=63&value1=-pr)\r\n* Checks\r\n  * [ ] Travis CI checks pass\r\n  * [x] Code coverage does not decrease\r\n  * [x] [Valgrind test passes](https://rtt.lanl.gov/CDash/index.php?project=Draco)\r\n  * [x] [Toss3 checks pass](https://rtt.lanl.gov/CDash/index.php?project=Draco)\r\n  * [x] [Trinitite checks pass](https://rtt.lanl.gov/CDash/index.php?project=Draco)\r\n  * [ ] Code reviewed/approved, sufficient DbC checks, testing, documentation\r\n","created_at":"2018-05-17T21:00:59Z","updated_at":"2018-05-18T19:34:41Z","closed_at":"2018-05-18T19:34:41Z","merged_at":"2018-05-18T19:34:41Z","merge_commit_sha":"a721e0c390361ce72a277a63add79b4441af2d6d","assignee":{"login":"KineticTheory","id":17579601,"avatar_url":"https://avatars0.githubusercontent.com/u/17579601?v=4","gravatar_id":"","url":"https://api.github.com/users/KineticTheory","html_url":"https://github.com/KineticTheory","followers_url":"https://api.github.com/users/KineticTheory/followers","following_url":"https://api.github.com/users/KineticTheory/following{/other_user}","gists_url":"https://api.github.com/users/KineticTheory/gists{/gist_id}","starred_url":"https://api.github.com/users/KineticTheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KineticTheory/subscriptions","organizations_url":"https://api.github.com/users/KineticTheory/orgs","repos_url":"https://api.github.com/users/KineticTheory/repos","events_url":"https://api.github.com/users/KineticTheory/events{/privacy}","received_events_url":"https://api.github.com/users/KineticTheory/received_events","type":"User","site_admin":false},"assignees":[{"login":"KineticTheory","id":17579601,"avatar_url":"https://avatars0.githubusercontent.com/u/17579601?v=4","gravatar_id":"","url":"https://api.github.com/users/KineticTheory","html_url":"https://github.com/KineticTheory","followers_url":"https://api.github.com/users/KineticTheory/followers","following_url":"https://api.github.com/users/KineticTheory/following{/other_user}","gists_url":"https://api.github.com/users/KineticTheory/gists{/gist_id}","starred_url":"https://api.github.com/users/KineticTheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KineticTheory/subscriptions","organizations_url":"https://api.github.com/users/KineticTheory/orgs","repos_url":"https://api.github.com/users/KineticTheory/repos","events_url":"https://api.github.com/users/KineticTheory/events{/privacy}","received_events_url":"https://api.github.com/users/KineticTheory/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jhchang-lanl","id":19858084,"avatar_url":"https://avatars1.githubusercontent.com/u/19858084?v=4","gravatar_id":"","url":"https://api.github.com/users/jhchang-lanl","html_url":"https://github.com/jhchang-lanl","followers_url":"https://api.github.com/users/jhchang-lanl/followers","following_url":"https://api.github.com/users/jhchang-lanl/following{/other_user}","gists_url":"https://api.github.com/users/jhchang-lanl/gists{/gist_id}","starred_url":"https://api.github.com/users/jhchang-lanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhchang-lanl/subscriptions","organizations_url":"https://api.github.com/users/jhchang-lanl/orgs","repos_url":"https://api.github.com/users/jhchang-lanl/repos","events_url":"https://api.github.com/users/jhchang-lanl/events{/privacy}","received_events_url":"https://api.github.com/users/jhchang-lanl/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":335081557,"url":"https://api.github.com/repos/lanl/Draco/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":442748551,"url":"https://api.github.com/repos/lanl/Draco/labels/needs-review","name":"needs-review","color":"5319e7","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/lanl/Draco/pulls/408/commits","review_comments_url":"https://api.github.com/repos/lanl/Draco/pulls/408/comments","review_comment_url":"https://api.github.com/repos/lanl/Draco/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lanl/Draco/issues/408/comments","statuses_url":"https://api.github.com/repos/lanl/Draco/statuses/f1a5a7e82d745902df006860e76ac2105749a48a","head":{"label":"KineticTheory:improved_compiler_mpi_detection","ref":"improved_compiler_mpi_detection","sha":"f1a5a7e82d745902df006860e76ac2105749a48a","user":{"login":"KineticTheory","id":17579601,"avatar_url":"https://avatars0.githubusercontent.com/u/17579601?v=4","gravatar_id":"","url":"https://api.github.com/users/KineticTheory","html_url":"https://github.com/KineticTheory","followers_url":"https://api.github.com/users/KineticTheory/followers","following_url":"https://api.github.com/users/KineticTheory/following{/other_user}","gists_url":"https://api.github.com/users/KineticTheory/gists{/gist_id}","starred_url":"https://api.github.com/users/KineticTheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KineticTheory/subscriptions","organizations_url":"https://api.github.com/users/KineticTheory/orgs","repos_url":"https://api.github.com/users/KineticTheory/repos","events_url":"https://api.github.com/users/KineticTheory/events{/privacy}","received_events_url":"https://api.github.com/users/KineticTheory/received_events","type":"User","site_admin":false},"repo":{"id":62067205,"name":"Draco","full_name":"KineticTheory/Draco","owner":{"login":"KineticTheory","id":17579601,"avatar_url":"https://avatars0.githubusercontent.com/u/17579601?v=4","gravatar_id":"","url":"https://api.github.com/users/KineticTheory","html_url":"https://github.com/KineticTheory","followers_url":"https://api.github.com/users/KineticTheory/followers","following_url":"https://api.github.com/users/KineticTheory/following{/other_user}","gists_url":"https://api.github.com/users/KineticTheory/gists{/gist_id}","starred_url":"https://api.github.com/users/KineticTheory/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KineticTheory/subscriptions","organizations_url":"https://api.github.com/users/KineticTheory/orgs","repos_url":"https://api.github.com/users/KineticTheory/repos","events_url":"https://api.github.com/users/KineticTheory/events{/privacy}","received_events_url":"https://api.github.com/users/KineticTheory/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/KineticTheory/Draco","description":"An object-oriented component library supporting radiation transport applications.","fork":true,"url":"https://api.github.com/repos/KineticTheory/Draco","forks_url":"https://api.github.com/repos/KineticTheory/Draco/forks","keys_url":"https://api.github.com/repos/KineticTheory/Draco/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KineticTheory/Draco/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KineticTheory/Draco/teams","hooks_url":"https://api.github.com/repos/KineticTheory/Draco/hooks","issue_events_url":"https://api.github.com/repos/KineticTheory/Draco/issues/events{/number}","events_url":"https://api.github.com/repos/KineticTheory/Draco/events","assignees_url":"https://api.github.com/repos/KineticTheory/Draco/assignees{/user}","branches_url":"https://api.github.com/repos/KineticTheory/Draco/branches{/branch}","tags_url":"https://api.github.com/repos/KineticTheory/Draco/tags","blobs_url":"https://api.github.com/repos/KineticTheory/Draco/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KineticTheory/Draco/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KineticTheory/Draco/git/refs{/sha}","trees_url":"https://api.github.com/repos/KineticTheory/Draco/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KineticTheory/Draco/statuses/{sha}","languages_url":"https://api.github.com/repos/KineticTheory/Draco/languages","stargazers_url":"https://api.github.com/repos/KineticTheory/Draco/stargazers","contributors_url":"https://api.github.com/repos/KineticTheory/Draco/contributors","subscribers_url":"https://api.github.com/repos/KineticTheory/Draco/subscribers","subscription_url":"https://api.github.com/repos/KineticTheory/Draco/subscription","commits_url":"https://api.github.com/repos/KineticTheory/Draco/commits{/sha}","git_commits_url":"https://api.github.com/repos/KineticTheory/Draco/git/commits{/sha}","comments_url":"https://api.github.com/repos/KineticTheory/Draco/comments{/number}","issue_comment_url":"https://api.github.com/repos/KineticTheory/Draco/issues/comments{/number}","contents_url":"https://api.github.com/repos/KineticTheory/Draco/contents/{+path}","compare_url":"https://api.github.com/repos/KineticTheory/Draco/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KineticTheory/Draco/merges","archive_url":"https://api.github.com/repos/KineticTheory/Draco/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KineticTheory/Draco/downloads","issues_url":"https://api.github.com/repos/KineticTheory/Draco/issues{/number}","pulls_url":"https://api.github.com/repos/KineticTheory/Draco/pulls{/number}","milestones_url":"https://api.github.com/repos/KineticTheory/Draco/milestones{/number}","notifications_url":"https://api.github.com/repos/KineticTheory/Draco/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KineticTheory/Draco/labels{/name}","releases_url":"https://api.github.com/repos/KineticTheory/Draco/releases{/id}","deployments_url":"https://api.github.com/repos/KineticTheory/Draco/deployments","created_at":"2016-06-27T15:36:16Z","updated_at":"2016-06-27T15:36:24Z","pushed_at":"2018-05-17T20:57:32Z","git_url":"git://github.com/KineticTheory/Draco.git","ssh_url":"git@github.com:KineticTheory/Draco.git","clone_url":"https://github.com/KineticTheory/Draco.git","svn_url":"https://github.com/KineticTheory/Draco","homepage":null,"size":18419,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"lanl:develop","ref":"develop","sha":"0c3499dea5615b57efe439c6bc33427b14806af0","user":{"login":"lanl","id":585305,"avatar_url":"https://avatars2.githubusercontent.com/u/585305?v=4","gravatar_id":"","url":"https://api.github.com/users/lanl","html_url":"https://github.com/lanl","followers_url":"https://api.github.com/users/lanl/followers","following_url":"https://api.github.com/users/lanl/following{/other_user}","gists_url":"https://api.github.com/users/lanl/gists{/gist_id}","starred_url":"https://api.github.com/users/lanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lanl/subscriptions","organizations_url":"https://api.github.com/users/lanl/orgs","repos_url":"https://api.github.com/users/lanl/repos","events_url":"https://api.github.com/users/lanl/events{/privacy}","received_events_url":"https://api.github.com/users/lanl/received_events","type":"Organization","site_admin":false},"repo":{"id":52980394,"name":"Draco","full_name":"lanl/Draco","owner":{"login":"lanl","id":585305,"avatar_url":"https://avatars2.githubusercontent.com/u/585305?v=4","gravatar_id":"","url":"https://api.github.com/users/lanl","html_url":"https://github.com/lanl","followers_url":"https://api.github.com/users/lanl/followers","following_url":"https://api.github.com/users/lanl/following{/other_user}","gists_url":"https://api.github.com/users/lanl/gists{/gist_id}","starred_url":"https://api.github.com/users/lanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lanl/subscriptions","organizations_url":"https://api.github.com/users/lanl/orgs","repos_url":"https://api.github.com/users/lanl/repos","events_url":"https://api.github.com/users/lanl/events{/privacy}","received_events_url":"https://api.github.com/users/lanl/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lanl/Draco","description":"An object-oriented component library supporting radiation transport applications.","fork":false,"url":"https://api.github.com/repos/lanl/Draco","forks_url":"https://api.github.com/repos/lanl/Draco/forks","keys_url":"https://api.github.com/repos/lanl/Draco/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lanl/Draco/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lanl/Draco/teams","hooks_url":"https://api.github.com/repos/lanl/Draco/hooks","issue_events_url":"https://api.github.com/repos/lanl/Draco/issues/events{/number}","events_url":"https://api.github.com/repos/lanl/Draco/events","assignees_url":"https://api.github.com/repos/lanl/Draco/assignees{/user}","branches_url":"https://api.github.com/repos/lanl/Draco/branches{/branch}","tags_url":"https://api.github.com/repos/lanl/Draco/tags","blobs_url":"https://api.github.com/repos/lanl/Draco/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lanl/Draco/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lanl/Draco/git/refs{/sha}","trees_url":"https://api.github.com/repos/lanl/Draco/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lanl/Draco/statuses/{sha}","languages_url":"https://api.github.com/repos/lanl/Draco/languages","stargazers_url":"https://api.github.com/repos/lanl/Draco/stargazers","contributors_url":"https://api.github.com/repos/lanl/Draco/contributors","subscribers_url":"https://api.github.com/repos/lanl/Draco/subscribers","subscription_url":"https://api.github.com/repos/lanl/Draco/subscription","commits_url":"https://api.github.com/repos/lanl/Draco/commits{/sha}","git_commits_url":"https://api.github.com/repos/lanl/Draco/git/commits{/sha}","comments_url":"https://api.github.com/repos/lanl/Draco/comments{/number}","issue_comment_url":"https://api.github.com/repos/lanl/Draco/issues/comments{/number}","contents_url":"https://api.github.com/repos/lanl/Draco/contents/{+path}","compare_url":"https://api.github.com/repos/lanl/Draco/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lanl/Draco/merges","archive_url":"https://api.github.com/repos/lanl/Draco/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lanl/Draco/downloads","issues_url":"https://api.github.com/repos/lanl/Draco/issues{/number}","pulls_url":"https://api.github.com/repos/lanl/Draco/pulls{/number}","milestones_url":"https://api.github.com/repos/lanl/Draco/milestones{/number}","notifications_url":"https://api.github.com/repos/lanl/Draco/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lanl/Draco/labels{/name}","releases_url":"https://api.github.com/repos/lanl/Draco/releases{/id}","deployments_url":"https://api.github.com/repos/lanl/Draco/deployments","created_at":"2016-03-02T17:00:24Z","updated_at":"2018-05-15T17:06:20Z","pushed_at":"2018-05-18T19:34:41Z","git_url":"git://github.com/lanl/Draco.git","ssh_url":"git@github.com:lanl/Draco.git","clone_url":"https://github.com/lanl/Draco.git","svn_url":"https://github.com/lanl/Draco","homepage":null,"size":18391,"stargazers_count":10,"watchers_count":10,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":22,"open_issues":10,"watchers":10,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/lanl/Draco/pulls/408"},"html":{"href":"https://github.com/lanl/Draco/pull/408"},"issue":{"href":"https://api.github.com/repos/lanl/Draco/issues/408"},"comments":{"href":"https://api.github.com/repos/lanl/Draco/issues/408/comments"},"review_comments":{"href":"https://api.github.com/repos/lanl/Draco/pulls/408/comments"},"review_comment":{"href":"https://api.github.com/repos/lanl/Draco/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lanl/Draco/pulls/408/commits"},"statuses":{"href":"https://api.github.com/repos/lanl/Draco/statuses/f1a5a7e82d745902df006860e76ac2105749a48a"}},"author_association":"COLLABORATOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"jhchang-lanl","id":19858084,"avatar_url":"https://avatars1.githubusercontent.com/u/19858084?v=4","gravatar_id":"","url":"https://api.github.com/users/jhchang-lanl","html_url":"https://github.com/jhchang-lanl","followers_url":"https://api.github.com/users/jhchang-lanl/followers","following_url":"https://api.github.com/users/jhchang-lanl/following{/other_user}","gists_url":"https://api.github.com/users/jhchang-lanl/gists{/gist_id}","starred_url":"https://api.github.com/users/jhchang-lanl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhchang-lanl/subscriptions","organizations_url":"https://api.github.com/users/jhchang-lanl/orgs","repos_url":"https://api.github.com/users/jhchang-lanl/repos","events_url":"https://api.github.com/users/jhchang-lanl/events{/privacy}","received_events_url":"https://api.github.com/users/jhchang-lanl/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":265,"deletions":259,"changed_files":15}}
{"actor":{"display_login":"jhchang-lanl"}}