-
Type:
Improvement
-
Resolution: Won't Do
-
Priority:
Minor - P4
-
None
-
Affects Version/s: 4.5 Desired
-
Component/s: Build
-
None
-
Server Development Platform
-
None
-
0
-
None
-
None
-
None
-
None
-
None
-
None
We have apparently had different means of including third-party source headers over the years because we have some source files that include directly from src/third_party in #include directives rather than letting the build system inject the include path. This is a problem because some of the path names are versioned, and that makes managing them more difficult when we need to upgrade them.
These were the instances found as of now:
find -not -path './src/third_party/*' \( -name \*.cpp -o -name \*.h -o -name \*.hpp \) -type f -exec grep -HE '^#include.*third_party/' {} \; ./src/mongo/platform/decimal128.cpp:#include <third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_conf.h> ./src/mongo/platform/decimal128.cpp:#include <third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h> ./src/mongo/db/geo/geoparser.cpp:#include "third_party/s2/s2polygonbuilder.h" ./src/mongo/db/geo/shapes.h:#include "third_party/s2/s2cap.h" ./src/mongo/db/geo/shapes.h:#include "third_party/s2/s2cell.h" ./src/mongo/db/geo/shapes.h:#include "third_party/s2/s2latlng.h" ./src/mongo/db/geo/shapes.h:#include "third_party/s2/s2polygon.h" ./src/mongo/db/geo/shapes.h:#include "third_party/s2/s2polyline.h" ./src/mongo/db/geo/geometry_container.h:#include "third_party/s2/s2regionunion.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2cap.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2cell.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2loop.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2polygon.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2polyline.h" ./src/mongo/db/geo/big_polygon.h:#include "third_party/s2/s2region.h" ./src/mongo/db/geo/s2.h:#include "third_party/s2/s2.h" ./src/mongo/db/fts/fts_index_format.cpp:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/db/fts/stemmer.h:#include "third_party/libstemmer_c/include/libstemmer.h" ./src/mongo/db/sorter/sorter.h:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/db/index/expression_keys_private.cpp:#include "third_party/s2/s2cell.h" ./src/mongo/db/index/expression_keys_private.cpp:#include "third_party/s2/s2regioncoverer.h" ./src/mongo/db/index/s2_common.cpp:#include "third_party/s2/s2cellid.h" ./src/mongo/db/index/s2_common.cpp:#include "third_party/s2/s2regioncoverer.h" ./src/mongo/db/index/expression_params.cpp:#include "third_party/s2/s2.h" ./src/mongo/db/modules/enterprise/src/queryable/queryable_wt/blockstore_fs.h:#include "third_party/wiredtiger/src/include/wiredtiger_ext.h" ./src/mongo/db/repl/oplog_applier_impl.cpp:#include "third_party/murmurhash3/MurmurHash3.h" ./src/mongo/db/concurrency/lock_manager_defs.h:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/db/query/index_bounds_builder.cpp:#include "third_party/s2/s2cell.h" ./src/mongo/db/query/index_bounds_builder.cpp:#include "third_party/s2/s2regioncoverer.h" ./src/mongo/db/query/expression_index.cpp:#include "third_party/s2/s2cellid.h" ./src/mongo/db/query/expression_index.cpp:#include "third_party/s2/s2region.h" ./src/mongo/db/query/expression_index.cpp:#include "third_party/s2/s2regioncoverer.h" ./src/mongo/db/exec/geo_near.cpp:#include "third_party/s2/s2regionintersection.h" ./src/mongo/db/exec/document_value/document_internal.h:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/db/exec/geo_near.h:#include "third_party/s2/s2cellunion.h" ./src/mongo/db/ftdc/varint.cpp:#include <third_party/s2/util/coding/varint.h> ./src/mongo/util/uuid.h:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/util/heap_profiler.cpp:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/crypto/hash_block.h:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/rpc/op_msg_test.cpp:#include "third_party/wiredtiger/wiredtiger.h" ./src/mongo/stdx/variant.h:#include "third_party/variant-1.3.0/include/mpark/variant.hpp" ./src/mongo/base/murmurhash3_test.cpp:#include <third_party/murmurhash3/MurmurHash3.h> ./src/mongo/base/simple_string_data_comparator.cpp:#include <third_party/murmurhash3/MurmurHash3.h>
These header includes should be standardized so the build system injects the include path instead.