aboutsummaryrefslogtreecommitdiff
path: root/ports/clapack
diff options
context:
space:
mode:
authorStefano Sinigardi <stesinigardi@hotmail.com>2019-06-21 04:11:54 +0200
committerCurtis J Bezault <curtbezault@gmail.com>2019-06-20 19:11:54 -0700
commit47d206e149e88201333b5ca8fe55c30e2b1a8177 (patch)
treec0620a39116333a6cb6ffc092983ba7114c6daf2 /ports/clapack
parente16efa4d6aa6f36247eb6dfd646fdf81af0c36e0 (diff)
downloadvcpkg-47d206e149e88201333b5ca8fe55c30e2b1a8177.tar.gz
vcpkg-47d206e149e88201333b5ca8fe55c30e2b1a8177.zip
[many ports] improvements for linux/wsl (#6730)
* [many ports] improve compatibility with WSL and mixed case filesystems * [treehopper] express dependency on libusb, which was not working on non-win32 platforms and is still broken there * [libharu] add compatibility with non-win32 platforms * [geogram] fix openblas on linux [clapack] better integration with linux environment [visit-struct] put cmake config file in the expected folder [geogram] remove trailing underscore to enable compatibility with OpenBLAS * [openblas] playing with underscore, without success * [openblas/lapack] fix library integration * [clapack] improve target handling in cmake module * [openblas] promote self-generated config to default cmake module, otherwise internal ones thinks wrongly that openblas can also solve lapack libs * [clapack,openblas] improve libraries integration * [many ports] fix cmake unnecessary target paths, wrong config paths, empty default dependencies, unnecessary [core] tags * [suitesparse] improve integration with new lapack/openblas mechanism * [suitesparse] add no underscore postfix also for linux * [ceres] fix integration with newer openblas/lapack configs * [aws-c-event-stream] fix regression * [systemc] fix regression * [libwebp,geogram] trigger rebuild * [libwebp,pthread4w] fix regressions * [glbinding] fix cmake module installation * [globjects] disentangle unnecessary dependency from qt5 * [jasper] remove broken and unnecessary patches * [libwebp] fix regression * [many ports] avoid using BUILD_SHARED_LIBS which is uninitialized in port files * [clapack] correctly find dlls * [clapack] use a generic blas as dependency * [fizz,g2o] restore expected version * fix mistake * [many ports] remove WIN32, APPLE and UNIX (again, they keep creeping in) from ports since they are broken and usually break non-win32 ports * [libressl,openssl] do not try to build one if the other is already installed * [itk] update ref and patch to avoid regression * [libressl,openssl] implement full strategy to fix CI * [libwebp] disable components that are broken on macOS * [ogre] enable macOS build * [freeimage,jxrlib,ogre,openexr,protobuf] port patches from #5169 * [ogre] add missing install command * [ffmpeg] enable wrapper for cmake module * [ffmpeg] add avresample module finder * [ffmpeg] improve module detection and exported symbols * [ffmpeg] add variables to cache * [thrift] remove unnecessary build option * [allegro5] fix shared/static inversion * [protobuf] cleanup * [libressl] cleanup * [moos-core] cleanup * commented features must not be separated from other features, otherwise vcpkg complains * [itk] fix regression * [shogun,itk] fix regressions * [ogre] fix regression * [opusfile] add compatibility with non-win32 * [itk] fix regression * [sndfile,libsndfile] remove duplicate, redirect sndfile to libsndfile * add missing dependencies * [ismrmrd] fix regression * [ffmpeg] trigger rebuild * [clapack,openblas,libogg] fix regressions on macOS * [libtins] fix regression * force rebuild windows regressions, unable to reproduce locally * [mosquitto] enable non-win32 builds * [json-dto] force rebuild, unable to reproduce regression locally * [many ports] uniform naming and path length requests * fix regression * fix regression * [ffmpeg] fixes for downstream projects * clean up - thanks to reviewers * trigger rebuild of regressions on macOS * trigger rebuild of regressions on macOS - part2 * Add core back * Use VCPKG_CONCURRENCY * Add core back to suitesparse * Add core back to curl * Add core back to magnum * Add core back to magnum * Add core back to magnum * Add core back to cgal
Diffstat (limited to 'ports/clapack')
-rw-r--r--ports/clapack/CONTROL2
-rw-r--r--ports/clapack/FindLAPACK.cmake199
-rw-r--r--ports/clapack/enable_openblas_compat.patch112
-rw-r--r--ports/clapack/openblas_linux.patch12
-rw-r--r--ports/clapack/portfile.cmake10
-rw-r--r--ports/clapack/remove_internal_blas.patch13
-rw-r--r--ports/clapack/vcpkg-cmake-wrapper.cmake6
7 files changed, 248 insertions, 106 deletions
diff --git a/ports/clapack/CONTROL b/ports/clapack/CONTROL
index 75755fe21..2b5d137fc 100644
--- a/ports/clapack/CONTROL
+++ b/ports/clapack/CONTROL
@@ -1,5 +1,5 @@
Source: clapack
-Version: 3.2.1-6
+Version: 3.2.1-9
Homepage: https://www.netlib.org/clapack
Description: CLAPACK (f2c'ed version of LAPACK)
Build-Depends: openblas (!osx)
diff --git a/ports/clapack/FindLAPACK.cmake b/ports/clapack/FindLAPACK.cmake
index dfbf2c73e..002218eb8 100644
--- a/ports/clapack/FindLAPACK.cmake
+++ b/ports/clapack/FindLAPACK.cmake
@@ -66,38 +66,61 @@
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
set(CLAPACK_VERSION "3.2.1")
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+find_dependency(Threads)
+
if(UNIX)
find_library(ADDITIONAL_LAPACK_LIBRARY m)
+ set(PTHREAD_LINK_NAME "-pthread")
endif()
if(NOT F2C_LIBRARY)
- find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
- find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
- list(APPEND F2C_LIBRARY_RELEASE ${ADDITIONAL_LAPACK_LIBRARY})
- list(APPEND F2C_LIBRARY_DEBUG ${ADDITIONAL_LAPACK_LIBRARY})
- select_library_configurations(F2C)
-endif()
+ find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
+ find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
+ select_library_configurations(F2C)
-find_package(BLAS)
+ #keep a list of "pure" f2c libs, without dependencies
+ set(oF2C_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
+ set(oF2C_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
+ set(oF2C_LIBRARY ${F2C_LIBRARY})
-if(NOT LAPACK_LIBRARY)
- find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
- find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)
- list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
- list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
- select_library_configurations(LAPACK)
+ list(APPEND F2C_LIBRARY ${ADDITIONAL_LAPACK_LIBRARY})
endif()
-list(APPEND LAPACK_LIBRARY ${BLAS_LIBRARIES})
+if(NOT LAPACK_LIBRARY)
+ find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
+ find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)
-set(F2C_LIBRARIES "${F2C_LIBRARY}" CACHE STRING "" FORCE)
-set(LAPACK_VERSION "${CLAPACK_VERSION}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(CLAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(CLAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+ #keep a list of "pure" lapack libs, without dependencies
+ set(oLAPACK_LIBRARY_RELEASE ${LAPACK_LIBRARY_RELEASE})
+ set(oLAPACK_LIBRARY_DEBUG ${LAPACK_LIBRARY_DEBUG})
+ select_library_configurations(oLAPACK)
+
+ list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
+ list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
+
+ find_dependency(BLAS)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_RELEASE)
+ if(NOT _loc)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_RELEASE)
+ endif()
+ set(LAPACK_BLAS_LIBRARY_RELEASE ${_loc})
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_DEBUG)
+ if(NOT _loc)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_DEBUG)
+ endif()
+ set(LAPACK_BLAS_LIBRARY_DEBUG ${_loc})
+ select_library_configurations(LAPACK_BLAS)
+ list(APPEND LAPACK_LIBRARY_RELEASE ${LAPACK_BLAS_LIBRARY_RELEASE})
+ list(APPEND LAPACK_LIBRARY_DEBUG ${LAPACK_BLAS_LIBRARY_DEBUG})
+
+ select_library_configurations(LAPACK)
+ list(APPEND LAPACK_LIBRARY Threads::Threads)
+endif()
if(NOT F2C_INCLUDE_DIR)
find_path(F2C_INCLUDE_DIR NAMES f2c.h)
@@ -108,91 +131,107 @@ if(NOT LAPACK_INCLUDE_DIR)
endif()
list(APPEND LAPACK_INCLUDE_DIR ${F2C_INCLUDE_DIR})
+set(LAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
set(LAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
set(CLAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
set(CLAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
set(F2C_INCLUDE_DIRS "${F2C_INCLUDE_DIR}" CACHE PATH "" FORCE)
+set(LAPACK_DLL_DIR ${LAPACK_INCLUDE_DIR})
+list(TRANSFORM LAPACK_DLL_DIR APPEND "/../bin")
+message(STATUS "LAPACK_DLL_DIR: ${LAPACK_DLL_DIR}")
+
if(WIN32)
- string( REPLACE ".lib" ".dll" LAPACK_LIBRARY_RELEASE_DLL "${LAPACK_LIBRARY_RELEASE}" )
- string( REPLACE ".lib" ".dll" LAPACK_LIBRARY_DEBUG_DLL "${LAPACK_LIBRARY_DEBUG}" )
- string( REPLACE ".lib" ".dll" F2C_LIBRARY_RELEASE_DLL "${F2C_LIBRARY_RELEASE}" )
- string( REPLACE ".lib" ".dll" F2C_LIBRARY_DEBUG_DLL "${F2C_LIBRARY_DEBUG}" )
+ find_file(LAPACK_LIBRARY_RELEASE_DLL NAMES lapack.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(LAPACK_LIBRARY_DEBUG_FOLDER NAMES lapackd.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(F2C_LIBRARY_RELEASE_DLL NAMES f2c.dll libf2c.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(F2C_LIBRARY_DEBUG_DLL NAMES f2cd.dll libf2cd.dll PATHS ${LAPACK_DLL_DIR})
endif()
+set(LAPACK_BLAS_LIBRARY "${LAPACK_BLAS_LIBRARY}" CACHE STRING "" FORCE)
+set(F2C_LIBRARIES "${F2C_LIBRARY}" CACHE STRING "" FORCE)
+set(LAPACK_VERSION "${CLAPACK_VERSION}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(CLAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(CLAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+
+set(LAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY "${F2C_LIBRARY}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARY_RELEASE "${LAPACK_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARY_DEBUG "${LAPACK_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY_RELEASE "${F2C_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY_DEBUG "${F2C_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
+
find_package_handle_standard_args(CLAPACK DEFAULT_MSG CLAPACK_LIBRARY CLAPACK_INCLUDE_DIR)
mark_as_advanced(CLAPACK_INCLUDE_DIR CLAPACK_LIBRARY)
-find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
+find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
-find_package_handle_standard_args(F2C DEFAULT_MSG F2C_LIBRARY F2C_INCLUDE_DIR)
+find_package_handle_standard_args(F2C DEFAULT_MSG F2C_LIBRARY F2C_INCLUDE_DIR)
mark_as_advanced(F2C_INCLUDE_DIR F2C_LIBRARY)
#TARGETS
-if( CLAPACK_FOUND AND NOT TARGET clapack::clapack )
- if( EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}" )
- add_library( clapack::clapack SHARED IMPORTED )
- set_target_properties( clapack::clapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
- IMPORTED_IMPLIB "${LAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
- if( EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}" )
- set_property( TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug )
- set_target_properties( clapack::clapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
- IMPORTED_IMPLIB_DEBUG "${LAPACK_LIBRARY_DEBUG}" )
+if(CLAPACK_FOUND AND NOT TARGET clapack::clapack)
+ if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
+ add_library(clapack::clapack SHARED IMPORTED)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
+ IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
+ set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
+ IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
else()
- add_library( clapack::clapack UNKNOWN IMPORTED )
- set_target_properties( clapack::clapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
- if( EXISTS "${LAPACK_LIBRARY_DEBUG}" )
- set_property( TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug )
- set_target_properties( clapack::clapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG}" )
+ add_library(clapack::clapack UNKNOWN IMPORTED)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
+ set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
endif()
endif()
-if( CLAPACK_FOUND AND NOT TARGET lapack )
- if( EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}" )
- add_library( lapack SHARED IMPORTED )
- set_target_properties( lapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
- IMPORTED_IMPLIB "${LAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
- if( EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}" )
- set_property( TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug )
- set_target_properties( lapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
- IMPORTED_IMPLIB_DEBUG "${LAPACK_LIBRARY_DEBUG}" )
+if(CLAPACK_FOUND AND NOT TARGET lapack)
+ if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
+ add_library(lapack SHARED IMPORTED)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
+ IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
+ set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
+ IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
else()
- add_library( lapack UNKNOWN IMPORTED )
- set_target_properties( lapack PROPERTIES
- IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE}"
- INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
- IMPORTED_CONFIGURATIONS Release
- IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
- if( EXISTS "${LAPACK_LIBRARY_DEBUG}" )
- set_property( TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug )
- set_target_properties( lapack PROPERTIES
- IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG}" )
+ add_library(lapack UNKNOWN IMPORTED)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ IMPORTED_CONFIGURATIONS Release
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
+ set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
endif()
endif()
-
-set(LAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY "${F2C_LIBRARY}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARY_RELEASE "${LAPACK_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
-set(LAPACK_LIBRARY_DEBUG "${LAPACK_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY_RELEASE "${F2C_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
-set(F2C_LIBRARY_DEBUG "${F2C_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
diff --git a/ports/clapack/enable_openblas_compat.patch b/ports/clapack/enable_openblas_compat.patch
new file mode 100644
index 000000000..319935475
--- /dev/null
+++ b/ports/clapack/enable_openblas_compat.patch
@@ -0,0 +1,112 @@
+diff --git a/INCLUDE/blaswrap.h b/INCLUDE/blaswrap.h
+index 333a17a..fb6750a 100644
+--- a/INCLUDE/blaswrap.h
++++ b/INCLUDE/blaswrap.h
+@@ -155,6 +155,107 @@
+ #define ctrsm_ f2c_ctrsm
+ #define ztrsm_ f2c_ztrsm
+
++#else
++
++#define sswap_ sswap
++#define saxpy_ saxpy
++#define sasum_ sasum
++#define isamax_ isamax
++#define scopy_ scopy
++#define sscal_ sscal
++#define sger_ sger
++#define snrm2_ snrm2
++#define ssymv_ ssymv
++#define sdot_ sdot
++#define saxpy_ saxpy
++#define ssyr2_ ssyr2
++#define srot_ srot
++#define sgemv_ sgemv
++#define strsv_ strsv
++#define sgemm_ sgemm
++#define strsm_ strsm
++
++#define dswap_ dswap
++#define daxpy_ daxpy
++#define dasum_ dasum
++#define idamax_ idamax
++#define dcopy_ dcopy
++#define dscal_ dscal
++#define dger_ dger
++#define dnrm2_ dnrm2
++#define dsymv_ dsymv
++#define ddot_ ddot
++#define dsyr2_ dsyr2
++#define drot_ drot
++#define dgemv_ dgemv
++#define dtrsv_ dtrsv
++#define dgemm_ dgemm
++#define dtrsm_ dtrsm
++
++#define cswap_ cswap
++#define caxpy_ caxpy
++#define scasum_ scasum
++#define icamax_ icamax
++#define ccopy_ ccopy
++#define cscal_ cscal
++#define scnrm2_ scnrm2
++#define cgemv_ cgemv
++#define ctrsv_ ctrsv
++#define cgemm_ cgemm
++#define ctrsm_ ctrsm
++#define cgerc_ cgerc
++#define chemv_ chemv
++#define cher2_ cher2
++
++#define zswap_ zswap
++#define zaxpy_ zaxpy
++#define dzasum_ dzasum
++#define izamax_ izamax
++#define zcopy_ zcopy
++#define zscal_ zscal
++#define dznrm2_ dznrm2
++#define zgemv_ zgemv
++#define ztrsv_ ztrsv
++#define zgemm_ zgemm
++#define ztrsm_ ztrsm
++#define zgerc_ zgerc
++#define zhemv_ zhemv
++#define zher2_ zher2
++
++/* LAPACK */
++#define dlacon_ dlacon
++#define slacon_ slacon
++#define icmax1_ icmax1
++#define scsum1_ scsum1
++#define clacon_ clacon
++#define dzsum1_ dzsum1
++#define izmax1_ izmax1
++#define zlacon_ zlacon
++
++/* Fortran interface */
++#define c_bridge_dgssv_ c_bridge_dgssv
++#define c_fortran_sgssv_ c_fortran_sgssv
++#define c_fortran_dgssv_ c_fortran_dgssv
++#define c_fortran_cgssv_ c_fortran_cgssv
++#define c_fortran_zgssv_ c_fortran_zgssv
++
++#define cdotc_ cdotc
++#define cdotu_ cdotu
++#define csscal_ csscal
++#define zdscal_ zdscal
++#define zdotc_ zdotc
++#define zdotu_ zdotu
++#define ctrmm_ ctrmm
++#define dtrmm_ dtrmm
++#define strmm_ strmm
++#define ztrmm_ ztrmm
++#define cgeru_ cgeru
++#define zgeru_ zgeru
++#define xerbla_ xerbla
++#define dtrmv_ dtrmv
++#define dsyrk_ dsyrk
++#define zherk_ zherk
++
+ #endif /* NO_BLAS_WRAP */
+
+ #endif /* __BLASWRAP_H */
diff --git a/ports/clapack/openblas_linux.patch b/ports/clapack/openblas_linux.patch
deleted file mode 100644
index e2b7b6e82..000000000
--- a/ports/clapack/openblas_linux.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c729d95..2b15e31 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 2.6)
- project(CLAPACK C)
--find_package(BLAS REQUIRED)
-+find_package(OpenBLAS REQUIRED)
-
- if(WIN32 AND NOT CYGWIN)
- set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c)
diff --git a/ports/clapack/portfile.cmake b/ports/clapack/portfile.cmake
index ecdf51c87..2845bbdc2 100644
--- a/ports/clapack/portfile.cmake
+++ b/ports/clapack/portfile.cmake
@@ -1,5 +1,11 @@
include(vcpkg_common_functions)
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+ message(WARNING "You do not need this package on macOS, since you already have the Accelerate Framework")
+ return()
+endif()
+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_download_distfile(ARCHIVE
@@ -9,7 +15,7 @@ vcpkg_download_distfile(ARCHIVE
)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(ADDITIONAL_PATCH "openblas_linux.patch")
+ set(ADDITIONAL_PATCH "enable_openblas_compat.patch")
endif()
vcpkg_extract_source_archive_ex(
@@ -31,7 +37,7 @@ vcpkg_install_cmake()
vcpkg_copy_pdbs()
#TODO: fix the official exported targets, since they are broken (luckily it seems that no-one uses them for now)
-vcpkg_fixup_cmake_targets(CONFIG_PATH share/clapack)
+vcpkg_fixup_cmake_targets()
#we install a cmake wrapper since the official FindLAPACK module in cmake does find clapack easily, unfortunately...
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack)
diff --git a/ports/clapack/remove_internal_blas.patch b/ports/clapack/remove_internal_blas.patch
index 471d87a87..3b8c59b4c 100644
--- a/ports/clapack/remove_internal_blas.patch
+++ b/ports/clapack/remove_internal_blas.patch
@@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 320ccc6..284e9d3 100755
+index 320ccc6..414ac8e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,6 @@
@@ -45,7 +45,7 @@ index 320ccc6..284e9d3 100755
+ DESTINATION include)
+
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
-index 43d7b3f..6fa3598 100755
+index 43d7b3f..6fa3598 100644
--- a/F2CLIBS/libf2c/CMakeLists.txt
+++ b/F2CLIBS/libf2c/CMakeLists.txt
@@ -60,3 +60,11 @@ include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c)
@@ -61,7 +61,7 @@ index 43d7b3f..6fa3598 100755
+ ARCHIVE DESTINATION lib)
+
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
-index ac4cce3..07dc8c7 100755
+index ac4cce3..07dc8c7 100644
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -376,5 +376,9 @@ if(BUILD_COMPLEX16)
@@ -75,10 +75,3 @@ index ac4cce3..07dc8c7 100755
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
-diff --git a/clapack-config.cmake.in b/clapack-config.cmake.in
-index cd19f1d..597f474 100755
---- a/clapack-config.cmake.in
-+++ b/clapack-config.cmake.in
-@@ -1 +1 @@
--include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake")
-+include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake")
diff --git a/ports/clapack/vcpkg-cmake-wrapper.cmake b/ports/clapack/vcpkg-cmake-wrapper.cmake
index 69c54ea0d..aee3e1e08 100644
--- a/ports/clapack/vcpkg-cmake-wrapper.cmake
+++ b/ports/clapack/vcpkg-cmake-wrapper.cmake
@@ -1,4 +1,8 @@
set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
-_find_package(${ARGS})
+
+if(NOT LAPACK_LIBRARIES)
+ _find_package(${ARGS})
+endif()
+
set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH})