summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-03-31 19:18:41 +0200
committerMatúš Kukan <matus.kukan@collabora.com>2014-04-01 11:04:33 +0200
commitde7cdbc5840fd7d958d486901e405890eff224b9 (patch)
tree17de32fdc1bc69138c44ca22c81d3115871c8f2a
parent8dc394d5c573e5583760c7cc56c5c19062d3f062 (diff)
Install coinmp and lpsolve linear solvers in parallel.
Change-Id: If07d94a2f646c8377b76fdf645e85f9491e4f061
-rw-r--r--Repository.mk3
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac15
-rwxr-xr-xpostprocess/Rdb_services.mk3
-rw-r--r--sccomp/Library_coinmpsolver.mk34
-rw-r--r--sccomp/Module_sccomp.mk9
-rw-r--r--sccomp/source/solver/coinmpsolver.component15
-rw-r--r--sccomp/source/solver/solver.cxx6
-rw-r--r--sccomp/source/solver/solver.hrc1
-rw-r--r--sccomp/source/solver/solver.src5
10 files changed, 80 insertions, 12 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" prefix="coinmp"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Calc.CoinMPSolver">
+ <service name="com.sun.star.sheet.Solver"/>
+ </implementation>
+</component>
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<beans::XPropertySetInfo> 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<uno::XInterface> 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";