summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
Diffstat (limited to 'external')
-rw-r--r--external/boost/UnpackedTarball_boost.mk2
-rw-r--r--external/boost/libc++.patch.012
-rw-r--r--external/clucene/Library_clucene.mk10
-rw-r--r--external/libmspub/ExternalProject_libmspub.mk10
4 files changed, 31 insertions, 3 deletions
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index 91a0e264a926..384782f586f0 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -31,6 +31,8 @@ boost_patches += windows-no-utf8-locales.patch.0
boost_patches += msvc2017.patch.0
+boost_patches += libc++.patch.0
+
$(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
$(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/libc++.patch.0 b/external/boost/libc++.patch.0
new file mode 100644
index 000000000000..f912e6cdb6c7
--- /dev/null
+++ b/external/boost/libc++.patch.0
@@ -0,0 +1,12 @@
+--- boost/config/stdlib/libcpp.hpp
++++ boost/config/stdlib/libcpp.hpp
+@@ -167,5 +167,9 @@
+ #if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000)
+ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
+ #endif
++
++#if __cplusplus >= 201103
++# define BOOST_NO_CXX98_FUNCTION_BASE
++#endif
+
+ // --- end ---
diff --git a/external/clucene/Library_clucene.mk b/external/clucene/Library_clucene.mk
index c6f2895501d6..e837f9f64fb6 100644
--- a/external/clucene/Library_clucene.mk
+++ b/external/clucene/Library_clucene.mk
@@ -31,11 +31,17 @@ $(eval $(call gb_Library_add_defs,clucene,\
-Dclucene_contribs_lib_EXPORTS \
))
-# Needed when building against MSVC in C++17 mode, as
-# workdir/UnpackedTarball/clucene/src/core/CLucene/util/Equators.h uses std::binary_function:
+# Needed when building against either libc++ or MSVC's standard library (including clang-cl builds),
+# as e.g. workdir/UnpackedTarball/clucene/src/core/CLucene/util/_Arrays.h uses std::binary_function:
+ifeq ($(HAVE_LIBCPP),TRUE)
+$(eval $(call gb_Library_add_defs,clucene, \
+ -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION \
+))
+else ifeq ($(COM),MSC)
$(eval $(call gb_Library_add_defs,clucene, \
-D_HAS_AUTO_PTR_ETC=1 \
))
+endif
ifeq ($(OS),LINUX)
$(eval $(call gb_Library_add_libs,clucene,\
diff --git a/external/libmspub/ExternalProject_libmspub.mk b/external/libmspub/ExternalProject_libmspub.mk
index f84e5c9b2214..7e7153e75416 100644
--- a/external/libmspub/ExternalProject_libmspub.mk
+++ b/external/libmspub/ExternalProject_libmspub.mk
@@ -22,6 +22,14 @@ $(eval $(call gb_ExternalProject_use_externals,libmspub,\
zlib \
))
+libmspub_CPPFLAGS := $(CPPFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS)
+# Needed when workdir/UnpackedTarball/libmspub/src/lib/MSPUBCollector.cpp includes Boost 1.79.0
+# boost/multi_array.hpp, which indirectly includes
+# workdir/UnpackedTarball/boost/boost/functional.hpp using std::unary_/binary_function:
+ifeq ($(HAVE_LIBCPP),TRUE)
+libmspub_CPPFLAGS += -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
+endif
+
$(call gb_ExternalProject_get_state_target,libmspub,build) :
$(call gb_Trace_StartRange,libmspub,EXTERNAL)
$(call gb_ExternalProject_run,build,\
@@ -37,7 +45,7 @@ $(call gb_ExternalProject_get_state_target,libmspub,build) :
--disable-weffc \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
CXXFLAGS="$(gb_CXXFLAGS) $(call gb_ExternalProject_get_build_flags,libmspub)" \
- CPPFLAGS="$(CPPFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS)" \
+ CPPFLAGS="$(libmspub_CPPFLAGS)" \
LDFLAGS="$(call gb_ExternalProject_get_link_flags,libmspub)" \
$(gb_CONFIGURE_PLATFORMS) \
&& $(MAKE) \