office-gobmx/external/coinmp/ExternalPackage_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

43 lines
3 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_ExternalPackage_ExternalPackage,coinmp,coinmp))
$(eval $(call gb_ExternalPackage_use_external_project,coinmp,coinmp))
ifeq ($(OS),WNT)
ifeq ($(CPUNAME),X86_64)
coinmp_arch_subdir=x64/
endif
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/CoinMP.dll,CoinMP/MSVisualStudio/v9/$(coinmp_arch_subdir)$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)/CoinMP.dll))
else ifneq ($(DISABLE_DYNLOADING),)
# Just use the static archives from workdir. See bin/lo-all-static-libs
else ifeq ($(OS),MACOSX)
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.3.dylib,Cbc/src/.libs/libCbc.3.9.10.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.3.dylib,Cbc/src/.libs/libCbcSolver.3.9.10.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.1.dylib,Cgl/src/.libs/libCgl.1.9.11.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.1.dylib,Clp/src/.libs/libClp.1.13.12.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClpSolver.1.dylib,Clp/src/.libs/libClpSolver.1.13.12.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.1.dylib,Clp/src/OsiClp/.libs/libOsiClp.1.13.12.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.1.dylib,CoinMP/src/.libs/libCoinMP.1.8.4.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.3.dylib,CoinUtils/src/.libs/libCoinUtils.3.10.15.dylib))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.1.dylib,Osi/src/Osi/.libs/libOsi.1.12.10.dylib))
else
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbc.so.3,Cbc/src/.libs/libCbc.so.3.9.10))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCbcSolver.so.3,Cbc/src/.libs/libCbcSolver.so.3.9.10))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCgl.so.1,Cgl/src/.libs/libCgl.so.1.9.11))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClp.so.1,Clp/src/.libs/libClp.so.1.13.12))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libClpSolver.so.1,Clp/src/.libs/libClpSolver.so.1.13.12))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsiClp.so.1,Clp/src/OsiClp/.libs/libOsiClp.so.1.13.12))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinMP.so.1,CoinMP/src/.libs/libCoinMP.so.1.8.4))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libCoinUtils.so.3,CoinUtils/src/.libs/libCoinUtils.so.3.10.15))
$(eval $(call gb_ExternalPackage_add_file,coinmp,$(LIBO_LIB_FOLDER)/libOsi.so.1,Osi/src/Osi/.libs/libOsi.so.1.12.10))
endif
# vim: set noet sw=4 ts=4: