Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
ac1f57e
force bla vendor in blas
Neumann-A Jan 11, 2021
f2df1fa
force BLA_VENDOR for lapack.
Neumann-A Jan 11, 2021
f14cac7
fix wrapper install
Neumann-A Jan 19, 2021
995f5b2
add version info
Neumann-A Jan 19, 2021
b179560
make 7zip and llvm tool ports.
Neumann-A Mar 19, 2022
19d4fe1
manifest format.
Neumann-A Mar 19, 2022
c0f033b
version stuff
Neumann-A Mar 19, 2022
78adfe3
Merge branch 'master' into more_tool_ports
Neumann-A Mar 22, 2022
160fa41
Apply suggestions from code review
Neumann-A Mar 24, 2022
e7932ef
version stuff
Neumann-A Mar 24, 2022
828941c
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Neumann-A Mar 24, 2022
29ae741
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Neumann-A Mar 26, 2022
7febb6b
[vcpkg-tool-ninja] add ninja tool as a port
Neumann-A Mar 31, 2022
be1b0f8
version stuff
Neumann-A Mar 31, 2022
1e15675
add Unix Makefiles to list of valid generators for bootstraping ninja
Neumann-A Mar 31, 2022
0ce2ee4
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Apr 1, 2022
c5397c9
Merge remote-tracking branch 'upstream/master' into add_ninja_port
Apr 1, 2022
7a36db3
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Neumann-A Apr 4, 2022
f1bd985
nicole CRs
strega-nil Apr 5, 2022
f1457e0
Merge pull request #6 from strega-nil/Neumann-A/add_ninja_port
Neumann-A Apr 6, 2022
77d319e
update version db
Apr 6, 2022
538ae94
revert vcpkg_build_cmake changes
Apr 6, 2022
3a094bc
Merge remote-tracking branch 'upstream/master' into add_ninja_port
Apr 6, 2022
67cc98c
retrigger ci
Apr 6, 2022
9e29c3a
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Neumann-A Apr 7, 2022
e99e346
Merge remote-tracking branch 'upstream/master' into more_tool_ports
Neumann-A Apr 7, 2022
81945b9
revert find_acquire_program changes
Neumann-A Apr 7, 2022
6726020
hardcoding paths
Neumann-A Apr 7, 2022
6efda72
version stuff
Neumann-A Apr 7, 2022
ddbe0b8
Merge branch 'more_tool_ports' of https://github.com/Neumann-A/vcpkg …
Neumann-A Apr 7, 2022
b92ef3b
Merge remote-tracking branch 'upstream/master' into force_bla_vendor
Apr 22, 2022
ef59437
install wrapper if not exist.
Apr 22, 2022
d887061
cleanup stuff
Apr 22, 2022
c12bad7
rename to cmake.in
Apr 22, 2022
c50945d
details
Apr 22, 2022
16373d0
drastically simplify FindLAPACK by clapack
Apr 22, 2022
9759dd2
no find_dependency in modules!
Apr 22, 2022
a8df6e7
add missing @ONLY
Apr 22, 2022
1e1819c
move stuff around
Apr 22, 2022
63b429d
fix platform expr
Apr 22, 2022
dc751ce
be consistent as the comment says
Apr 22, 2022
6feaf6b
Merge remote-tracking branch 'upstream/master' into force_bla_vendor
Neumann-A Apr 22, 2022
677cb68
rename test ports with -test
Neumann-A Apr 22, 2022
5fe252b
use version-string to define blas impl.
Neumann-A Apr 22, 2022
272a28c
add version stuff
Neumann-A Apr 22, 2022
73037ad
fix try compile
Neumann-A May 1, 2022
ee98271
fix try compile in project mode
May 2, 2022
80d23d0
try fixing qtbase
Neumann-A May 2, 2022
d30a535
fix regressions.
Neumann-A May 2, 2022
50ae753
set policies to fix last regression
May 3, 2022
a3b31f2
Merge branch 'fix_try_compile' of https://github.com/Neumann-A/vcpkg …
May 3, 2022
0fe4af8
Merge remote-tracking branch 'upstream/master' into force_bla_vendor
May 4, 2022
ef73585
more pc files
May 4, 2022
d58573d
version stuff
May 4, 2022
244878c
adjust test to check for pc files.
May 4, 2022
55d4d09
revert openblas version
May 4, 2022
b7c002b
fix copy pasta
May 4, 2022
d77a77e
fix uwp regression
Neumann-A May 4, 2022
9896014
version stuff
Neumann-A May 4, 2022
c82d7ee
move stuff around
Neumann-A May 4, 2022
d37f71e
Merge branch 'master' into more_tool_ports
Neumann-A May 5, 2022
2707de9
Merge remote-tracking branch 'upstream/master' into add_ninja_port
Neumann-A May 6, 2022
c83c524
download patch
Neumann-A May 6, 2022
d1a18c5
version stuff
Neumann-A May 6, 2022
6ba3006
Remove checked in diff copy.
BillyONeal May 6, 2022
e6afe09
Merge remote-tracking branch 'origin/force_bla_vendor' into fortran_f…
Neumann-A May 7, 2022
e3bb179
Merge remote-tracking branch 'origin/fix_try_compile' into fortran_fl…
Neumann-A May 7, 2022
80a0867
Merge remote-tracking branch 'origin/add_ninja_port' into fortran_fla…
Neumann-A May 7, 2022
bed92d2
Merge remote-tracking branch 'origin/more_tool_ports' into fortran_fl…
Neumann-A May 7, 2022
34d5e12
use vcpkg-port-config to get the tools automatically
Neumann-A May 7, 2022
c4a5ea9
add missing dep
Neumann-A May 7, 2022
9d39530
add pgmath
Neumann-A May 7, 2022
de00fef
add fortran stuff
Neumann-A May 7, 2022
d5dcbf7
add intel patch
Neumann-A May 8, 2022
f8f022f
use correct policy
Neumann-A May 8, 2022
2b1c335
remove unused policy
Neumann-A May 8, 2022
d9d427c
vcpkg_cmake_get_vars extend language lookup and make options passable
May 9, 2022
980e44f
remove unused variable
May 9, 2022
470215f
install license
May 9, 2022
5d0d097
add ifort path
May 9, 2022
1a05ff4
add flang path
May 9, 2022
ed81fd8
add vcpkg-fortran
May 9, 2022
987299b
bump lapack version
May 9, 2022
120ae0b
switch lapack on arm64 to lapack-reference since flang supports arm64
May 9, 2022
fa46942
version stuff
May 9, 2022
fdaf769
fix metaport wrapper install
May 9, 2022
da6ee69
version stuff
May 9, 2022
90c0820
touch copyright
May 9, 2022
fa9e2f0
version stuff
May 9, 2022
d4ab125
add lic field
May 9, 2022
9a1915c
verison stuff
May 9, 2022
5d6b2c8
fix typo
May 9, 2022
ef917a4
version stuff
May 9, 2022
2e19c82
fix policy typo
May 9, 2022
61f991d
version stuff
May 9, 2022
e710677
fix uwp regressions
Neumann-A May 9, 2022
b00dd29
version stuff
Neumann-A May 9, 2022
b96faa4
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
May 10, 2022
1a8c4f5
rename stuff
May 10, 2022
62bec0a
format manifest
May 10, 2022
f432588
more renaming
May 10, 2022
e44b099
version cleanup
May 10, 2022
1a73abf
fix paths and includes after rename
May 11, 2022
0efc4d4
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
May 11, 2022
648b22d
fixes
May 11, 2022
8c7d6eb
version stuff
May 11, 2022
fb3c43b
need to install the helper on all platforms.
Neumann-A May 11, 2022
11b0225
version stuff
Neumann-A May 11, 2022
2088721
remove platform expression
Neumann-A May 11, 2022
9268a56
version stuff
Neumann-A May 11, 2022
76a3f18
fix wrong dll name
Neumann-A May 11, 2022
53a1538
version stuff
Neumann-A May 11, 2022
a59ca82
fix stuff....
Neumann-A May 11, 2022
0dc17cc
version as always
Neumann-A May 11, 2022
8ba15bf
fix include path
Neumann-A May 11, 2022
4a16e86
version stuff
Neumann-A May 11, 2022
8af040e
fix logic.....
Neumann-A May 11, 2022
444e86c
version stuff
Neumann-A May 11, 2022
21a6f88
fix stuff ....
Neumann-A May 11, 2022
10f9248
format manifest
Neumann-A May 11, 2022
b754bfe
version stuff
Neumann-A May 11, 2022
6172c82
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
May 12, 2022
f7b3944
fix dep after merge
May 12, 2022
76ff85e
more dep fixes
May 12, 2022
b546003
format manifest
Neumann-A May 12, 2022
8029859
version stuff
Neumann-A May 12, 2022
c85c1d1
fix stuff...
Neumann-A May 12, 2022
3931f7c
version stuff
Neumann-A May 12, 2022
fcee1d0
disable parallel configure in pgmath since there has been a strange b…
Neumann-A May 12, 2022
0f7e99b
version stuff
Neumann-A May 12, 2022
82b14d2
ci baseline adjustment
Neumann-A May 12, 2022
f79abc8
Fix arm64 path
Neumann-A May 12, 2022
dbbf390
format manifest
Neumann-A May 12, 2022
1f5bc42
version stuff
Neumann-A May 12, 2022
186f730
fix uwp/arm regressions
Neumann-A May 12, 2022
56c7402
version-date
Neumann-A May 12, 2022
81de545
version stuff
Neumann-A May 12, 2022
f5134fe
make paltform expr more precise
Neumann-A May 12, 2022
59a532f
version stuff
Neumann-A May 12, 2022
a090cd5
fix pgmath compile flags.
Neumann-A May 13, 2022
36aa42c
but osx pgmath on baseline
Neumann-A May 13, 2022
23486eb
version stuff
Neumann-A May 13, 2022
c6dd4fe
regression fixes
Neumann-A May 13, 2022
80ff6f8
version stuff
Neumann-A May 13, 2022
1f9ac5c
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A May 14, 2022
3570738
handle pc files correctly by moving it all into the metaports
Neumann-A May 14, 2022
2c7af5c
overwrite version
Neumann-A May 14, 2022
84b566b
lapack update.
Neumann-A May 16, 2022
e1dc479
compiler flags tuning.
Neumann-A May 16, 2022
30eb9ed
format manifest
Neumann-A May 16, 2022
825803f
version stuff
Neumann-A May 16, 2022
7600a82
patch lapacke out
Neumann-A May 16, 2022
f90fe71
verison stuff
Neumann-A May 16, 2022
f11bd51
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Oct 17, 2022
da52429
bump version
Neumann-A Oct 17, 2022
389e8f7
v db
Neumann-A Oct 17, 2022
7a8c577
remove _try_compile overwrite
Neumann-A Oct 17, 2022
d230a67
set cmake_minimum_required
Neumann-A Oct 17, 2022
1563233
v db
Neumann-A Oct 17, 2022
de665bd
fix typo
Neumann-A Oct 18, 2022
48e779b
Merge branch 'master' into fortran_flang_ifort_combined
Neumann-A Oct 24, 2022
96b6ba2
use policy instead of minimum_required
Neumann-A Oct 24, 2022
fec158c
Merge branch 'microsoft:master' into fortran_flang_ifort_combined
Neumann-A Oct 27, 2022
3386dad
Merge branch 'microsoft:master' into fortran_flang_ifort_combined
Neumann-A Oct 28, 2022
1fd04a3
fix c&p error
Neumann-A Oct 28, 2022
401f739
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Nov 10, 2022
68b3f45
move ifort binaries since libomp conflicts with llvm
Neumann-A Nov 10, 2022
9752a54
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Dec 17, 2022
8afa441
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Jan 2, 2023
c3a4f31
update stuff
Neumann-A Jan 26, 2023
1aa1d21
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Jan 26, 2023
dba9629
fix build issues
Neumann-A Jan 26, 2023
a9a0bff
Merge remote-tracking branch 'upstream/master' into fortran_flang_ifo…
Neumann-A Jan 28, 2023
a37c1c3
fix build
Neumann-A Jan 28, 2023
e2b7713
updatte to 15.0.7
Neumann-A Jan 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions ports/blas/CMakeLists.txt

