summaryrefslogtreecommitdiff
path: root/src/system.hh.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/system.hh.in')
-rw-r--r--src/system.hh.in93
1 files changed, 13 insertions, 80 deletions
diff --git a/src/system.hh.in b/src/system.hh.in
index eaf4b1ac..54bcf7a9 100644
--- a/src/system.hh.in
+++ b/src/system.hh.in
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2015, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2016, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -71,7 +71,7 @@
#define HAVE_BOOST_PYTHON @HAVE_BOOST_PYTHON@
#define HAVE_BOOST_REGEX_UNICODE @HAVE_BOOST_REGEX_UNICODE@
-#define HAVE_BOOST_SERIALIZATION 0
+#define HAVE_BOOST_159_ISSUE_39 @HAVE_BOOST_159_ISSUE_39@
#define DEBUG_MODE @DEBUG_MODE@
#define NO_ASSERTS @NO_ASSERTS@
@@ -239,86 +239,8 @@ typedef std::ostream::pos_type ostream_pos_type;
#endif
#define _f(str) boost::format(_(str))
-#if HAVE_BOOST_SERIALIZATION
-
-#include <boost/archive/binary_iarchive.hpp>
-#include <boost/archive/binary_oarchive.hpp>
-
-#include <boost/serialization/base_object.hpp>
-#include <boost/serialization/binary_object.hpp>
-#include <boost/serialization/optional.hpp>
-#include <boost/serialization/shared_ptr.hpp>
-#include <boost/serialization/variant.hpp>
-#include <boost/serialization/utility.hpp>
-#include <boost/serialization/export.hpp>
-#include <boost/serialization/level.hpp>
-#include <boost/serialization/string.hpp>
-#include <boost/serialization/vector.hpp>
-#include <boost/serialization/deque.hpp>
-#include <boost/serialization/list.hpp>
-#include <boost/serialization/map.hpp>
-
-#include <boost/date_time/posix_time/time_serialize.hpp>
-#include <boost/date_time/gregorian/greg_serialize.hpp>
-#include <boost/ptr_container/serialize_ptr_deque.hpp>
-
-namespace boost {
-namespace serialization {
-
-template <class Archive>
-void serialize(Archive& ar, boost::filesystem::path& p, const unsigned int)
-{
- std::string s;
- if (Archive::is_saving::value)
- s = p.string();
-
- ar & s;
-
- if (Archive::is_loading::value)
- p = s;
-}
-
-template <class Archive, class T>
-void serialize(Archive& ar, boost::intrusive_ptr<T>& ptr, const unsigned int)
-{
- if (Archive::is_saving::value) {
- T * p = ptr.get();
- ar & p;
- }
- else if (Archive::is_loading::value) {
- T * p;
- ar & p;
- ptr.reset(p);
- }
-}
-
-template <class Archive>
-void serialize(Archive&, boost::any&, const unsigned int) {
- // jww (2012-03-29): Should we really ignore any fields entirely?
- // These occur inside value_t::storage_t::data's variant.
-}
-
-template <class Archive>
-void serialize(Archive&, boost::blank&, const unsigned int) {}
-
-template <class Archive, class T>
-void serialize(Archive&, boost::function<T>&, const unsigned int) {}
-
-template <class Archive>
-void serialize(Archive& ar, istream_pos_type& pos, const unsigned int)
-{
- ar & make_binary_object(&pos, sizeof(istream_pos_type));
-}
-
-} // namespace serialization
-} // namespace boost
-
-#else // HAVE_BOOST_SERIALIZATION
-
#include <boost/ptr_container/ptr_deque.hpp>
-#endif // HAVE_BOOST_SERIALIZATION
-
#if HAVE_BOOST_PYTHON
#include <boost/python.hpp>
@@ -332,6 +254,17 @@ void serialize(Archive& ar, istream_pos_type& pos, const unsigned int)
#include <boost/iterator/indirect_iterator.hpp>
+#if BOOST_VERSION == 105900 && HAVE_BOOST_159_ISSUE_39
+// Fix for https://github.com/boostorg/python/issues/39
+namespace boost { namespace python {
+template <class D>
+inline object make_setter(D const& x)
+{
+ return detail::make_setter(x, default_call_policies(), is_member_pointer<D>(), 0);
+}
+}}
+#endif
+
#endif // HAVE_BOOST_PYTHON
#endif // _SYSTEM_HH