diff --git a/math/hpipm/Makefile b/math/hpipm/Makefile index c9d6b2a086ce..e4d7c5f14d9a 100644 --- a/math/hpipm/Makefile +++ b/math/hpipm/Makefile @@ -1,29 +1,40 @@ PORTNAME= hpipm -DISTVERSION= 0.1.3-119 -PORTREVISION= 1 -DISTVERSIONSUFFIX= -gb140f36 +DISTVERSION= 0.1.3-225 # new release is promised here: https://github.com/giaf/hpipm/issues/170 +DISTVERSIONSUFFIX= -g79008aa CATEGORIES= math MAINTAINER= yuri@FreeBSD.org COMMENT= High-performance interior-point-method QP solvers WWW= https://github.com/giaf/hpipm LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE.txt LIB_DEPENDS= libblasfeo.so:math/blasfeo -USES= cmake localbase +USES= cmake:testing localbase USE_GITHUB= yes GH_ACCOUNT= giaf CMAKE_ON= BUILD_SHARED_LIBS -CMAKE_ARGS= -DHPIPM_BLASFEO_LIB=Shared +CMAKE_OFF= HPIPM_TESTING +CMAKE_ARGS= -DHPIPM_BLASFEO_LIB=Shared \ + -DTARGET=GENERIC +CMAKE_TESTING_ON= HPIPM_TESTING +CMAKE_TESTING_TARGET= .include .if ${ARCH} != amd64 && ${ARCH} != i386 CMAKE_ARGS+= -DAVX:BOOL=OFF .endif +post-test: # run tests +.for t in d_cond d_dense_qp d_ocp_qp d_part_cond d_tree_ocp_qp + @${ECHO} "==> Running test ${t}" + @cd ${TEST_WRKSRC} && test_problems/${t} +.endfor + +# testcase test_problems/d_dense_qp crashes, see https://github.com/giaf/hpipm/issues/175 + .include diff --git a/math/hpipm/distinfo b/math/hpipm/distinfo index 1a63a2bcb352..76cd09a87cb5 100644 --- a/math/hpipm/distinfo +++ b/math/hpipm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1654881826 -SHA256 (giaf-hpipm-0.1.3-119-gb140f36_GH0.tar.gz) = 3d949267f14738ff78298ac97b1a30d8e3edd98c765446e306dc9669afd432ed -SIZE (giaf-hpipm-0.1.3-119-gb140f36_GH0.tar.gz) = 1707299 +TIMESTAMP = 1736715847 +SHA256 (giaf-hpipm-0.1.3-225-g79008aa_GH0.tar.gz) = c374fceada91396f913eb1d787e1ffeec4c69375ca130d2dbdbef1ae4256ccc9 +SIZE (giaf-hpipm-0.1.3-225-g79008aa_GH0.tar.gz) = 1745545 diff --git a/math/hpipm/files/patch-CMakeLists.txt b/math/hpipm/files/patch-CMakeLists.txt index 3f86ec49de06..8ba6f908c9db 100644 --- a/math/hpipm/files/patch-CMakeLists.txt +++ b/math/hpipm/files/patch-CMakeLists.txt @@ -1,56 +1,56 @@ ---- CMakeLists.txt.orig 2022-06-01 15:00:13 UTC +--- CMakeLists.txt.orig 2024-12-12 09:17:49 UTC +++ CMakeLists.txt -@@ -36,7 +36,7 @@ +@@ -36,7 +36,7 @@ cmake_minimum_required(VERSION 2.8.11) cmake_minimum_required(VERSION 2.8.11) # installation directory ( has to be before `project()` ) -set(CMAKE_INSTALL_PREFIX "/opt/hpipm" CACHE STRING "Installation path") +#set(CMAKE_INSTALL_PREFIX "/opt/hpipm" CACHE STRING "Installation path") project(hpipm C) -@@ -92,7 +92,7 @@ endif() - - # BLASFEO Option +@@ -105,7 +105,7 @@ if(NOT TARGET blasfeo) + # BLASFEO option if(NOT TARGET blasfeo) + # manually set BLASFEO installation path - set(BLASFEO_PATH "/opt/blasfeo" CACHE STRING "BLASFEO installation path") + set(BLASFEO_PATH ${CMAKE_INSTALL_PREFIX} CACHE STRING "BLASFEO installation path") + # match BLASFEO library type with HPIPM library type if(BUILD_SHARED_LIBS MATCHES OFF) set(HPIPM_BLASFEO_LIB "Static" CACHE STRING "BLASFEO library link type") - else() -@@ -140,7 +140,7 @@ endif() +@@ -154,7 +154,7 @@ if(${TARGET} MATCHES AVX) if(${TARGET} MATCHES AVX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTARGET_AVX") if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64 -mavx") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx") endif() elseif(${TARGET} MATCHES GENERIC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTARGET_GENERIC") -@@ -151,7 +151,7 @@ if(${REF_BLAS} MATCHES 0) +@@ -165,7 +165,7 @@ if(${REF_BLAS} MATCHES OPENBLAS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ") endif(${REF_BLAS} MATCHES 0) if(${REF_BLAS} MATCHES OPENBLAS) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_OPENBLAS -I/opt/openblas/include") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_OPENBLAS") endif(${REF_BLAS} MATCHES OPENBLAS) if(${REF_BLAS} MATCHES BLIS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_BLIS -std=c99") -@@ -160,7 +160,7 @@ if(${REF_BLAS} MATCHES NETLIB) +@@ -174,7 +174,7 @@ if(${REF_BLAS} MATCHES MKL) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_NETLIB") endif(${REF_BLAS} MATCHES NETLIB) if(${REF_BLAS} MATCHES MKL) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_MKL -m64 -I/opt/intel/mkl/include") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_MKL") endif(${REF_BLAS} MATCHES MKL) if(${REF_BLAS} MATCHES ATLAS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DREF_BLAS_ATLAS") -@@ -343,7 +343,7 @@ install(TARGETS hpipm EXPORT hpipmConfig +@@ -357,7 +357,7 @@ install(TARGETS hpipm EXPORT hpipmConfig ARCHIVE DESTINATION lib RUNTIME DESTINATION bin) -install(EXPORT hpipmConfig DESTINATION cmake) +install(EXPORT hpipmConfig DESTINATION lib/cmake) file(GLOB_RECURSE HPIPM_HEADERS "include/*.h") install(FILES ${HPIPM_HEADERS} DESTINATION ${HPIPM_HEADERS_INSTALLATION_DIRECTORY}) diff --git a/math/hpipm/pkg-plist b/math/hpipm/pkg-plist index 73e83b104c9b..1d0a89507ca6 100644 --- a/math/hpipm/pkg-plist +++ b/math/hpipm/pkg-plist @@ -1,116 +1,117 @@ include/hpipm_aux_mem.h include/hpipm_aux_string.h include/hpipm_common.h include/hpipm_d_cast_qcqp.h include/hpipm_d_cond.h include/hpipm_d_cond_aux.h include/hpipm_d_cond_qcqp.h include/hpipm_d_core_qp_ipm.h include/hpipm_d_core_qp_ipm_aux.h include/hpipm_d_dense_qcqp.h include/hpipm_d_dense_qcqp_dim.h include/hpipm_d_dense_qcqp_ipm.h include/hpipm_d_dense_qcqp_res.h include/hpipm_d_dense_qcqp_sol.h include/hpipm_d_dense_qcqp_utils.h include/hpipm_d_dense_qp.h include/hpipm_d_dense_qp_dim.h include/hpipm_d_dense_qp_ipm.h include/hpipm_d_dense_qp_kkt.h include/hpipm_d_dense_qp_res.h include/hpipm_d_dense_qp_sol.h include/hpipm_d_dense_qp_utils.h include/hpipm_d_ocp_qcqp.h include/hpipm_d_ocp_qcqp_dim.h include/hpipm_d_ocp_qcqp_ipm.h include/hpipm_d_ocp_qcqp_red.h include/hpipm_d_ocp_qcqp_res.h include/hpipm_d_ocp_qcqp_sol.h include/hpipm_d_ocp_qcqp_utils.h include/hpipm_d_ocp_qp.h include/hpipm_d_ocp_qp_dim.h include/hpipm_d_ocp_qp_ipm.h include/hpipm_d_ocp_qp_kkt.h include/hpipm_d_ocp_qp_red.h include/hpipm_d_ocp_qp_res.h include/hpipm_d_ocp_qp_sol.h +include/hpipm_d_ocp_qp_solver.h include/hpipm_d_ocp_qp_utils.h include/hpipm_d_part_cond.h include/hpipm_d_part_cond_qcqp.h include/hpipm_d_sim_erk.h include/hpipm_d_sim_rk.h include/hpipm_d_tree_ocp_qcqp.h include/hpipm_d_tree_ocp_qcqp_dim.h include/hpipm_d_tree_ocp_qcqp_ipm.h include/hpipm_d_tree_ocp_qcqp_res.h include/hpipm_d_tree_ocp_qcqp_sol.h include/hpipm_d_tree_ocp_qcqp_utils.h include/hpipm_d_tree_ocp_qp.h include/hpipm_d_tree_ocp_qp_dim.h include/hpipm_d_tree_ocp_qp_ipm.h include/hpipm_d_tree_ocp_qp_kkt.h include/hpipm_d_tree_ocp_qp_res.h include/hpipm_d_tree_ocp_qp_sol.h include/hpipm_d_tree_ocp_qp_utils.h include/hpipm_m_dense_qp.h include/hpipm_m_dense_qp_dim.h include/hpipm_m_ocp_qp.h include/hpipm_m_ocp_qp_ipm_hard.h include/hpipm_m_ocp_qp_kkt.h include/hpipm_s_cast_qcqp.h include/hpipm_s_cond.h include/hpipm_s_cond_aux.h include/hpipm_s_cond_qcqp.h include/hpipm_s_core_qp_ipm.h include/hpipm_s_core_qp_ipm_aux.h include/hpipm_s_dense_qcqp.h include/hpipm_s_dense_qcqp_dim.h include/hpipm_s_dense_qcqp_ipm.h include/hpipm_s_dense_qcqp_res.h include/hpipm_s_dense_qcqp_sol.h include/hpipm_s_dense_qcqp_utils.h include/hpipm_s_dense_qp.h include/hpipm_s_dense_qp_dim.h include/hpipm_s_dense_qp_ipm.h include/hpipm_s_dense_qp_kkt.h include/hpipm_s_dense_qp_res.h include/hpipm_s_dense_qp_sol.h include/hpipm_s_dense_qp_utils.h include/hpipm_s_ocp_qcqp.h include/hpipm_s_ocp_qcqp_dim.h include/hpipm_s_ocp_qcqp_ipm.h include/hpipm_s_ocp_qcqp_red.h include/hpipm_s_ocp_qcqp_res.h include/hpipm_s_ocp_qcqp_sol.h include/hpipm_s_ocp_qcqp_utils.h include/hpipm_s_ocp_qp.h include/hpipm_s_ocp_qp_dim.h include/hpipm_s_ocp_qp_ipm.h include/hpipm_s_ocp_qp_kkt.h include/hpipm_s_ocp_qp_red.h include/hpipm_s_ocp_qp_res.h include/hpipm_s_ocp_qp_sol.h include/hpipm_s_ocp_qp_utils.h include/hpipm_s_part_cond.h include/hpipm_s_part_cond_qcqp.h include/hpipm_s_sim_erk.h include/hpipm_s_sim_rk.h include/hpipm_s_tree_ocp_qcqp.h include/hpipm_s_tree_ocp_qcqp_dim.h include/hpipm_s_tree_ocp_qcqp_ipm.h include/hpipm_s_tree_ocp_qcqp_res.h include/hpipm_s_tree_ocp_qcqp_sol.h include/hpipm_s_tree_ocp_qcqp_utils.h include/hpipm_s_tree_ocp_qp.h include/hpipm_s_tree_ocp_qp_dim.h include/hpipm_s_tree_ocp_qp_ipm.h include/hpipm_s_tree_ocp_qp_kkt.h include/hpipm_s_tree_ocp_qp_res.h include/hpipm_s_tree_ocp_qp_sol.h include/hpipm_s_tree_ocp_qp_utils.h include/hpipm_scenario_tree.h include/hpipm_timing.h include/hpipm_tree.h lib/cmake/hpipmConfig-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/hpipmConfig.cmake lib/libhpipm.so