From de7cdbc5840fd7d958d486901e405890eff224b9 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Mon, 31 Mar 2014 19:18:41 +0200 Subject: Install coinmp and lpsolve linear solvers in parallel. Change-Id: If07d94a2f646c8377b76fdf645e85f9491e4f061 --- Repository.mk | 3 ++- config_host.mk.in | 1 + configure.ac | 15 +++++++++++-- postprocess/Rdb_services.mk | 3 +++ sccomp/Library_coinmpsolver.mk | 34 +++++++++++++++++++++++++++++ sccomp/Module_sccomp.mk | 9 +++----- sccomp/source/solver/coinmpsolver.component | 15 +++++++++++++ sccomp/source/solver/solver.cxx | 6 ++--- sccomp/source/solver/solver.hrc | 1 + sccomp/source/solver/solver.src | 5 +++++ 10 files changed, 80 insertions(+), 12 deletions(-) create mode 100644 sccomp/Library_coinmpsolver.mk create mode 100644 sccomp/source/solver/coinmpsolver.component diff --git a/Repository.mk b/Repository.mk index f30540e10dee..b0a91932d31e 100644 --- a/Repository.mk +++ b/Repository.mk @@ -150,14 +150,15 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,base, \ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \ analysis \ calc \ + $(if $(ENABLE_COINMP),coinmpsolver) \ date \ pricing \ sc \ scd \ scfilt \ scui \ - $(if $(MPL_SUBSET),,$(if $(ENABLE_LPSOLVE),solver)) \ $(if $(ENABLE_OPENCL),scopencl) \ + $(if $(ENABLE_LPSOLVE),solver) \ $(if $(DISABLE_SCRIPTING),,vbaobj) \ $(if $(ENABLE_TELEPATHY),tubes) \ )) diff --git a/config_host.mk.in b/config_host.mk.in index 43d403fc29a9..bcb4e975a461 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -108,6 +108,7 @@ export EBOOK_LIBS=$(gb_SPACE)@EBOOK_LIBS@ export ENABLE_AVAHI=@ENABLE_AVAHI@ export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@ export ENABLE_CMIS=@ENABLE_CMIS@ +export ENABLE_COINMP=@ENABLE_COINMP@ export ENABLE_CRASHDUMP=@ENABLE_CRASHDUMP@ export ENABLE_CUPS=@ENABLE_CUPS@ export ENABLE_CURL=@ENABLE_CURL@ diff --git a/configure.ac b/configure.ac index f039f1b835e8..3bd45759b6c9 100644 --- a/configure.ac +++ b/configure.ac @@ -654,6 +654,7 @@ linux-android*) enable_lotuswordpro=no enable_mpl_subset=yes enable_opengl=no + enable_coinmp=no enable_lpsolve=no enable_report_builder=no with_theme="tango" @@ -7323,6 +7324,7 @@ if test $_os = iOS; then enable_mpl_subset=yes enable_opengl=no enable_lotuswordpro=no + enable_coinmp=no enable_lpsolve=no enable_postgresql_sdbc=no enable_lotuswordpro=no @@ -9408,8 +9410,17 @@ dnl =================================================================== dnl How should we build the linear programming solver ? dnl =================================================================== -# Should we check for system CoinMP ? How to do that ? -BUILD_TYPE="$BUILD_TYPE COINMP" +ENABLE_COINMP= +AC_MSG_CHECKING([whether to build with CoinMP]) +if test "$enable_coinmp" != "no"; then + ENABLE_COINMP=TRUE + AC_MSG_RESULT([yes]) + # Should we check for system CoinMP ? How to do that ? + BUILD_TYPE="$BUILD_TYPE COINMP" +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_COINMP) ENABLE_LPSOLVE= AC_MSG_CHECKING([whether to build with lpsolve]) diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk index 8c56370aad25..83ce7dc3109e 100755 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk @@ -109,6 +109,9 @@ $(eval $(call gb_Rdb_add_components,services,\ xmlscript/util/xmlscript \ xmlsecurity/util/xmlsecurity \ xmlsecurity/util/xsec_fw \ + $(if $(ENABLE_COINMP), \ + sccomp/source/solver/coinmpsolver \ + ) \ $(if $(ENABLE_LPSOLVE), \ sccomp/source/solver/solver \ ) \ diff --git a/sccomp/Library_coinmpsolver.mk b/sccomp/Library_coinmpsolver.mk new file mode 100644 index 000000000000..849ce0f5e04c --- /dev/null +++ b/sccomp/Library_coinmpsolver.mk @@ -0,0 +1,34 @@ +# -*- 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_Library_Library,coinmpsolver)) + +$(eval $(call gb_Library_set_componentfile,coinmpsolver,sccomp/source/solver/coinmpsolver)) + +$(eval $(call gb_Library_use_sdk_api,coinmpsolver)) + +$(eval $(call gb_Library_use_libraries,coinmpsolver,\ + comphelper \ + cppu \ + cppuhelper \ + sal \ + tl \ + i18nlangtag \ + $(gb_UWINAPI) \ +)) + +$(eval $(call gb_Library_use_externals,coinmpsolver,\ + boost_headers \ + coinmp \ +)) + +$(eval $(call gb_Library_add_exception_objects,coinmpsolver,\ + sccomp/source/solver/solver \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/sccomp/Module_sccomp.mk b/sccomp/Module_sccomp.mk index dd56f872ecac..08df52bad603 100644 --- a/sccomp/Module_sccomp.mk +++ b/sccomp/Module_sccomp.mk @@ -19,16 +19,13 @@ $(eval $(call gb_Module_Module,sccomp)) -ifeq ($(ENABLE_LPSOLVE),TRUE) - $(eval $(call gb_Module_add_targets,sccomp,\ - Library_solver \ + $(if $(ENABLE_COINMP), Library_coinmpsolver) \ + $(if $(ENABLE_LPSOLVE), Library_solver) \ )) $(eval $(call gb_Module_add_l10n_targets,sccomp,\ - AllLangResTarget_solver \ + $(if $(ENABLE_COINMP)$(ENABLE_LPSOLVE), AllLangResTarget_solver) \ )) -endif - # vim: set noet sw=4 ts=4: diff --git a/sccomp/source/solver/coinmpsolver.component b/sccomp/source/solver/coinmpsolver.component new file mode 100644 index 000000000000..0feb3d0b4f13 --- /dev/null +++ b/sccomp/source/solver/coinmpsolver.component @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/sccomp/source/solver/solver.cxx b/sccomp/source/solver/solver.cxx index 128e8773be9a..5ea871e2c4b2 100644 --- a/sccomp/source/solver/solver.cxx +++ b/sccomp/source/solver/solver.cxx @@ -177,7 +177,7 @@ uno::Reference SAL_CALL SolverComponent::getPropertySet OUString SAL_CALL SolverComponent::getComponentDescription() throw (uno::RuntimeException, std::exception) { - return lcl_GetResourceString( RID_SOLVER_COMPONENT ); + return lcl_GetResourceString( RID_COINMP_SOLVER_COMPONENT ); } OUString SAL_CALL SolverComponent::getStatusDescription() throw (uno::RuntimeException, std::exception) @@ -589,7 +589,7 @@ uno::Sequence< OUString > SolverComponent_getSupportedServiceNames() OUString SolverComponent_getImplementationName() { - return OUString::createFromAscii( "com.sun.star.comp.Calc.Solver" ); + return OUString::createFromAscii( "com.sun.star.comp.Calc.CoinMPSolver" ); } OUString SAL_CALL SolverComponent::getImplementationName() throw(uno::RuntimeException, std::exception) @@ -615,7 +615,7 @@ uno::Reference SolverComponent_createInstance( const uno::Refer extern "C" { - SAL_DLLPUBLIC_EXPORT void* SAL_CALL solver_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) + SAL_DLLPUBLIC_EXPORT void* SAL_CALL coinmp_component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ ) { OUString aImplName( OUString::createFromAscii( pImplName ) ); void* pRet = 0; diff --git a/sccomp/source/solver/solver.hrc b/sccomp/source/solver/solver.hrc index bf017afd1ed0..888739831ea9 100644 --- a/sccomp/source/solver/solver.hrc +++ b/sccomp/source/solver/solver.hrc @@ -32,6 +32,7 @@ #define RID_ERROR_INFEASIBLE (SOLVER_RESOURCE_START + 8) #define RID_ERROR_UNBOUNDED (SOLVER_RESOURCE_START + 9) #define RID_ERROR_TIMEOUT (SOLVER_RESOURCE_START + 10) +#define RID_COINMP_SOLVER_COMPONENT (SOLVER_RESOURCE_START + 11) #endif diff --git a/sccomp/source/solver/solver.src b/sccomp/source/solver/solver.src index 52a9b9ecf116..05044003ff45 100644 --- a/sccomp/source/solver/solver.src +++ b/sccomp/source/solver/solver.src @@ -24,6 +24,11 @@ String RID_SOLVER_COMPONENT Text [ en-US ] = "%PRODUCTNAME Linear Solver"; }; +String RID_COINMP_SOLVER_COMPONENT +{ + Text [ en-US ] = "%PRODUCTNAME CoinMP Linear Solver"; +}; + String RID_PROPERTY_NONNEGATIVE { Text [ en-US ] = "Assume variables as non-negative"; -- cgit