diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lapack | |
Diffstat (limited to 'vcpkg/ports/lapack')
| -rw-r--r-- | vcpkg/ports/lapack/lapack.pc.in | 9 | ||||
| -rw-r--r-- | vcpkg/ports/lapack/portfile.cmake | 43 | ||||
| -rw-r--r-- | vcpkg/ports/lapack/vcpkg-cmake-wrapper.cmake.in | 15 | ||||
| -rw-r--r-- | vcpkg/ports/lapack/vcpkg.json | 23 |
4 files changed, 90 insertions, 0 deletions
diff --git a/vcpkg/ports/lapack/lapack.pc.in b/vcpkg/ports/lapack/lapack.pc.in new file mode 100644 index 0000000..0551230 --- /dev/null +++ b/vcpkg/ports/lapack/lapack.pc.in @@ -0,0 +1,9 @@ +prefix=${pcfiledir}/../.. +libdir=${prefix}/lib + +Name: LAPACK +Description: Implementation of LAPACK +Version: +Requires: @requires@ +Libs: @libs@ +Cflags: @cflags@ diff --git a/vcpkg/ports/lapack/portfile.cmake b/vcpkg/ports/lapack/portfile.cmake new file mode 100644 index 0000000..67fbc67 --- /dev/null +++ b/vcpkg/ports/lapack/portfile.cmake @@ -0,0 +1,43 @@ +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "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 + +set(BLA_VENDOR Generic) +set(installed_wrapper "${CURRENT_INSTALLED_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake") +set(installed_module "${CURRENT_INSTALLED_DIR}/share/lapack/FindLAPACK.cmake") +if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) + # Use Apple's accelerate framework where available + 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) + set(libs "-framework Accelerate") + set(cflags "-framework Accelerate") + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) + if(NOT VCPKG_BUILD_TYPE) + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) + endif() + unset(installed_module) +elseif(VCPKG_TARGET_IS_UWP + 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)) + 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) + set(libs "-llapack -llibf2c") + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) + if(NOT VCPKG_BUILD_TYPE) + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) + endif() +else() + 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) + set(requires "lapack-reference") + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) + if(NOT VCPKG_BUILD_TYPE) + configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) + endif() +endif() diff --git a/vcpkg/ports/lapack/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/lapack/vcpkg-cmake-wrapper.cmake.in new file mode 100644 index 0000000..64d7d98 --- /dev/null +++ b/vcpkg/ports/lapack/vcpkg-cmake-wrapper.cmake.in @@ -0,0 +1,15 @@ +# BLA_VENDOR and BLA_STATIC are documented at: +# * https://cmake.org/cmake/help/latest/module/FindBLAS.html +# * https://cmake.org/cmake/help/latest/module/FindLAPACK.html + +_find_package(BLAS) # Find BLAS before setting BLA_VENDOR (Will set/unset BLA_VENDOR itself) +set(BLA_VENDOR @BLA_VENDOR@) +if(APPLE AND "@BLA_STATIC@" AND CMAKE_VERSION VERSION_LESS "3.17.0") + # avoid `-Wl,--(start|end)-group` and wrong lib suffix + set(BLA_STATIC 0) +else() + set(BLA_STATIC @BLA_STATIC@) +endif() +_find_package(${ARGS}) +unset(BLA_VENDOR) +unset(BLA_STATIC) diff --git a/vcpkg/ports/lapack/vcpkg.json b/vcpkg/ports/lapack/vcpkg.json new file mode 100644 index 0000000..beeaff2 --- /dev/null +++ b/vcpkg/ports/lapack/vcpkg.json @@ -0,0 +1,23 @@ +{ + "$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!", + "name": "lapack", + "version-date": "2023-06-10", + "port-version": 3, + "description": "Metapackage for packages which provide LAPACK", + "license": null, + "supports": "!android", + "dependencies": [ + { + "name": "clapack", + "platform": "!osx & !ios & (uwp | (arm & windows) | (static & windows & !mingw))" + }, + { + "name": "lapack-reference", + "platform": "!osx & !ios & (!uwp & !(arm & windows) & !(static & windows & !mingw))" + }, + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |