forked from mirror/openmw-tes3mp
libc++ fixes: don't rely on tr1
libc++ doesn't ship tr1, but ships unordered_map as it is part of c++11. Since this is the only tr1 header used in openmw, add a check for c++11 unordered_map and fallback to tr1 unordered_map if it's not found.
This commit is contained in:
parent
2850032d9e
commit
886bc7e2f6
2 changed files with 13 additions and 1 deletions
|
@ -181,6 +181,12 @@ if (UNIX AND NOT APPLE)
|
|||
find_package (Threads)
|
||||
endif()
|
||||
|
||||
include (CheckIncludeFileCXX)
|
||||
check_include_file_cxx(unordered_map HAVE_UNORDERED_MAP)
|
||||
if (HAVE_UNORDERED_MAP)
|
||||
add_definitions(-DHAVE_UNORDERED_MAP)
|
||||
endif ()
|
||||
|
||||
|
||||
set(BOOST_COMPONENTS system filesystem program_options thread date_time wave)
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#ifdef _WIN32
|
||||
#include <boost/tr1/tr1/unordered_map>
|
||||
#elif defined HAVE_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include <tr1/unordered_map>
|
||||
#endif
|
||||
|
@ -48,7 +50,11 @@ struct ConfigurationManager
|
|||
typedef Files::FixedPath<> FixedPathType;
|
||||
|
||||
typedef const boost::filesystem::path& (FixedPathType::*path_type_f)() const;
|
||||
#if defined HAVE_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, path_type_f> TokensMappingContainer;
|
||||
#else
|
||||
typedef std::tr1::unordered_map<std::string, path_type_f> TokensMappingContainer;
|
||||
#endif
|
||||
|
||||
void loadConfig(const boost::filesystem::path& path,
|
||||
boost::program_options::variables_map& variables,
|
||||
|
|
Loading…
Reference in a new issue