This file was deleted.

8 changes: 8 additions & 0 deletions ports/blas/blas.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
prefix=${pcfiledir}/../..

Name: BLAS
Description: Implementation of BLAS
Version:
Requires: @requires@
Libs: @libs@
Cflags: @cflags@
47 changes: 44 additions & 3 deletions ports/blas/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)

# Make sure BLAS can be found
vcpkg_configure_cmake(SOURCE_PATH ${CURRENT_PORT_DIR}
OPTIONS -DCMAKE_PREFIX_PATH="${CURRENT_PACKAGES_DIR}")
file(READ "${CURRENT_PORT_DIR}/vcpkg.json" manifest_contents)
string(JSON ver_str GET "${manifest_contents}" version-string)

if(ver_str STREQUAL "default")
# OpenBLAS
if(VCPKG_TARGET_IS_OSX)
set(BLA_VENDOR Apple)
set(requires "")
set(libs "-framework Accelerate")
set(cflags "-framework Accelerate")
elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
set(BLA_VENDOR Generic)
set(requires "blas-reference vcpkg-fortran")
else()
set(BLA_VENDOR OpenBLAS)
set(requires openblas)
endif()

configure_file("${CMAKE_CURRENT_LIST_DIR}/blas.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas.pc" @ONLY)
if(NOT VCPKG_BUILD_TYPE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/blas.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas.pc" @ONLY)
endif()
# For possible overlays:

# Intel MKL
#if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
# set(BLA_VENDOR Intel10_64lp)
#elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
# set(BLA_VENDOR Intel10_32)
#else()
# message(FATAL_ERROR "Unsupported target architecture for Intel MKL!")
#endif()

# Apple Accelerate Framework
# set(BLA_VENDOR Apple)

if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(BLA_STATIC ON)
else()
set(BLA_STATIC OFF)
endif()

configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/blas/vcpkg-cmake-wrapper.cmake" @ONLY)
endif()
5 changes: 5 additions & 0 deletions ports/blas/vcpkg-cmake-wrapper.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
set(BLA_VENDOR @BLA_VENDOR@)
set(BLA_STATIC @BLA_STATIC@)
_find_package(${ARGS})
unset(BLA_VENDOR)
unset(BLA_STATIC)
19 changes: 16 additions & 3 deletions ports/blas/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
{
"$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!",
"name": "blas",
"version-string": "1",
"port-version": 1,
"version-string": "default",
"description": "Metapackage for packages which provide BLAS",
"license": null,
"dependencies": [
"openblas"
{
"$comment": "Will use internal generic BLAS of lapack-reference",
"name": "lapack-reference",
"platform": "arm64 & windows"
},
{
"name": "openblas",
"platform": "!(osx | (windows & arm64))"
},
{
"name": "vcpkg-cmake",
"host": true
}
]
}
250 changes: 31 additions & 219 deletions ports/clapack/FindLAPACK.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,238 +2,50 @@
# clapack config for vcpkg
# ------------
#
# Find the clapack includes and library.
# Find clapack as a valid LAPACK implementation.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This script defines the following variables:
#
# ``CLAPACK_FOUND``
# True if clapack library found
#
# ``CLAPACK_VERSION``
# Containing the clapack version tag (manually defined)
#
# ``CLAPACK_INCLUDE_DIR``
# Location of clapack headers
#
# ``CLAPACK_LIBRARY``
# List of libraries to link with when using clapack
#
# Result Targets
# ^^^^^^^^^^^^^^
#
# This script defines the following targets:
#
# ``clapack::clapack``
# Target to use clapack
#
# Compatibility Variables
# ^^^^^^^^^^^^^^^^^^^^^^^
#
# This script defines the following variables for compatibility reasons:
#
# ``F2C_FOUND``
# True if f2c (fortran-to-c wrap layer) library found
#
# ``F2C_INCLUDE_DIR``
# Location of clapack headers
#
# ``F2C_LIBRARY``
# Library containing the fortran-to-c wrap layer, necessary for clapack and automatically included when used
#
# ``LAPACK_FOUND``
# True if clapack library found
#
# ``LAPACK_VERSION``
# Containing the clapack version tag (manually defined)
#
# ``LAPACK_INCLUDE_DIR``
# Location of clapack headers
#
# ``LAPACK_LIBRARY``
# List of libraries to link with when using clapack
#
# Compatibility Targets
# ^^^^^^^^^^^^^^
#
# This script defines the following targets for compatibility reasons:
#
# ``lapack``
# Target to use lapack
# The module defines the same outputs as FindLAPACK by cmake

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(LAPACK_VERSION "${CLAPACK_VERSION}")
#set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)

set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_dependency(Threads)
find_package(clapack CONFIG REQUIRED) # This will be found !

if(UNIX)
find_library(ADDITIONAL_LAPACK_LIBRARY m)
set(PTHREAD_LINK_NAME "-pthread")
if(NOT TARGET lapack)
message(FATAL_ERROR "Target lapack was not created by find_package(clapack)!")
endif()

if(NOT F2C_LIBRARY)
find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
select_library_configurations(F2C)
if(NOT TARGET LAPACK::LAPACK)
add_library(LAPACK::LAPACK INTERFACE IMPORTED)
target_link_libraries(LAPACK::LAPACK INTERFACE lapack)

#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})
set(lib_prop IMPORTED_LOCATION)
#if(@VCPKG_LIBRARY_LINKAGE@ STREQUAL "dynamic" AND WIN32)
# set(lib_prop IMPORTED_IMPLIB)
#endif()

list(APPEND F2C_LIBRARY ${ADDITIONAL_LAPACK_LIBRARY})
endif()

if(NOT LAPACK_LIBRARY)
find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)

#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(OpenBLAS)
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)
if(UNIX)
list(APPEND LAPACK_LIBRARY ${PTHREAD_LINK_NAME})
endif()
endif()

if(NOT F2C_INCLUDE_DIR)
find_path(F2C_INCLUDE_DIR NAMES f2c.h)
endif()

if(NOT LAPACK_INCLUDE_DIR)
find_path(LAPACK_INCLUDE_DIR NAMES clapack.h)
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)
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()
get_property(LAPACK_LIBRARY_RELEASE TARGET lapack PROPERTY ${lib_prop}_RELEASE)
get_property(LAPACK_LIBRARY_DEBUG TARGET lapack PROPERTY ${lib_prop}_DEBUG)

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)
get_property(LAPACK_INCLUDE_DIR TARGET lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES) # Doesn't make much sense but ok.
select_library_configurations(LAPACK)

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(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_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_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 "${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()

# Ensure consistency with both CMake's vanilla as well as lapack-reference's FindLAPACK.cmake module and register the LAPACK::LAPACK target
if(CLAPACK_FOUND AND NOT TARGET LAPACK::LAPACK)
if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
add_library(LAPACK::LAPACK SHARED IMPORTED)
set_target_properties(LAPACK::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::LAPACK APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
set_target_properties(LAPACK::LAPACK PROPERTIES
IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
else()
add_library(LAPACK::LAPACK UNKNOWN IMPORTED)
set_target_properties(LAPACK::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::LAPACK APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
set_target_properties(LAPACK::LAPACK PROPERTIES
IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
endif()
endif()
endif()
get_property(LAPACK_LINKER_FLAGS_RELEASE TARGET lapack PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE)
get_property(LAPACK_LINKER_FLAGS_DEBUG TARGET lapack PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG)
list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG PREPEND "$<$<CONFIG:DEBUG>:")
list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG APPEND ">")
list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE PREPEND "$<$<NOT:$<CONFIG:DEBUG>>:")
list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE APPEND ">")

# Preserve backwards compatibility and also register the 'lapack' target
if(CLAPACK_FOUND AND NOT TARGET lapack)
add_library(lapack ALIAS LAPACK::LAPACK)
set(LAPACK_LIBRARIES "${LAPACK_LIBRARIES};${LAPACK_LINKER_FLAGS_DEBUG};${LAPACK_LINKER_FLAGS_RELEASE}")
set(LAPACK95_LIBRARIES "${LAPACK_LIBRARIES}")
set(LAPACK95_FOUND "TRUE")
set(LAPACK_LINKER_FLAGS "${LAPACK_LIBRARIES}")
endif()
find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR )
mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
Loading