office-gobmx/external/coinmp/ExternalProject_coinmp.mk
Stephan Bergmann 2193650b33 external/coinmp: Update to CoinMP 1.8.4
...originally started mostly to simplify a then-upcoming change to address
std::bind2nd gone from libc++ for C++17 (which turned out to already be
partially addressed in this new CoinMP revision).  But that has since been
addressed with b97e8b9d13 "external/coinmp: Adapt
to std::bind2nd gone from C++17" on top of the old CoinMP 1.7.6, because
updating to 1.8.4 turned out to run into issues on Windows, see the email thread
starting at
<https://lists.freedesktop.org/archives/libreoffice/2022-September/089383.html>
"Maintaining building external/coinmp on Windows".

* <https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz> is a copy of
  <https://www.coin-or.org/download/source/CoinMP/CoinMP-1.8.4.tgz>.

* Various of our patches are meanwhile addressed upstream, partially or in
  whole.

* The upstream configure scripts deteriorated and caused one of my Linux build's
  CC=/absolute/path/to/some/clang to be mistaken for MSVC which caused them to
  force LD=link, which in turn caused them to only build archives and not the
  shared libraries that we expect.  external/coinmp/clang-with-path.patch
  addresses that.

* There's apparently a new ClpSolver library now that also needs to be
  installed.  Otherwise at least CppunitTest_sccomp_swarmsolvertest failed due
  to

> warn:sal.osl:1950612:1950612:sal/osl/unx/module.cxx:152: dlopen(instdir/program/libsolverlo.so, 257): libClpSolver.so.1: cannot open shared object file: No such file or directory

* Plus modifications to external/coinmp/windows.build.patch.1 thankfully done by
  Taichi Haradaguchi <20001722@ymail.ne.jp> to make this actually compile on
  Windows (cf. the mailing list thread starting at
  <https://lists.freedesktop.org/archives/libreoffice/2022-September/089383.html>
  "Maintaining building external/coinmp on Windows")

Change-Id: I498c9513fa0d96d8ae2b9ba4c09dd792340db730
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140057
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-06-09 12:24:56 +02:00

60 lines
2.4 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_ExternalProject_ExternalProject,coinmp))
$(eval $(call gb_ExternalProject_register_targets,coinmp,\
build \
))
ifeq ($(COM),MSC)
$(call gb_ExternalProject_get_state_target,coinmp,build) :
$(call gb_Trace_StartRange,coinmp,EXTERNAL)
$(call gb_ExternalProject_run,build,\
MSBuild.exe CoinMP.sln /t:Build \
/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
/p:PlatformToolset=$(VCTOOLSET) /p:VisualStudioVersion=$(VCVER) /ToolsVersion:Current \
$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
,CoinMP/MSVisualStudio/v9)
$(call gb_Trace_EndRange,coinmp,EXTERNAL)
else
$(call gb_ExternalProject_get_state_target,coinmp,build) :
$(call gb_Trace_StartRange,coinmp,EXTERNAL)
+$(call gb_ExternalProject_run,build,\
$(gb_RUN_CONFIGURE) ./configure COIN_SKIP_PROJECTS="Data/Sample" \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
$(gb_CONFIGURE_PLATFORMS) \
$(if $(DISABLE_DYNLOADING),--disable-shared) \
--disable-bzlib \
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
--without-glpk \
--enable-dependency-linking F77=unavailable \
$(if $(filter LINUX,$(OS)), \
'LDFLAGS=-Wl$(COMMA)-z$(COMMA)origin \
-Wl$(COMMA)-rpath$(COMMA)\$$$$ORIGIN') \
&& $(MAKE) \
$(if $(filter MACOSX,$(OS)),&& $(PERL) \
$(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
$(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbc.3.9.10.dylib \
$(EXTERNAL_WORKDIR)/Cbc/src/.libs/libCbcSolver.3.9.10.dylib \
$(EXTERNAL_WORKDIR)/Cgl/src/.libs/libCgl.1.9.11.dylib \
$(EXTERNAL_WORKDIR)/Clp/src/.libs/libClp.1.13.12.dylib \
$(EXTERNAL_WORKDIR)/Clp/src/.libs/libClpSolver.1.13.12.dylib \
$(EXTERNAL_WORKDIR)/Clp/src/OsiClp/.libs/libOsiClp.1.13.12.dylib \
$(EXTERNAL_WORKDIR)/CoinMP/src/.libs/libCoinMP.1.8.4.dylib \
$(EXTERNAL_WORKDIR)/CoinUtils/src/.libs/libCoinUtils.3.10.15.dylib \
$(EXTERNAL_WORKDIR)/Osi/src/Osi/.libs/libOsi.1.12.10.dylib) \
)
$(call gb_Trace_EndRange,coinmp,EXTERNAL)
endif
# vim: set noet sw=4 ts=4: