[lapack,coin-or-ipopt,openblas] Misc fixes, new test port (#50767)

This commit is contained in:
Kai Pastor 2026-03-31 11:56:12 +02:00 committed by GitHub
parent 44bc1b8422
commit bba8b52f6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 105 additions and 28 deletions

View File

@ -13,9 +13,9 @@ file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SO
set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"")
vcpkg_configure_make( vcpkg_make_configure(
SOURCE_PATH "${SOURCE_PATH}" SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG AUTORECONF
OPTIONS OPTIONS
#--with-pardiso #--with-pardiso
--without-spral --without-spral
@ -29,11 +29,11 @@ vcpkg_configure_make(
--disable-java --disable-java
) )
vcpkg_install_make() vcpkg_make_install()
vcpkg_copy_pdbs() vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig() vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@ -1,11 +1,16 @@
{ {
"name": "coin-or-ipopt", "name": "coin-or-ipopt",
"version-date": "2023-02-01", "version-date": "2023-02-01",
"port-version": 1,
"description": "Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization", "description": "Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization",
"homepage": "https://github.com/coin-or/Ipopt", "homepage": "https://github.com/coin-or/Ipopt",
"license": "EPL-2.0", "license": "EPL-2.0",
"dependencies": [ "dependencies": [
"coinutils", "coinutils",
"intel-mkl" "lapack",
{
"name": "vcpkg-make",
"host": true
}
] ]
} }

View File

@ -3,7 +3,7 @@ libdir=${prefix}/lib
Name: LAPACK Name: LAPACK
Description: Implementation of LAPACK Description: Implementation of LAPACK
Version: Version: 0
Requires: @requires@ Requires: @pc_requires@
Libs: @libs@ Libs: @pc_libs@
Cflags: @cflags@ Cflags: @pc_cflags@

View File

@ -1,22 +1,21 @@
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLA_STATIC)
set(BLA_STATIC ON)
else()
set(BLA_STATIC OFF)
endif()
# See explanation of which lapack implementation is chosen in portfile.cmake in the blas port # See explanation of which lapack implementation is chosen in portfile.cmake in the blas port
set(BLA_VENDOR Generic) set(BLA_VENDOR Generic)
set(installed_wrapper "${CURRENT_INSTALLED_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake") set(installed_wrapper "${CURRENT_INSTALLED_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake")
set(installed_module "${CURRENT_INSTALLED_DIR}/share/lapack/FindLAPACK.cmake") set(installed_module "${CURRENT_INSTALLED_DIR}/share/lapack/FindLAPACK.cmake")
set(pc_requires "")
set(pc_libs "")
set(pc_cflags "")
if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
# Use Apple's accelerate framework where available # Use Apple's accelerate framework where available
set(BLA_VENDOR Apple) set(BLA_VENDOR Apple)
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" @ONLY)
set(libs "-framework Accelerate") set(pc_libs "-framework Accelerate")
set(cflags "-framework Accelerate") set(pc_cflags "-framework Accelerate")
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE) if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY)
@ -25,19 +24,28 @@ if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
elseif(VCPKG_TARGET_IS_UWP elseif(VCPKG_TARGET_IS_UWP
OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm") OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_MINGW)) OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_MINGW))
# Use clapack
configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY)
configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY)
set(libs "-llapack -llibf2c") set(pc_libs "-L\${libdir} -llapack")
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
string(APPEND pc_libs " -llibf2c")
else()
string(APPEND pc_libs " -lf2c")
endif()
set(pc_requires "blas")
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE) if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY)
endif() endif()
else() else()
# Use lapack-reference
configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY)
configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY)
set(requires "lapack-reference") set(pc_requires "lapack-reference")
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE) if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY)
endif() endif()
endif() endif()
vcpkg_fixup_pkgconfig()

View File

@ -2,7 +2,7 @@
"$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!", "$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!",
"name": "lapack", "name": "lapack",
"version-date": "2023-06-10", "version-date": "2023-06-10",
"port-version": 3, "port-version": 4,
"description": "Metapackage for packages which provide LAPACK", "description": "Metapackage for packages which provide LAPACK",
"license": null, "license": null,
"supports": "!android", "supports": "!android",

View File

@ -92,9 +92,10 @@ chronoengine:arm64-linux=fail
clamav:arm64-windows=fail clamav:arm64-windows=fail
clapack:arm-neon-android=skip # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake clapack:arm-neon-android=skip # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake
clapack:arm64-android=skip clapack:arm64-android=skip
clapack:arm64-linux=skip
clapack:arm64-osx=skip clapack:arm64-osx=skip
clapack:arm64-windows-static-md=pass clapack:arm64-windows-static-md=pass
clapack:arm64-windows-static=pass clapack:arm64-windows=pass
clapack:x64-android=skip clapack:x64-android=skip
clapack:x64-linux=skip clapack:x64-linux=skip
clapack:x64-windows-release=skip clapack:x64-windows-release=skip
@ -114,8 +115,6 @@ clockutils:x64-android=fail
clrng:arm-neon-android=fail clrng:arm-neon-android=fail
cmake:arm64-linux=fail cmake:arm64-linux=fail
coin:arm64-linux=fail coin:arm64-linux=fail
coin-or-ipopt:x64-windows-static-md=fail
coin-or-ipopt:x64-windows-static=fail
coroutine:arm-neon-android=fail coroutine:arm-neon-android=fail
coroutine:arm64-android=fail coroutine:arm64-android=fail
coroutine:arm64-osx=fail coroutine:arm64-osx=fail
@ -221,6 +220,7 @@ gegl:arm64-osx=fail
gemmlowp:arm-neon-android=fail gemmlowp:arm-neon-android=fail
gemmlowp:arm64-android=fail gemmlowp:arm64-android=fail
gemmlowp:x64-android=fail gemmlowp:x64-android=fail
geogram:arm64-linux=fail
gherkin-c:arm-neon-android=fail gherkin-c:arm-neon-android=fail
gherkin-c:arm64-android=fail gherkin-c:arm64-android=fail
gherkin-c:arm64-windows-static-md=skip # Conflicts with libevent gherkin-c:arm64-windows-static-md=skip # Conflicts with libevent
@ -271,6 +271,7 @@ hwloc:x64-android=fail
iceoryx:arm-neon-android=fail iceoryx:arm-neon-android=fail
iceoryx:arm64-android=fail iceoryx:arm64-android=fail
iceoryx:x64-android=fail iceoryx:x64-android=fail
igraph:arm64-linux=fail
ijg-libjpeg:arm64-linux=skip ijg-libjpeg:arm64-linux=skip
imcce-openfa:arm64-linux=fail imcce-openfa:arm64-linux=fail
isal:x64-android=fail isal:x64-android=fail
@ -300,12 +301,17 @@ kfr:arm64-linux=fail
krb5:arm64-linux=fail krb5:arm64-linux=fail
lapack-reference:arm-neon-android=fail # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake lapack-reference:arm-neon-android=fail # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake
lapack-reference:arm64-android=fail lapack-reference:arm64-android=fail
lapack-reference:arm64-linux=pass
lapack-reference:arm64-osx=skip lapack-reference:arm64-osx=skip
lapack-reference:arm64-windows-static-md=skip lapack-reference:arm64-windows-static-md=skip
lapack-reference:arm64-windows=skip lapack-reference:arm64-windows=skip
lapack-reference:x64-android=fail lapack-reference:x64-android=fail
lapack-reference:x64-linux=pass
lapack-reference:x64-windows-release=pass
lapack-reference:x64-windows-static-md=skip lapack-reference:x64-windows-static-md=skip
lapack-reference:x64-windows-static=skip lapack-reference:x64-windows-static=skip
lapack-reference:x64-windows=pass
lapack-reference:x86-windows=pass
libaiff:arm64-linux=fail libaiff:arm64-linux=fail
libaiff:x64-linux=fail libaiff:x64-linux=fail
libcamera:arm64-linux=fail libcamera:arm64-linux=fail
@ -492,6 +498,7 @@ ntf-core:x64-windows-static-md=fail
ntf-core:x64-windows-static=fail ntf-core:x64-windows-static=fail
ntf-core:x64-windows=fail ntf-core:x64-windows=fail
ntf-core:x86-windows=fail ntf-core:x86-windows=fail
octave:arm64-linux=fail
octave:arm64-osx=fail octave:arm64-osx=fail
ogdf:arm64-linux=fail ogdf:arm64-linux=fail
ogre-next:arm-neon-android=fail # std::string issue, https://github.com/microsoft/vcpkg/pull/41293#issuecomment-2942853561 ogre-next:arm-neon-android=fail # std::string issue, https://github.com/microsoft/vcpkg/pull/41293#issuecomment-2942853561
@ -507,7 +514,6 @@ onnxruntime:x64-linux=fail
onnxruntime:x64-windows-release=fail onnxruntime:x64-windows-release=fail
onnxruntime:x64-windows=fail onnxruntime:x64-windows=fail
openal-soft:arm64-linux=fail openal-soft:arm64-linux=fail
openblas:arm64-linux=fail
openblas:x64-windows-static-md=pass openblas:x64-windows-static-md=pass
openblas:x64-windows-static=pass openblas:x64-windows-static=pass
opencc:x64-android=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected opencc:x64-android=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected
@ -670,6 +676,7 @@ tgui:x64-android=fail
tinycthread:arm-neon-android=fail tinycthread:arm-neon-android=fail
tinycthread:arm64-android=fail tinycthread:arm64-android=fail
tinycthread:x64-android=fail tinycthread:x64-android=fail
torch-th:arm64-linux=fail
torch-th:arm64-windows-static-md=fail torch-th:arm64-windows-static-md=fail
torch-th:arm64-windows=fail torch-th:arm64-windows=fail
torch-th:x64-windows-static=fail torch-th:x64-windows-static=fail
@ -784,6 +791,7 @@ vcpkg-ci-arrow:x64-windows=pass
vcpkg-ci-aurora-au:arm64-linux=pass vcpkg-ci-aurora-au:arm64-linux=pass
vcpkg-ci-aurora-au:x64-linux=pass vcpkg-ci-aurora-au:x64-linux=pass
vcpkg-ci-blas:arm64-android=pass # openblas vcpkg-ci-blas:arm64-android=pass # openblas
vcpkg-ci-blas:arm64-linux=pass # openblas
vcpkg-ci-blas:arm64-osx=pass # accelerate framework vcpkg-ci-blas:arm64-osx=pass # accelerate framework
vcpkg-ci-blas:arm64-windows-static-md=pass # openblas vcpkg-ci-blas:arm64-windows-static-md=pass # openblas
vcpkg-ci-blas:arm64-windows=pass # openblas vcpkg-ci-blas:arm64-windows=pass # openblas

View File

@ -203,7 +203,7 @@ coin[openal]:arm64-linux=feature-fails
coin-or-cbc:arm64-linux=cascade coin-or-cbc:arm64-linux=cascade
coin-or-cgl:arm64-linux=cascade coin-or-cgl:arm64-linux=cascade
coin-or-clp:arm64-linux=cascade coin-or-clp:arm64-linux=cascade
coin-or-ipopt((!windows & !linux) | !x64) = cascade coin-or-ipopt(android) = cascade
coin-or-osi:arm64-linux=cascade coin-or-osi:arm64-linux=cascade
coinutils:arm64-linux=cascade coinutils:arm64-linux=cascade
colmap:arm64-linux=cascade colmap:arm64-linux=cascade
@ -577,7 +577,6 @@ kfr[capi](windows)=feature-fails # feature emits DLL even when built static
kissfft[openmp]:arm64-osx=feature-fails # No openmp on osx kissfft[openmp]:arm64-osx=feature-fails # No openmp on osx
kissfft[tools]:arm64-linux=feature-fails kissfft[tools]:arm64-linux=feature-fails
krb5:arm64-linux=fail krb5:arm64-linux=fail
lapack:arm64-linux=cascade
lapack-reference:arm64-linux=fail lapack-reference:arm64-linux=fail
lapack-reference:arm64-windows=cascade lapack-reference:arm64-windows=cascade
lapack-reference[blas-select,cblas,noblas]=options # Cannot built feature 'cblas' together with feature 'noblas'. cblas requires blas. lapack-reference[blas-select,cblas,noblas]=options # Cannot built feature 'cblas' together with feature 'noblas'. cblas requires blas.

View File

@ -0,0 +1,19 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO coin-or/Ipopt
REF ec43e37a06054246764fb116e50e3e30c9ada089
SHA512 f5b30e81b4a1a178e9a0e2b51b4832f07441b2c3e9a2aa61a6f07807f94185998e985fcf3c34d96fbfde78f07b69f2e0a0675e1e478a4e668da6da60521e0fd6
HEAD_REF master
)
vcpkg_find_acquire_program(PKGCONFIG)
set(ENV{PKG_CONFIG} "${PKGCONFIG}")
vcpkg_cmake_configure(
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
OPTIONS
"-DIPOPT_PATH=${SOURCE_PATH}"
)
vcpkg_cmake_build()

View File

@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.30)
project(ipopt-test)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PC_ipopt ipopt IMPORTED_TARGET REQUIRED)
add_executable(simple-pkgconfig
"${IPOPT_PATH}/examples/Cpp_example/cpp_example.cpp"
"${IPOPT_PATH}/examples/Cpp_example/MyNLP.cpp"
)
target_link_libraries(simple-pkgconfig PRIVATE PkgConfig::PC_ipopt)

View File

@ -0,0 +1,17 @@
{
"name": "vcpkg-ci-coin-or-ipopt",
"version-string": "ci",
"description": "Validation port",
"homepage": "https://github.com/microsoft/vcpkg",
"license": "MIT",
"dependencies": [
{
"name": "coin-or-ipopt",
"default-features": false
},
{
"name": "vcpkg-cmake",
"host": true
}
]
}

View File

@ -22,7 +22,7 @@
"features": [ "features": [
"dynamic-arch" "dynamic-arch"
], ],
"platform": "linux" "platform": "linux & !arm"
}, },
{ {
"name": "openblas", "name": "openblas",

View File

@ -1902,7 +1902,7 @@
}, },
"coin-or-ipopt": { "coin-or-ipopt": {
"baseline": "2023-02-01", "baseline": "2023-02-01",
"port-version": 0 "port-version": 1
}, },
"coin-or-osi": { "coin-or-osi": {
"baseline": "2024-04-16", "baseline": "2024-04-16",
@ -4546,7 +4546,7 @@
}, },
"lapack": { "lapack": {
"baseline": "2023-06-10", "baseline": "2023-06-10",
"port-version": 3 "port-version": 4
}, },
"lapack-reference": { "lapack-reference": {
"baseline": "3.12.1", "baseline": "3.12.1",

View File

@ -1,5 +1,10 @@
{ {
"versions": [ "versions": [
{
"git-tree": "cab6a5d031125dbefcd3bd335c661469d61c760f",
"version-date": "2023-02-01",
"port-version": 1
},
{ {
"git-tree": "8f3393d37ff448cd73bb3bdf00b812a0a38e2a9c", "git-tree": "8f3393d37ff448cd73bb3bdf00b812a0a38e2a9c",
"version-date": "2023-02-01", "version-date": "2023-02-01",

View File

@ -1,5 +1,10 @@
{ {
"versions": [ "versions": [
{
"git-tree": "be339b1d1e93fff43b1c2517794dc185819a27fc",
"version-date": "2023-06-10",
"port-version": 4
},
{ {
"git-tree": "12ac83a3627b42dd68a96751ec39051b89761656", "git-tree": "12ac83a3627b42dd68a96751ec39051b89761656",
"version-date": "2023-06-10", "version-date": "2023-06-10",