aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lapack
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lapack
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/lapack')
-rw-r--r--vcpkg/ports/lapack/lapack.pc.in9
-rw-r--r--vcpkg/ports/lapack/portfile.cmake43
-rw-r--r--vcpkg/ports/lapack/vcpkg-cmake-wrapper.cmake.in15
-rw-r--r--vcpkg/ports/lapack/vcpkg.json23
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
+ }
+ ]
+}