PyTrilinos: build fails when Epetra, NOX enabled, but not Ifpack
*Created by: wfspotz* <!--- Provide a general summary of the issue in the Title above. If this issue pertains to a particular package in Trilinos, it's worthwhile to start the title with "PackageName: ". --> <!--- Note that anything between these delimiters is a comment that will not appear in the issue description once created. Click on the Preview tab to see what everything will look like when you submit. --> <!--- Feel free to delete anything from this template that is not applicable to the issue you are submitting. --> <!--- Replace <teamName> below with the appropriate Trilinos package/team name. --> @trilinos/pytrilinos <!--- Assignees: If you know anyone who should likely tackle this issue, select them from the Assignees drop-down on the right. --> <!--- Lables: Choose any applicable package names from the Labels drop-down on the right. Additionally, choose a label to indicate the type of issue, for instance, bug, build, documentation, enhancement, etc. --> ## Expectations <!--- Tell us what you think should happen, how you think things should work, what you would like to see in the documentation, etc. --> When PyTrilinos, Epetra, and NOX are enabled, but Ifpack is not, PyTrilinos should build without error. The `NOX.Epetra` module should NOT be enabled, consistent with NOX. ## Current Behavior <!--- Tell us how the current behavior fails to meet your expectations in some way. --> The build fails because NOX does not enable `NOX::Epetra`, but PyTrilinos tries to wrap these interfaces. ## Motivation and Context <!--- How has this expectation failure affected you? What are you trying to accomplish? Why do we need to address this? What does it have to do with anything? Providing context helps us come up with a solution that is most useful in the real world. --> A user tried to build with this combination and ran into the failed build. PyTrilinos should be checking the `NOX_ENABLE_ABSTRACT_IMPLEMENTATION_EPETRA` Cmake variable. ## Definition of Done <!--- Tell us what needs to happen. If necessary, give us a task list along the lines of: - [ ] First do this. - [ ] Then do that. - [ ] Also this other thing. --> - [x] Rework the PyTrilinos configuration logic to check `NOX_ENABLE_ABSTRACT_IMPLEMENTATION_EPETRA` - [x] Test that the above-mentioned combination of packages builds cleanly - [x] Test that the `NOX.Epetra` module is not enabled - [x] Test that enabled PyTrilinos tests pass - [x] Test that when proper packages ARE enabled, that `NOX.Epetra` does get enabled and that tests pass N.B. Both AztecOO and Amesos have to be enabled for the last step to work. <!--- ## Possible Solution Not obligatory, but suggest a fix for the bug or documentation, or suggest ideas on how to implement the addition or change. --> ## Steps to Reproduce <!--- Provide a link to a live example, or an unambiguous set of steps to reproduce this issue. Include code to reproduce, if relevant. --> 1. Write a cmake script that disables all packages except PyTrilinos, Epetra, and NOX 1. Verify build failure
issue