Teuchos: Improve build time by stripping many includes from Teuchos_ConfigDefs.hpp
Created by: mhoemmen
@trilinos/teuchos @bartlettroscoe @nmhamster
Lines 80-105 of Teuchos_ConfigDefs.hpp include a lot of standard library header files. Just about every Teuchos header file includes Teuchos_ConfigDefs.hpp, and many Trilinos packages include a Teuchos header file. Thus, everybody includes all those headers. That increases build time.
We really need to remove those includes. I tried doing something like this in Tpetra_ConfigDefs.hpp once, and it broke a bunch of stuff downstream. In theory, it's their fault that they relied on unnecessary upstream includes. In practice, if we break their build, it interrupts their work and makes them grumpy. Thus, it's important to test EVERY PACKAGE that depends on Teuchos. We really should also test external software that depends on Teuchos or its downstream packages. Examples include Dakota (https://dakota.sandia.gov) and Nalu (https://github.com/spdomin/Nalu). Nevertheless, we need to brace ourselves for some disruption and complaints.