svn commit: r457247 - in head/math: . SoPlex SoPlex/files
Yuri Victorovich
yuri at FreeBSD.org
Mon Dec 25 18:47:50 UTC 2017
Author: yuri
Date: Mon Dec 25 18:47:47 2017
New Revision: 457247
URL: https://svnweb.freebsd.org/changeset/ports/457247
Log:
New port: math/SoPlex: Optimization package for solving linear programming problems (LPs)
Submitted by: myself
Approved by: adamw (mentor)
Differential Revision: https://reviews.freebsd.org/D13613
Added:
head/math/SoPlex/
head/math/SoPlex/Makefile (contents, props changed)
head/math/SoPlex/distinfo (contents, props changed)
head/math/SoPlex/files/
head/math/SoPlex/files/patch-CMakeLists.txt (contents, props changed)
head/math/SoPlex/files/patch-src_CMakeLists.txt (contents, props changed)
head/math/SoPlex/pkg-descr (contents, props changed)
head/math/SoPlex/pkg-plist (contents, props changed)
Modified:
head/math/Makefile
Modified: head/math/Makefile
==============================================================================
--- head/math/Makefile Mon Dec 25 18:39:38 2017 (r457246)
+++ head/math/Makefile Mon Dec 25 18:47:47 2017 (r457247)
@@ -91,6 +91,7 @@
SUBDIR += R-cran-units
SUBDIR += R-cran-xts
SUBDIR += R-cran-zoo
+ SUBDIR += SoPlex
SUBDIR += aamath
SUBDIR += abacus
SUBDIR += abakus
Added: head/math/SoPlex/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/Makefile Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,31 @@
+# Created by: Yuri Victorovich <yuri at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= SoPlex
+DISTVERSION= 3.0.1
+CATEGORIES= math science
+MASTER_SITES= http://soplex.zib.de/download/release/
+DISTNAME= ${PORTNAME:tl}-${DISTVERSION}
+
+MAINTAINER= yuri at FreeBSD.org
+COMMENT= Optimization package for solving linear programming problems (LPs)
+
+LICENSE= ZIB
+LICENSE_NAME= ZIB ACADEMIC LICENSE
+LICENSE_FILE= ${WRKSRC}/COPYING
+LICENSE_PERMS= dist-mirror pkg-mirror auto-accept
+
+LIB_DEPENDS= libgmp.so:math/gmp
+
+USES= cmake:outsource,noninja tar:tgz
+USE_LDCONFIG= yes
+PLIST_SUB= SHL4=${DISTVERSION}.0 SHL2=${DISTVERSION:R}
+
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+CMAKE_ARGS= -DFREEBSD_NO_CXX_THREAD_LOCAL_BUG224581:BOOL=ON # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224581
+# This also necessitates noninja above for some reason
+.endif
+
+.include <bsd.port.post.mk>
Added: head/math/SoPlex/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/distinfo Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1514183609
+SHA256 (soplex-3.0.1.tgz) = f97a6be9f890f723c046ac21b80d8781ee6155e49e0e6ae90d151d44a23b8676
+SIZE (soplex-3.0.1.tgz) = 1343714
Added: head/math/SoPlex/files/patch-CMakeLists.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/files/patch-CMakeLists.txt Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,71 @@
+--- CMakeLists.txt.orig 2017-09-04 15:12:27 UTC
++++ CMakeLists.txt
+@@ -45,33 +45,33 @@ set(CMAKE_MACOSX_RPATH ON)
+ set(CMAKE_CXX_STANDARD 11)
+
+ # create target to update the githash
+-file(WRITE ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake "
+-find_program(GIT git)
+-if(GIT)
+- execute_process(
+- COMMAND \${GIT} describe --always --dirty
+- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
+- if(GITHASH STREQUAL \"\")
+- set(GITHASH \"------\")
+- endif()
+- string(REGEX REPLACE \"^.*-g\" \"\" GITHASH \${GITHASH})
+-else()
+- set(GITHASH \"------\")
+-endif()
+-if(GITHASH STREQUAL \"------\")
+- # read stored hash from file
+- file(STRINGS \${DST} GITHASH)
+- string(REGEX REPLACE \"#define SPX_GITHASH \" \"\" GITHASH \${GITHASH})
+-else()
+- file(WRITE \${DST} \"#define SPX_GITHASH \\\"\${GITHASH}\\\"\")
+-endif()
+-message(STATUS \"Git hash: \" \${GITHASH})
+-")
++#file(WRITE ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake "
++#find_program(GIT git)
++#if(GIT)
++# execute_process(
++# COMMAND \${GIT} describe --always --dirty
++# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++# OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
++# if(GITHASH STREQUAL \"\")
++# set(GITHASH \"------\")
++# endif()
++# string(REGEX REPLACE \"^.*-g\" \"\" GITHASH \${GITHASH})
++#else()
++# set(GITHASH \"------\")
++#endif()
++#if(GITHASH STREQUAL \"------\")
++# # read stored hash from file
++# file(STRINGS \${DST} GITHASH)
++# string(REGEX REPLACE \"#define SPX_GITHASH \" \"\" GITHASH \${GITHASH})
++#else()
++# file(WRITE \${DST} \"#define SPX_GITHASH \\\"\${GITHASH}\\\"\")
++#endif()
++#message(STATUS \"Git hash: \" \${GITHASH})
++#")
+ # encode the current git hash into the binary
+-add_custom_target(soplex_update_githash
+- COMMAND ${CMAKE_COMMAND} -DDST=${PROJECT_SOURCE_DIR}/src/git_hash.cpp
+- -P ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake)
++#add_custom_target(soplex_update_githash
++# COMMAND ${CMAKE_COMMAND} -DDST=${PROJECT_SOURCE_DIR}/src/git_hash.cpp
++# -P ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake)
+
+ option(LEGACY "Build SoPlex in legacy mode" OFF)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+@@ -85,7 +85,7 @@ if(LEGACY)
+ add_definitions(-DTHREADLOCAL=)
+ endif()
+
+-if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local")
++if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local" OR FREEBSD_NO_CXX_THREAD_LOCAL_BUG224581)
+ add_definitions(-DTHREADLOCAL=)
+ endif()
+
Added: head/math/SoPlex/files/patch-src_CMakeLists.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/files/patch-src_CMakeLists.txt Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,27 @@
+--- src/CMakeLists.txt.orig 2017-09-04 15:08:47 UTC
++++ src/CMakeLists.txt
+@@ -159,20 +159,20 @@ set(headers
+ wallclocktimer.h)
+
+ # create soplex library with pic
+-add_library(libsoplex-pic STATIC ${sources})
++add_library(libsoplex-pic SHARED ${sources})
+ set_target_properties(libsoplex-pic PROPERTIES
+ POSITION_INDEPENDENT_CODE on
+ VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB}
+ SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR})
+-add_dependencies(libsoplex-pic soplex_update_githash)
++#add_dependencies(libsoplex-pic soplex_update_githash)
+ target_link_libraries(libsoplex-pic ${libs})
+
+ # create soplex library without pic
+-add_library(libsoplex STATIC ${sources})
++add_library(libsoplex SHARED ${sources})
+ set_target_properties(libsoplex PROPERTIES
+ VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB}
+ SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR})
+-add_dependencies(libsoplex soplex_update_githash)
++#add_dependencies(libsoplex soplex_update_githash)
+ target_link_libraries(libsoplex ${libs})
+
+ # create soplex binary using library without pic
Added: head/math/SoPlex/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/pkg-descr Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,18 @@
+SoPlex is an optimization package for solving linear programming problems (LPs)
+based on an advanced implementation of the primal and dual revised simplex
+algorithm. It provides special support for the exact solution of LPs with
+rational input data. It can be used as a standalone solver reading MPS or LP
+format files via a command line interface as well as embedded into other
+programs via a C++ class library. The main features of SoPlex are:
+
+* presolving, scaling, exploitation of sparsity, hot-starting from any regular
+ basis
+* column- and row-oriented form of the simplex algorithm
+* an object-oriented software design written in C++
+* a compile-time option to use 80bit extended ("quad") precision for numerically
+ difficult LPs
+* an LP iterative refinement procedure to compute high-precision solution
+* routines for an exact rational LU factorization and continued fraction
+ approximations in order to compute exact solutions.
+
+WWW: http://soplex.zib.de
Added: head/math/SoPlex/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/math/SoPlex/pkg-plist Mon Dec 25 18:47:47 2017 (r457247)
@@ -0,0 +1,104 @@
+bin/soplex
+include/array.h
+include/basevectors.h
+include/classarray.h
+include/clufactor.h
+include/clufactor_rational.h
+include/cring.h
+include/dataarray.h
+include/datahashtable.h
+include/datakey.h
+include/dataset.h
+include/didxset.h
+include/dsvector.h
+include/dsvectorbase.h
+include/dvector.h
+include/dvectorbase.h
+include/exceptions.h
+include/gzstream.h
+include/idlist.h
+include/idxset.h
+include/islist.h
+include/lpcol.h
+include/lpcolbase.h
+include/lpcolset.h
+include/lpcolsetbase.h
+include/lprow.h
+include/lprowbase.h
+include/lprowset.h
+include/lprowsetbase.h
+include/mpsinput.h
+include/nameset.h
+include/notimer.h
+include/random.h
+include/rational.h
+include/ratrecon.h
+include/slinsolver.h
+include/slinsolver_rational.h
+include/slufactor.h
+include/slufactor_rational.h
+include/sol.h
+include/solbase.h
+include/soplex.h
+include/soplexlegacy.h
+include/sorter.h
+include/spxalloc.h
+include/spxautopr.h
+include/spxbasis.h
+include/spxboundflippingrt.h
+include/spxdantzigpr.h
+include/spxdefaultrt.h
+include/spxdefines.h
+include/spxdevexpr.h
+include/spxequilisc.h
+include/spxfastrt.h
+include/spxfileio.h
+include/spxgeometsc.h
+include/spxgithash.h
+include/spxharrisrt.h
+include/spxhybridpr.h
+include/spxid.h
+include/spxleastsqsc.h
+include/spxlp.h
+include/spxlpbase.h
+include/spxmainsm.h
+include/spxout.h
+include/spxparmultpr.h
+include/spxpricer.h
+include/spxratiotester.h
+include/spxscaler.h
+include/spxsimplifier.h
+include/spxsolver.h
+include/spxstarter.h
+include/spxsteepexpr.h
+include/spxsteeppr.h
+include/spxsumst.h
+include/spxvectorst.h
+include/spxweightpr.h
+include/spxweightst.h
+include/ssvector.h
+include/ssvectorbase.h
+include/statistics.h
+include/svector.h
+include/svectorbase.h
+include/svset.h
+include/svsetbase.h
+include/timer.h
+include/timerfactory.h
+include/unitvector.h
+include/unitvectorbase.h
+include/updatevector.h
+include/usertimer.h
+include/validation.h
+include/vector.h
+include/vectorbase.h
+include/wallclocktimer.h
+lib/cmake/soplex/soplex-config.cmake
+lib/cmake/soplex/soplex-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/soplex/soplex-targets.cmake
+lib/libsoplex-pic.so
+lib/libsoplex-pic.so.%%SHL2%%
+lib/libsoplex-pic.so.%%SHL4%%
+lib/libsoplex.so
+lib/libsoplex.so.%%SHL2%%
+lib/libsoplex.so.%%SHL4%%
More information about the svn-ports-head
mailing list