diff options
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | PKGBUILD | 50 | ||||
-rw-r--r-- | lpsolve-CMakeLists.txt | 142 |
3 files changed, 213 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..df88f3292e6c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,21 @@ +# Generated by mksrcinfo v8 +# Sat Apr 1 06:19:51 UTC 2017 +pkgbase = mingw-w64-lpsolve + pkgdesc = a Mixed Integer Linear Programming (MILP) solver (mingw-w64) + pkgver = 5.5.2.5 + pkgrel = 1 + url = http://lpsolve.sourceforge.net/ + arch = any + license = LGPL2.1 + makedepends = mingw-w64-cmake + depends = mingw-w64-crt + options = !strip + options = !buildflags + options = staticlibs + source = http://downloads.sourceforge.net/project/lpsolve/lpsolve/5.5.2.5/lp_solve_5.5.2.5_source.tar.gz + source = lpsolve-CMakeLists.txt + sha1sums = 232ce8edb073c7c9b6d9100abf77038d989c45c8 + sha1sums = SKIP + +pkgname = mingw-w64-lpsolve + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..31865988a515 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,50 @@ +pkgname=mingw-w64-lpsolve +_origname=lp_solve +pkgver=5.5.2.5 +_mainver=5.5 +pkgrel=1 +pkgdesc="a Mixed Integer Linear Programming (MILP) solver (mingw-w64)" +arch=('any') +url="http://lpsolve.sourceforge.net/" +license=('LGPL2.1') +makedepends=('mingw-w64-cmake') +depends=('mingw-w64-crt') +options=('!strip' '!buildflags' 'staticlibs') +source=("http://downloads.sourceforge.net/project/lpsolve/lpsolve/${pkgver}/lp_solve_${pkgver}_source.tar.gz" + lpsolve-CMakeLists.txt) +sha1sums=('232ce8edb073c7c9b6d9100abf77038d989c45c8' + SKIP) + +_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + +prepare() { + cd ${_origname}_${_mainver} + + # https://github.com/PADrend/ThirdParty/blob/master/lpsolve-CMakeLists.txt + cp $srcdir/lpsolve-CMakeLists.txt CMakeLists.txt +} + +build() { + cd ${_origname}_${_mainver} + for _arch in ${_architectures}; do + mkdir -p build-${_arch}-static && pushd build-${_arch}-static + ${_arch}-cmake -DBUILD_SHARED_LIBS=OFF .. + make + popd + mkdir -p build-${_arch} && pushd build-${_arch} + ${_arch}-cmake .. + make + popd + done +} + +package() { + for _arch in ${_architectures}; do + cd "${srcdir}/${_origname}_${_mainver}/build-${_arch}-static" + make DESTDIR="$pkgdir" install + cd "${srcdir}/${_origname}_${_mainver}/build-${_arch}" + make DESTDIR="$pkgdir" install + ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll + ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a + done +} diff --git a/lpsolve-CMakeLists.txt b/lpsolve-CMakeLists.txt new file mode 100644 index 000000000000..41c59463a73e --- /dev/null +++ b/lpsolve-CMakeLists.txt @@ -0,0 +1,142 @@ +# +# CMakeLists.txt for "lp_solve_5.5.2.0_source.tar.gz" +# +# Copyright 2012-2013 Benjamin Eikel +# License: Public Domain +# + +cmake_minimum_required(VERSION 2.8.11) + +if (NOT DEFINED CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type") +endif () + +project(lpsolve C) + +set(LPSOLVE_VERSION_MAJOR 5) +set(LPSOLVE_VERSION_MINOR 5) +set(LPSOLVE_VERSION_PATCH 2) +set(LPSOLVE_VERSION ${LPSOLVE_VERSION_MAJOR}.${LPSOLVE_VERSION_MINOR}.${LPSOLVE_VERSION_PATCH}) + +# Set up install directories +include(GNUInstallDirs) +set(CMAKE_INSTALL_CMAKECONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/lpsolve) + +add_library(lpsolve55 + lp_MDO.c + shared/commonlib.c + shared/mmio.c + shared/myblas.c + ini.c + fortify.c + colamd/colamd.c + lp_rlp.c + lp_crash.c + bfp/bfp_LUSOL/lp_LUSOL.c + bfp/bfp_LUSOL/LUSOL/lusol.c + lp_Hash.c + lp_lib.c + lp_wlp.c + lp_matrix.c + lp_mipbb.c + lp_MPS.c + lp_params.c + lp_presolve.c + lp_price.c + lp_pricePSE.c + lp_report.c + lp_scale.c + lp_simplex.c + lp_SOS.c + lp_utils.c + yacc_read.c +) + +set_property(TARGET lpsolve55 PROPERTY PUBLIC_HEADER + lp_bit.h + lp_crash.h + lp_explicit.h + lp_fortify.h + lp_Hash.h + lp_lib.h + lp_matrix.h + lp_MDO.h + lp_mipbb.h + lp_MPS.h + lp_presolve.h + lp_price.h + lp_pricePSE.h + lp_report.h + lp_rlp.h + lp_scale.h + lp_simplex.h + lp_solveDLL.h + lp_SOS.h + lp_types.h + lp_utils.h + lp_wlp.h +) + +target_include_directories(lpsolve55 PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/shared" + "${CMAKE_CURRENT_SOURCE_DIR}/bfp" + "${CMAKE_CURRENT_SOURCE_DIR}/bfp/bfp_LUSOL" + "${CMAKE_CURRENT_SOURCE_DIR}/bfp/bfp_LUSOL/LUSOL" + "${CMAKE_CURRENT_SOURCE_DIR}/colamd" +) + +target_compile_definitions(lpsolve55 PUBLIC + YY_NEVER_INTERACTIVE + PARSER_LP + INVERSE_ACTIVE=INVERSE_LUSOL + RoleIsExternalInvEngine +) + +if(WIN32) + target_compile_definitions(lpsolve55 PUBLIC + INLINE=static + _USRDLL + WIN32 + ) +endif() + +include(CheckSymbolExists) +check_symbol_exists(isnan math.h HAVE_ISNAN) +if(NOT HAVE_ISNAN) + set_property(TARGET lpsolve55 APPEND PROPERTY COMPILE_DEFINITIONS NOISNAN) +endif() + +# Set version of library +set_target_properties(lpsolve55 PROPERTIES VERSION ${LPSOLVE_VERSION} + SOVERSION ${LPSOLVE_VERSION_MAJOR}) + +# Install the library +install(TARGETS lpsolve55 EXPORT LibraryExport + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lpsolve +) + +# Set include directories for users of this library +target_include_directories(lpsolve55 INTERFACE ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lpsolve) + +# Library export +install(EXPORT LibraryExport DESTINATION ${CMAKE_INSTALL_CMAKECONFIGDIR} FILE lpsolveTargets.cmake) + +# # Create the configuration files +# include(CMakePackageConfigHelpers) +# get_property(LPSOLVE_DEFINITIONS TARGET lpsolve55 PROPERTY COMPILE_DEFINITIONS) +# configure_package_config_file(lpsolveConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/lpsolveConfig.cmake +# INSTALL_DESTINATION ${CMAKE_INSTALL_CMAKECONFIGDIR} +# PATH_VARS CMAKE_INSTALL_CMAKECONFIGDIR +# NO_SET_AND_CHECK_MACRO +# NO_CHECK_REQUIRED_COMPONENTS_MACRO) +# write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/lpsolveConfigVersion.cmake +# VERSION ${LPSOLVE_VERSION} +# COMPATIBILITY SameMajorVersion) +# +# # Install the configuration files +# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lpsolveConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/lpsolveConfigVersion.cmake +# DESTINATION ${CMAKE_INSTALL_CMAKECONFIGDIR}) |