libqueso / queso

QUESO is a C++ library for doing uncertainty quantification. QUESO stands for Quantification of Uncertainty for Estimation, Simulation and Optimization.
Other
57 stars 40 forks source link

Inconsistent includes refer to */inc/*.h instead of queso/*.h #647

Closed briadam closed 6 years ago

briadam commented 7 years ago

As reported by @lpswile several .C files (listed below) refer to files as /inc/.h. I'm hoping these can instead be queso/*.h for consistency at build vs. install time. @roystgnr @dmcdougall Is it appropriate to correct them?

egrep -R '^#include.+/inc/' * 
src/stats/src/MetropolisHastingsSG.C:#include "core/inc/FilePtr.h"
src/stats/src/MLSampling.C:#include "core/inc/FilePtr.h"
src/stats/src/MLSampling.C:#include "stats/inc/FiniteDistribution.h"
src/stats/src/SampledScalarCdf.C:#include "core/inc/FilePtr.h"
src/stats/src/StatisticalForwardProblem.C:#include "core/inc/FilePtr.h"
src/stats/src/MonteCarloSG.C:#include "core/inc/FilePtr.h"
src/stats/src/FiniteDistribution.C:#include "stats/inc/FiniteDistribution.h"
src/core/src/GslMatrix.C:#include "core/inc/FilePtr.h"
src/core/src/TeuchosVector.C:#include "core/inc/FilePtr.h"
src/core/src/GslVector.C:#include "core/inc/FilePtr.h"
src/core/src/TeuchosMatrix.C:#include <core/inc/FilePtr.h>
src/core/src/Environment.C:#include "core/inc/FilePtr.h"
src/basic/src/SequenceOfVectors.C:#include "core/inc/FilePtr.h"
src/basic/src/DiscreteSubset.C:#include "basic/inc/DiscreteSubset.h"
src/basic/src/ScalarSequence.C:#include "core/inc/FilePtr.h"
briadam commented 7 years ago

Or perhaps this is intended as a build-time, only included in .C files vs. needed by a library client after installing kind of distinction. If so, that's okay, but we're going to have to make the Dakota CMake build system smarter to treat that case. Ugh.

roystgnr commented 7 years ago

I'm afraid you've hit upon it. Those three headers are listed as "Not installed" in Makefile.am.

Personally I like the idea of having "internal use only" headers whose APIs we can juggle without worrying about backwards compatibility, but IMHO if this is going to cause any delay with Dakota integration then we should just install the headers as a stopgap.

briadam commented 7 years ago

Yeah I totally agree, I was just surprised how few exceptions there were. For our needs they don't even need to be installed, just be referred to as queso/*.h from source files, since your build process copies them all to the build tree folder queso/, which is same as we do in Dakota.

roystgnr commented 6 years ago

Fixed by #651

briadam commented 6 years ago

Thanks for closing. I had left it open in case you wanted to restore the idea of build-time only headers, but rightly, that's a different kind of issue. Sounds good.