Kaydet (Commit) 4f7b9688 authored tarafından Matúš Kukan's avatar Matúš Kukan

Allow to build lpsolver based on CoinMP library.

Change-Id: I0a3b2bd6744f6ccca0017cd1e06a4018f085445a
üst 083fa767
......@@ -157,8 +157,8 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \
scd \
scfilt \
scui \
$(if $(MPL_SUBSET),,$(if $(ENABLE_LPSOLVE),solver)) \
$(if $(ENABLE_OPENCL),scopencl) \
$(if $(WITH_LPSOLVER),solver) \
$(if $(DISABLE_SCRIPTING),,vbaobj) \
$(if $(ENABLE_TELEPATHY),tubes) \
))
......
......@@ -1858,8 +1858,8 @@ endef
endif # ANDROID
endif # SYSTEM_LCMS2
ifeq ($(WITH_LPSOLVER),lpsolve)
ifneq ($(ENABLE_LPSOLVE),)
ifneq ($(SYSTEM_LPSOLVE),)
define gb_LinkTarget__use_lpsolve
......@@ -1895,7 +1895,38 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\
))
endif # SYSTEM_LPSOLVE
endif # ENABLE_LPSOLVE
else ifeq ($(WITH_LPSOLVER),coinmp)
define gb_LinkTarget__use_coinmp
$(call gb_LinkTarget_use_package,$(1),coinmp)
ifeq ($(COM),MSC)
$(call gb_LinkTarget_add_libs,$(1),\
$(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/MSVisualStudio/v9/release/CoinMP.lib \
)
else
$(call gb_LinkTarget_add_libs,$(1),\
-L$(call gb_UnpackedTarball_get_dir,coinmp)/Cbc/src/.libs -lCbc -lCbcSolver \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/Cgl/src/.libs -lCgl \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/Clp/src/.libs -lClp \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/Clp/src/OsiClp/.libs -lOsiClp \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/src/.libs -lCoinMP \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/CoinUtils/src/.libs -lCoinUtils \
-L$(call gb_UnpackedTarball_get_dir,coinmp)/Osi/src/Osi/.libs -lOsi \
)
endif
$(call gb_LinkTarget_set_include,$(1),\
-I$(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/src \
$$(INCLUDE) \
)
endef
$(eval $(call gb_Helper_register_packages_for_install,ooo,\
coinmp \
))
endif # WITH_LPSOLVER
ifeq ($(ENABLE_GIO),TRUE)
......
......@@ -135,7 +135,6 @@ export ENABLE_KDE4=@ENABLE_KDE4@
export ENABLE_KDE=@ENABLE_KDE@
export ENABLE_LIBLANGTAG=@ENABLE_LIBLANGTAG@
export ENABLE_LOCKDOWN=@ENABLE_LOCKDOWN@
export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@
export ENABLE_LTO=@ENABLE_LTO@
export ENABLE_LWP=@ENABLE_LWP@
export ENABLE_MACOSX_MACLIKE_APP_STRUCTURE=@ENABLE_MACOSX_MACLIKE_APP_STRUCTURE@
......@@ -597,6 +596,7 @@ export WITH_KRB5=@WITH_KRB5@
export WITH_LANG=@WITH_LANG@
export WITH_LANG_LIST=@WITH_LANG_LIST@
export WITH_LINKER_HASH_STYLE=@WITH_LINKER_HASH_STYLE@
export WITH_LPSOLVER=@WITH_LPSOLVER@
export WITH_MOZAB4WIN=@WITH_MOZAB4WIN@
export WITH_MYSPELL_DICTS=@WITH_MYSPELL_DICTS@
export WITH_POOR_HELP_LOCALIZATIONS=@WITH_POOR_HELP_LOCALIZATIONS@
......
......@@ -655,7 +655,6 @@ linux-android*)
enable_neon=no
enable_mpl_subset=yes
enable_opengl=no
enable_lpsolve=no
enable_report_builder=no
with_theme="tango"
test_cups=no
......@@ -1770,6 +1769,14 @@ AC_ARG_WITH(system-npapi-headers,
[with_system_npapi_headers="$with_system_headers"]
)
AC_ARG_WITH(lpsolver,
AS_HELP_STRING([--with-lpsolver],
[Specify which library to use for lpsolver implementation in sccomp.
Possible values: "lpsolve", "coinmp", "no". The default value is "lpsolve".
Example: --with-lpsolver="coinmp"]),
WITH_LPSOLVER=$withval,
WITH_LPSOLVER="lpsolve")
AC_ARG_WITH(linker-hash-style,
AS_HELP_STRING([--with-linker-hash-style],
[Use linker with --hash-style=<style> when linking shared objects.
......@@ -7325,7 +7332,6 @@ if test $_os = iOS; then
enable_mpl_subset=yes
enable_opengl=no
enable_lotuswordpro=no
enable_lpsolve=no
enable_postgresql_sdbc=no
enable_lotuswordpro=no
enable_neon=no
......@@ -9399,42 +9405,48 @@ AC_SUBST(MYTHES_LIBS)
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_LPSOLVE=
AC_MSG_CHECKING([whether to build with lpsolve])
if test "$enable_lpsolve" != "no"; then
ENABLE_LPSOLVE=TRUE
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
AC_SUBST(ENABLE_LPSOLVE)
AC_MSG_CHECKING([which lpsolve to use])
if test "$with_system_lpsolve" = "yes"; then
AC_MSG_RESULT([external])
SYSTEM_LPSOLVE=TRUE
AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
[ AC_MSG_ERROR(lpsolve headers not found.)], [])
save_LIBS=$LIBS
# some systems need this. Like Ubuntu....
AC_CHECK_LIB(m, floor)
AC_CHECK_LIB(dl, dlopen)
AC_CHECK_LIB([lpsolve55], [make_lp], [:],
[ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
LIBS=$save_LIBS
libo_MINGW_CHECK_DLL([lpsolve55])
else
AC_MSG_RESULT([internal])
SYSTEM_LPSOLVE=
BUILD_TYPE="$BUILD_TYPE LPSOLVE"
if test "$enable_lpsolve" = "no" -o "$enable_mpl_subset" = "yes"; then
WITH_LPSOLVER="coinmp"
fi
if test $_os = iOS -o $_os = Android; then
WITH_LPSOLVER="no"
fi
AC_MSG_CHECKING([for lpsolver library])
case "$WITH_LPSOLVER" in
coinmp)
AC_MSG_RESULT([CoinMP])
# Should we check for system CoinMP ? How to do that ?
BUILD_TYPE="$BUILD_TYPE COINMP"
;;
lpsolve)
AC_MSG_RESULT([lpsolve])
AC_MSG_CHECKING([which lpsolve to use])
if test "$with_system_lpsolve" = "yes"; then
AC_MSG_RESULT([external])
SYSTEM_LPSOLVE=TRUE
AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
[ AC_MSG_ERROR(lpsolve headers not found.)], [])
save_LIBS=$LIBS
# some systems need this. Like Ubuntu....
AC_CHECK_LIB(m, floor)
AC_CHECK_LIB(dl, dlopen)
AC_CHECK_LIB([lpsolve55], [make_lp], [:],
[ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
LIBS=$save_LIBS
libo_MINGW_CHECK_DLL([lpsolve55])
else
AC_MSG_RESULT([internal])
SYSTEM_LPSOLVE=
BUILD_TYPE="$BUILD_TYPE LPSOLVE"
fi
;;
*)
AC_MSG_RESULT([none, disabled])
WITH_LPSOLVER=""
;;
esac
AC_SUBST(SYSTEM_LPSOLVE)
AC_SUBST(WITH_LPSOLVER)
dnl ===================================================================
dnl Checking for libexttextcat
......@@ -12494,8 +12506,8 @@ if test "$enable_mpl_subset" = "yes"; then
if test "$enable_opengl" != "no" -o "x$ENABLE_OPENGL" = "xTRUE"; then
AC_MSG_ERROR([need to --disable-opengl - GL transitions support.])
fi
if test "$enable_lpsolve" != "no" -o "x$ENABLE_LPSOLVE" = "xTRUE"; then
AC_MSG_ERROR([need to --disable-lpsolve - calc linear programming solver.])
if test "$WITH_LPSOLVER" = "lpsolve"; then
AC_MSG_ERROR([need --with-lpsolver=coinmp or --without-lpsolver - calc linear programming solver.])
fi
MPL_SUBSET="TRUE"
......
......@@ -109,7 +109,7 @@ $(eval $(call gb_Rdb_add_components,services,\
xmlscript/util/xmlscript \
xmlsecurity/util/xmlsecurity \
xmlsecurity/util/xsec_fw \
$(if $(ENABLE_LPSOLVE), \
$(if $(WITH_LPSOLVER), \
sccomp/source/solver/solver \
) \
writerfilter/util/writerfilter \
......
......@@ -35,11 +35,19 @@ $(eval $(call gb_Library_use_libraries,solver,\
$(eval $(call gb_Library_use_externals,solver,\
boost_headers \
lpsolve \
$(WITH_LPSOLVER) \
))
ifeq ($(WITH_LPSOLVER),lpsolve)
$(eval $(call gb_Library_add_exception_objects,solver,\
sccomp/source/solver/solver-lpsolve \
))
else ifeq ($(WITH_LPSOLVER),coinmp)
$(eval $(call gb_Library_add_exception_objects,solver,\
sccomp/source/solver/solver \
))
endif
# vim: set noet sw=4 ts=4:
......@@ -19,7 +19,7 @@
$(eval $(call gb_Module_Module,sccomp))
ifeq ($(ENABLE_LPSOLVE),TRUE)
ifneq ($(WITH_LPSOLVER),)
$(eval $(call gb_Module_add_targets,sccomp,\
Library_solver \
......
......@@ -12,11 +12,16 @@ $(eval $(call gb_InstallModule_InstallModule,scp2/calc))
$(eval $(call gb_InstallModule_use_auto_install_libs,scp2/calc,calc))
$(eval $(call gb_InstallModule_define_if_set,scp2/calc,\
ENABLE_LPSOLVE \
ENABLE_MACOSX_MACLIKE_APP_STRUCTURE \
ENABLE_MACOSX_SANDBOX \
))
ifneq (,$(WITH_LPSOLVER))
$(eval $(call gb_InstallModule_add_defs,scp2/calc,\
-DWITH_LPSOLVER \
))
endif
$(eval $(call gb_InstallModule_add_templates,scp2/calc,\
scp2/source/templates/module_langpack_calc \
))
......
......@@ -24,7 +24,6 @@ $(eval $(call gb_InstallModule_define_if_set,scp2/ooo,\
ENABLE_GTK \
ENABLE_KDE \
ENABLE_LIBLANGTAG \
ENABLE_LPSOLVE \
ENABLE_MACOSX_MACLIKE_APP_STRUCTURE \
ENABLE_MACOSX_SANDBOX \
ENABLE_NPAPI_FROM_BROWSER \
......
......@@ -50,7 +50,7 @@ File gid_File_Exe_Scalc
End
#endif
#if defined(ENABLE_LPSOLVE)
#if defined(WITH_LPSOLVER)
STD_RES_FILE( gid_File_Res_Solver, solver)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment