Files
2025-11-12 22:55:08 -05:00

113 lines
3.8 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup python 1.0
PortGroup linear_algebra 1.0
linalg.setup noveclibfort
name py-cvxopt
python.rootname cvxopt
version 1.3.2
revision 3
categories-append math
license GPL-3+
maintainers {gmail.com:jjstickel @jjstickel} openmaintainer
description Python module for convex optimization
long_description CVXOPT is a free software package for convex \
optimization based on the Python programming \
language. It can be used with the interactive \
Python interpreter, on the command line by \
executing Python scripts, or integrated in other \
software via Python extension modules. Its main \
purpose is to make the development of software for \
convex optimization applications straightforward \
by building on Python's extensive standard library \
and on the strengths of Python as a high-level \
programming language.
homepage https://cvxopt.org/
checksums rmd160 e181f9ef9224136835a34f6142c9974335d95ebf \
sha256 3461fa42c1b2240ba4da1d985ca73503914157fc4c77417327ed6d7d85acdbe6 \
size 4108454
python.versions 310 311 312 313
if {${subport} ne ${name}} {
# ignore empty BLAS and LAPACK inputs
patchfiles patch-setup.py.diff
build.env-append \
CVXOPT_BLAS_LIB_DIR=${prefix}/lib \
CVXOPT_LAPACK_LIB=
pre-build {
set blas_lib {}
set blas_extra_link_args {}
foreach lib [split ${linalglib} " "] {
if { [lrange ${lib} 0 1] eq "-l" } {
lappend blas_lib [lrange ${lib} end]
} else {
lappend blas_extra_link_args ${lib}
}
}
build.env-append \
CVXOPT_BLAS_LIB=[join ${blas_lib} ";"] \
CVXOPT_BLAS_EXTRA_LINK_ARGS=[join ${blas_extra_link_args} ";"]
}
variant gsl description {Build GSL module} {
depends_lib-append port:gsl
build.env-append \
CVXOPT_BUILD_GSL=1 \
CVXOPT_GSL_LIB_DIR=${prefix}/lib \
CVXOPT_GSL_INC_DIR=${prefix}/include
}
variant fftw description {Build FFTW module} {
depends_lib-append port:fftw-3
build.env-append \
CVXOPT_BUILD_FFTW=1 \
CVXOPT_FFTW_LIB_DIR=${prefix}/lib \
CVXOPT_FFTW_INC_DIR=${prefix}/include
}
variant glpk description {Build GLPK module} {
depends_lib-append port:glpk
build.env-append \
CVXOPT_BUILD_GLPK=1 \
CVXOPT_GLPK_LIB_DIR=${prefix}/lib \
CVXOPT_GLPK_INC_DIR=${prefix}/include
}
variant dsdp description {Build DSDP module} {
depends_lib-append port:DSDP
build.env-append \
CVXOPT_BUILD_DSDP=1 \
CVXOPT_DSDP_LIB_DIR=${prefix}/lib \
CVXOPT_DSDP_INC_DIR=${prefix}/include
}
depends_build-append port:py${python.version}-setuptools_scm
# link against MacPorts SuiteSparse
depends_lib-append port:SuiteSparse_config \
port:SuiteSparse_AMD \
port:SuiteSparse_COLAMD \
port:SuiteSparse_CHOLMOD \
port:SuiteSparse_UMFPACK
build.env-append \
CVXOPT_SUITESPARSE_SRC_DIR= \
CVXOPT_SUITESPARSE_LIB_DIR=${prefix}/lib \
CVXOPT_SUITESPARSE_INC_DIR=${prefix}/include
default_variants +gsl +glpk +fftw +dsdp
}