Per request from Mako88, remove unused loadgl indirections. loadgl.h
was imported from elsewhere and defines indirections for many functions
that Descent does not use. Some of these are guarded by WINVER
conditionals and, in Mako88's unspecified environment, defining WINVER
to expose these results in a build failure because the guarded typedef
requires a type that is not defined by the environment.
Compensate for that, and likely improve the generated code, by removing
all unused gl symbols.
# Save the results to a file, then run the file separately. This
# avoids any chance that sed might try to edit the file while later
# searches are still running.
s=( `git ls-files '*.h' '*.cpp' | grep -v -F common/include/loadgl.h` )
git grep '#define w\?gl[A-Z]\w\+ dw\?gl' common/include/loadgl.h |
gawk '{print $2;}' | while read f; do
if ! git grep -q -l '\<d\?'"$f"'\>' -- "${s[@]}"; then
echo "/\\<d\?$f\\>/d"
fi
done > unused.sed
sed -i common/include/loadgl.h -f unused.sed
Commit 957016621e ("Remove support for
Boost.TypeTraits") removed support for any alternative implementation of
<type_traits>, so C++11 <type_traits> is now required. Move it to
the Cxx11RequiredFeature array to combine it with the other required
feature tests.
Fallback support for Boost.Foreach is broken and no one has reported it.
The minimum required gcc version supports range-based for. Recent Clang
supports range-based for. No Microsoft compilers are supported. Remove
support for the fallback Boost.Foreach and move the C++11 range-based
for test to the Cxx11RequiredFeature array.
All users of physfs_list.h included fwd-partial_range.h or
partial_range.h; physfs_list.h did not include either, but assumed one
would be available. Include fwd to fix check_header_includes=1 build.
Fixes: ff67afd440 ("Propagate partial_range up into PHYSFSX_findFiles family")
Building with Boost.Array fails due to name lookup errors. These could
be fixed, but since no one has reported them and they are fairly old,
Boost.Array appears to be unused. Remove support for it.
Building with std::tr1::array fails due to missing features in
std::tr1:array relative to std::array. No one has reported this either,
so remove support for std::tr1:array.
Move the test for std::array into the Cxx11RequiredFeature list so that
it is run as part of the group test, rather than as a separate
statement.
Callers are expected to filter out invalid numbers. Even if they do
not, the only use of the number is to match entries in Stuck_objects.
An invalid match could cause a call to vobjptr() with an invalid index,
but that would be diagnosed by the valptridx checking, so no invalid
memory access will occur.