summaryrefslogtreecommitdiff
path: root/math/nlopt
diff options
context:
space:
mode:
Diffstat (limited to 'math/nlopt')
-rw-r--r--math/nlopt/Makefile8
-rw-r--r--math/nlopt/files/patch-CMakeLists.txt11
-rw-r--r--math/nlopt/files/patch-CMakePresets.json11
-rw-r--r--math/nlopt/pkg-plist.full48
4 files changed, 75 insertions, 3 deletions
diff --git a/math/nlopt/Makefile b/math/nlopt/Makefile
index 283559daa8db..dd4dc557a783 100644
--- a/math/nlopt/Makefile
+++ b/math/nlopt/Makefile
@@ -1,6 +1,7 @@
PORTNAME= nlopt
DISTVERSIONPREFIX= v
DISTVERSION= 2.10.0
+PORTREVISION= 1
CATEGORIES= math
MAINTAINER= rhurlin@FreeBSD.org
@@ -20,6 +21,7 @@ FLAVOR?= ${FLAVORS:[1]}
full_BUILD_DEPENDS= ${PYNUMPY} \
swig:devel/swig
+full_LIB_DEPENDS= liboctave.so:math/octave
full_RUN_DEPENDS= ${PYNUMPY}
full_CONFLICTS_INSTALL= ${PORTNAME}-minimal
minimal_PKGNAMESUFFIX= -minimal
@@ -34,16 +36,18 @@ USE_LDCONFIG= yes
CMAKE_TESTING_ON= NLOPT_TESTS
.if ${FLAVOR} == full
-USES+= guile:3.0,alias localbase pkgconfig python
+USES+= guile:3.0,alias localbase octave:env pkgconfig python
# Because guile-config-3.0 crashes, nlopt avoids this by using
# files/patch-cmake_FindGuile.cmake and setting GUILE_EXECUTABLE
# and GUILE_CONFIG_EXECUTABLE
MAKE_ENV+= GUILE_EXECUTABLE=${PREFIX}/bin/guile-3.0 \
GUILE_CONFIG_EXECUTABLE=${PREFIX}/bin/guile-config-3.0
CMAKE_OFF= NLOPT_JAVA
+GNU_HOST= ${ARCH}-portbld-freebsd${OSREL}
PLIST= ${PKGDIR}/pkg-plist.${FLAVOR}
+PLIST_SUB= GNU_HOST=${GNU_HOST} OCTAVE_VERSION=${OCTAVE_VERSION}
.elif ${FLAVOR} == minimal
-CMAKE_OFF= NLOPT_GUILE NLOPT_JAVA NLOPT_PYTHON NLOPT_SWIG
+CMAKE_OFF= NLOPT_GUILE NLOPT_JAVA NLOPT_OCTAVE NLOPT_PYTHON NLOPT_SWIG
.endif
.include <bsd.port.mk>
diff --git a/math/nlopt/files/patch-CMakeLists.txt b/math/nlopt/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..4cc24139004e
--- /dev/null
+++ b/math/nlopt/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig 2025-02-04 18:29:30 UTC
++++ CMakeLists.txt
+@@ -147,7 +147,7 @@ if (NLOPT_CXX OR NLOPT_PYTHON OR NLOPT_GUILE OR NLOPT_
+ if (NLOPT_CXX OR NLOPT_PYTHON OR NLOPT_GUILE OR NLOPT_OCTAVE OR NLOPT_JAVA)
+ check_cxx_symbol_exists (__cplusplus ciso646 SYSTEM_HAS_CXX)
+ if (SYSTEM_HAS_CXX)
+- set (CMAKE_CXX_STANDARD 11) # set the standard to C++11 but do not require it
++ set (CMAKE_CXX_STANDARD 17) # set the standard to C++17 but do not require it
+
+ if (NLOPT_CXX)
+ set (CMAKE_CXX_STANDARD_REQUIRED ON) # if we build C++ API, we do need C++11
diff --git a/math/nlopt/files/patch-CMakePresets.json b/math/nlopt/files/patch-CMakePresets.json
new file mode 100644
index 000000000000..e557968bc963
--- /dev/null
+++ b/math/nlopt/files/patch-CMakePresets.json
@@ -0,0 +1,11 @@
+--- CMakePresets.json.orig 2025-02-04 18:29:30 UTC
++++ CMakePresets.json
+@@ -8,7 +8,7 @@
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "RelWithDebInfo",
+ "CMAKE_C_FLAGS": "-Wall -Wextra -Wpedantic -Wshadow",
+- "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -Wshadow -D_GLIBCXX_ASSERTIONS -fno-inline",
++ "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -Wshadow -D_GLIBCXX_ASSERTIONS -fno-inline -std=c++17",
+ "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/install",
+ "SWIG_COMPILE_FLAGS": "-O1 -Wno-unused-parameter -Wno-shadow"
+ }
diff --git a/math/nlopt/pkg-plist.full b/math/nlopt/pkg-plist.full
index 3a3a6db63e96..971a564dd944 100644
--- a/math/nlopt/pkg-plist.full
+++ b/math/nlopt/pkg-plist.full
@@ -1,4 +1,3 @@
-%%GUILE_SITE%%/nlopt.scm
include/nlopt.h
include/nlopt.hpp
lib/cmake/nlopt/NLoptConfig.cmake
@@ -9,10 +8,57 @@ lib/guile/%%GUILE_VER%%/extensions/nlopt_guile.so
lib/libnlopt.so
lib/libnlopt.so.1
lib/libnlopt.so.1.0.0
+lib/octave/%%OCTAVE_VERSION%%/site/oct/%%GNU_HOST%%/nlopt_optimize.oct
%%PYTHON_SITELIBDIR%%/_nlopt.so
%%PYTHON_SITELIBDIR%%/nlopt-2.10.0.dist-info/METADATA
%%PYTHON_SITELIBDIR%%/nlopt.py
libdata/pkgconfig/nlopt.pc
+%%GUILE_SITE%%/nlopt.scm
share/man/man3/nlopt.3.gz
share/man/man3/nlopt_minimize.3.gz
share/man/man3/nlopt_minimize_constrained.3.gz
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_AUGLAG.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_AUGLAG_EQ.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GD_MLSL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GD_MLSL_LDS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GD_STOGO.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GD_STOGO_RAND.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_AGS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_CRS2_LM.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT_L.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT_L_NOSCAL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT_L_RAND.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT_L_RAND_NOSCAL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_DIRECT_NOSCAL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_ESCH.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_ISRES.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_MLSL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_MLSL_LDS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_ORIG_DIRECT.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_GN_ORIG_DIRECT_L.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_G_MLSL.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_G_MLSL_LDS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_AUGLAG.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_AUGLAG_EQ.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_CCSAQ.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_LBFGS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_MMA.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_SLSQP.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_TNEWTON.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_TNEWTON_PRECOND.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_TNEWTON_PRECOND_RESTART.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_TNEWTON_RESTART.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_VAR1.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LD_VAR2.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_AUGLAG.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_AUGLAG_EQ.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_BOBYQA.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_COBYLA.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_NELDERMEAD.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_NEWUOA.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_NEWUOA_BOUND.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_PRAXIS.m
+share/octave/%%OCTAVE_VERSION%%/site/m/NLOPT_LN_SBPLX.m
+share/octave/%%OCTAVE_VERSION%%/site/m/nlopt_minimize.m
+share/octave/%%OCTAVE_VERSION%%/site/m/nlopt_minimize_constrained.m