early-access version 2853
This commit is contained in:
239
externals/vcpkg/ports/clapack/FindLAPACK.cmake
vendored
Executable file
239
externals/vcpkg/ports/clapack/FindLAPACK.cmake
vendored
Executable file
@@ -0,0 +1,239 @@
|
||||
#.rst:
|
||||
# clapack config for vcpkg
|
||||
# ------------
|
||||
#
|
||||
# Find the clapack includes and library.
|
||||
#
|
||||
# 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
|
||||
|
||||
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)
|
||||
select_library_configurations(F2C)
|
||||
|
||||
#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})
|
||||
|
||||
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()
|
||||
|
||||
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(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()
|
||||
|
||||
# Preserve backwards compatibility and also register the 'lapack' target
|
||||
if(CLAPACK_FOUND AND NOT TARGET lapack)
|
||||
add_library(lapack ALIAS LAPACK::LAPACK)
|
||||
endif()
|
||||
9
externals/vcpkg/ports/clapack/arith_linux64.h
vendored
Executable file
9
externals/vcpkg/ports/clapack/arith_linux64.h
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#define IEEE_8087
|
||||
#define Arith_Kind_ASL 1
|
||||
#define Long int
|
||||
#define Intcast (int)(long)
|
||||
#define Double_Align
|
||||
#define X64_bit_pointers
|
||||
#define NO_LONG_LONG
|
||||
#define QNaN0 0x0
|
||||
#define QNaN1 0xfff80000
|
||||
12
externals/vcpkg/ports/clapack/arith_osx.h
vendored
Executable file
12
externals/vcpkg/ports/clapack/arith_osx.h
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
/* Suitable for macOS on x86_64 and arm64 */
|
||||
/* Not suitable for 32-bit macOS */
|
||||
|
||||
#define IEEE_8087
|
||||
#define Arith_Kind_ASL 1
|
||||
#define Long int
|
||||
#define Intcast (int)(long)
|
||||
#define Double_Align
|
||||
#define X64_bit_pointers
|
||||
#define NANCHECK
|
||||
#define QNaN0 0x0
|
||||
#define QNaN1 0x7ff80000
|
||||
8
externals/vcpkg/ports/clapack/arith_win32.h
vendored
Executable file
8
externals/vcpkg/ports/clapack/arith_win32.h
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
/* Windows 32-bit */
|
||||
|
||||
#define IEEE_8087
|
||||
#define Arith_Kind_ASL 1
|
||||
#define Double_Align
|
||||
#define NANCHECK
|
||||
#define QNaN0 0x0
|
||||
#define QNaN1 0x7ff80000
|
||||
9
externals/vcpkg/ports/clapack/arith_win64.h
vendored
Executable file
9
externals/vcpkg/ports/clapack/arith_win64.h
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
/* Windows 64-bit */
|
||||
|
||||
#define IEEE_8087
|
||||
#define Arith_Kind_ASL 1
|
||||
#define Double_Align
|
||||
#define X64_bit_pointers
|
||||
#define NANCHECK
|
||||
#define QNaN0 0x0
|
||||
#define QNaN1 0x7ff80000
|
||||
7
externals/vcpkg/ports/clapack/fix-ConfigFile.patch
vendored
Executable file
7
externals/vcpkg/ports/clapack/fix-ConfigFile.patch
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
diff --git a/clapack-config.cmake.in b/clapack-config.cmake.in
|
||||
index cd19f1d..49af4f0 100644
|
||||
--- a/clapack-config.cmake.in
|
||||
+++ b/clapack-config.cmake.in
|
||||
@@ -1 +1 @@
|
||||
-include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake")
|
||||
+include("${CMAKE_CURRENT_LIST_DIR}/clapack-targets.cmake")
|
||||
45
externals/vcpkg/ports/clapack/fix-install.patch
vendored
Executable file
45
externals/vcpkg/ports/clapack/fix-install.patch
vendored
Executable file
@@ -0,0 +1,45 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 414ac8e..db58b4e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -19,7 +19,7 @@ include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
|
||||
add_subdirectory(F2CLIBS)
|
||||
add_subdirectory(SRC)
|
||||
set(CLAPACK_VERSION 3.2.1)
|
||||
-export(TARGETS f2c lapack FILE ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-targets.cmake)
|
||||
+install(EXPORT clapack-targets FILE clapack-targets.cmake DESTINATION share/clapack)
|
||||
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in
|
||||
${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config-version.cmake @ONLY)
|
||||
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in
|
||||
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
|
||||
index 6fa3598..c855e38 100644
|
||||
--- a/F2CLIBS/libf2c/CMakeLists.txt
|
||||
+++ b/F2CLIBS/libf2c/CMakeLists.txt
|
||||
@@ -63,8 +63,9 @@ set_property(TARGET f2c PROPERTY PREFIX lib)
|
||||
if(UNIX)
|
||||
target_link_libraries(f2c m)
|
||||
endif()
|
||||
-install(TARGETS f2c
|
||||
+install(TARGETS f2c EXPORT clapack-targets
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib)
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ INCLUDES DESTINATION include)
|
||||
|
||||
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
|
||||
index 07dc8c7..2355225 100644
|
||||
--- a/SRC/CMakeLists.txt
|
||||
+++ b/SRC/CMakeLists.txt
|
||||
@@ -377,8 +377,9 @@ if(BUILD_COMPLEX16)
|
||||
endif()
|
||||
add_library(lapack ${ALLOBJ} ${ALLXOBJ})
|
||||
target_link_libraries(lapack ${BLAS_LIBRARIES} f2c)
|
||||
-install(TARGETS lapack
|
||||
+install(TARGETS lapack EXPORT clapack-targets
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib)
|
||||
+ ARCHIVE DESTINATION lib
|
||||
+ INCLUDES DESTINATION include)
|
||||
|
||||
67
externals/vcpkg/ports/clapack/portfile.cmake
vendored
Executable file
67
externals/vcpkg/ports/clapack/portfile.cmake
vendored
Executable file
@@ -0,0 +1,67 @@
|
||||
if(EXISTS "${CURRENT_INSTALLED_DIR}/share/lapack-reference/copyright")
|
||||
message(FATAL_ERROR "Can't build ${PORT} if lapack-reference is installed. Please remove lapack-reference:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.")
|
||||
endif()
|
||||
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz"
|
||||
FILENAME "clapack-3.2.1.tgz"
|
||||
SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive_ex(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
PATCHES
|
||||
remove_internal_blas.patch
|
||||
fix-ConfigFile.patch
|
||||
fix-install.patch
|
||||
support-uwp.patch
|
||||
)
|
||||
|
||||
set(ARITH_PATH)
|
||||
if(DEFINED CLAPACK_ARITH_PATH)
|
||||
set(ARITH_PATH "-DARITH_PATH=${CLAPACK_ARITH_PATH}")
|
||||
elseif(NOT TARGET_TRIPLET STREQUAL HOST_TRIPLET)
|
||||
if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "^x64$|^arm64$")
|
||||
set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_win64.h")
|
||||
else()
|
||||
set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_win32.h")
|
||||
endif()
|
||||
elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
|
||||
set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_osx.h")
|
||||
elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_linux64.h")
|
||||
else()
|
||||
message(WARNING
|
||||
"Unable to cross-compile clapack for ${VCPKG_TARGET_ARCHITECTURE}-${VCPKG_CMAKE_SYSTEM_NAME}.
|
||||
No arith.h is available and arithchk must be executed for the target.
|
||||
To fix this issue, define CLAPACK_ARITH_PATH in your triplet to the location of a pre-generated arith.h file.
|
||||
|
||||
Continuing with trying to run arithchk anyway.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DCMAKE_DEBUG_POSTFIX=d
|
||||
${ARITH_PATH}
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
# Install clapack wrappers.
|
||||
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack)
|
||||
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/lapack)
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
77
externals/vcpkg/ports/clapack/remove_internal_blas.patch
vendored
Executable file
77
externals/vcpkg/ports/clapack/remove_internal_blas.patch
vendored
Executable file
@@ -0,0 +1,77 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 320ccc6..414ac8e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,7 +1,6 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
project(CLAPACK C)
|
||||
-enable_testing()
|
||||
-include(CTest)
|
||||
+find_package(BLAS REQUIRED)
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c)
|
||||
@@ -11,7 +10,6 @@ else()
|
||||
set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c)
|
||||
set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c)
|
||||
endif()
|
||||
-enable_testing()
|
||||
option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF)
|
||||
if(NOT USE_BLAS_WRAP)
|
||||
# _zrotg_ seems to be missing in the wrap header
|
||||
@@ -19,16 +17,15 @@ if(NOT USE_BLAS_WRAP)
|
||||
endif()
|
||||
include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
|
||||
add_subdirectory(F2CLIBS)
|
||||
-add_subdirectory(BLAS)
|
||||
add_subdirectory(SRC)
|
||||
-add_subdirectory(TESTING)
|
||||
set(CLAPACK_VERSION 3.2.1)
|
||||
-set(CPACK_PACKAGE_VERSION_MAJOR 3)
|
||||
-set(CPACK_PACKAGE_VERSION_MINOR 2)
|
||||
-set(CPACK_PACKAGE_VERSION_PATCH 1)
|
||||
-include(CPack)
|
||||
-export(TARGETS f2c blas lapack FILE clapack-targets.cmake)
|
||||
+export(TARGETS f2c lapack FILE ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-targets.cmake)
|
||||
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in
|
||||
- ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY)
|
||||
+ ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config-version.cmake @ONLY)
|
||||
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in
|
||||
- ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY)
|
||||
+ ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config.cmake @ONLY)
|
||||
+install(FILES
|
||||
+ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/clapack.h
|
||||
+ ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/f2c.h
|
||||
+ DESTINATION include)
|
||||
+
|
||||
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
|
||||
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)
|
||||
include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c)
|
||||
add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
|
||||
set_property(TARGET f2c PROPERTY PREFIX lib)
|
||||
+if(UNIX)
|
||||
+ target_link_libraries(f2c m)
|
||||
+endif()
|
||||
+install(TARGETS f2c
|
||||
+ RUNTIME DESTINATION bin
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ ARCHIVE DESTINATION lib)
|
||||
+
|
||||
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
|
||||
index ac4cce3..07dc8c7 100644
|
||||
--- a/SRC/CMakeLists.txt
|
||||
+++ b/SRC/CMakeLists.txt
|
||||
@@ -376,5 +376,9 @@ if(BUILD_COMPLEX16)
|
||||
set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX})
|
||||
endif()
|
||||
add_library(lapack ${ALLOBJ} ${ALLXOBJ})
|
||||
-target_link_libraries(lapack blas)
|
||||
+target_link_libraries(lapack ${BLAS_LIBRARIES} f2c)
|
||||
+install(TARGETS lapack
|
||||
+ RUNTIME DESTINATION bin
|
||||
+ LIBRARY DESTINATION lib
|
||||
+ ARCHIVE DESTINATION lib)
|
||||
|
||||
87
externals/vcpkg/ports/clapack/support-uwp.patch
vendored
Executable file
87
externals/vcpkg/ports/clapack/support-uwp.patch
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index db58b4e..0fb61a0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -15,6 +15,9 @@ if(NOT USE_BLAS_WRAP)
|
||||
# _zrotg_ seems to be missing in the wrap header
|
||||
add_definitions(-DNO_BLAS_WRAP)
|
||||
endif()
|
||||
+if (MSVC)
|
||||
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
+endif()
|
||||
include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
|
||||
add_subdirectory(F2CLIBS)
|
||||
add_subdirectory(SRC)
|
||||
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
|
||||
index 094614a..e5b40ab 100644
|
||||
--- a/F2CLIBS/libf2c/CMakeLists.txt
|
||||
+++ b/F2CLIBS/libf2c/CMakeLists.txt
|
||||
@@ -44,12 +44,19 @@ if(UNIX)
|
||||
endif()
|
||||
set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
|
||||
"NO_FPINIT;NO_LONG_LONG")
|
||||
+
|
||||
+if (ARITH_PATH)
|
||||
+configure_file(
|
||||
+ "${ARITH_PATH}"
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/arith.h"
|
||||
+ COPYONLY)
|
||||
+else()
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
|
||||
COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
|
||||
DEPENDS arithchk
|
||||
)
|
||||
-
|
||||
+endif()
|
||||
|
||||
set(OFILES ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT}
|
||||
${HALF} ${CMP} ${EFL} ${CHAR} ${I77} ${TIME})
|
||||
diff --git a/F2CLIBS/libf2c/inquire.c b/F2CLIBS/libf2c/inquire.c
|
||||
index 5936a67..4846d41 100644
|
||||
--- a/F2CLIBS/libf2c/inquire.c
|
||||
+++ b/F2CLIBS/libf2c/inquire.c
|
||||
@@ -32,7 +32,7 @@ integer f_inqu(inlist *a)
|
||||
{ byfile=1;
|
||||
g_char(a->infile,a->infilen,buf);
|
||||
#ifdef NON_UNIX_STDIO
|
||||
- x = access(buf,0) ? -1 : 0;
|
||||
+ x = _access(buf,0) ? -1 : 0;
|
||||
for(i=0,p=NULL;i<MXUNIT;i++)
|
||||
if(f__units[i].ufd != NULL
|
||||
&& f__units[i].ufnm != NULL
|
||||
diff --git a/F2CLIBS/libf2c/open.c b/F2CLIBS/libf2c/open.c
|
||||
index a06428d..9d08cf7 100644
|
||||
--- a/F2CLIBS/libf2c/open.c
|
||||
+++ b/F2CLIBS/libf2c/open.c
|
||||
@@ -48,7 +48,7 @@ f__bufadj(int n, int c)
|
||||
#endif
|
||||
{
|
||||
unsigned int len;
|
||||
- char *nbuf, *s, *t, *te;
|
||||
+ char *nbuf = NULL, *s = NULL, *t = NULL, *te = NULL;
|
||||
|
||||
if (f__buf == f__buf0)
|
||||
f__buflen = 1024;
|
||||
diff --git a/F2CLIBS/libf2c/rsne.c b/F2CLIBS/libf2c/rsne.c
|
||||
index e8e9dae..4d65436 100644
|
||||
--- a/F2CLIBS/libf2c/rsne.c
|
||||
+++ b/F2CLIBS/libf2c/rsne.c
|
||||
@@ -103,7 +103,7 @@ mk_hashtab(Namelist *nl)
|
||||
Vardesc *v, **vd, **vde;
|
||||
hashentry *he;
|
||||
|
||||
- hashtab **x, **x0, *y;
|
||||
+ hashtab **x = NULL, **x0 = NULL, *y = NULL;
|
||||
for(x = &nl_cache; y = *x; x0 = x, x = &y->next)
|
||||
if (nl == y->nl)
|
||||
return y;
|
||||
@@ -308,7 +308,7 @@ x_rsne(cilist *a)
|
||||
char buf[64];
|
||||
hashtab *ht;
|
||||
Vardesc *v;
|
||||
- dimen *dn, *dn0, *dn1;
|
||||
+ dimen *dn = NULL, *dn0 = NULL, *dn1;
|
||||
ftnlen *dims, *dims1;
|
||||
ftnlen b, b0, b1, ex, no, nomax, size, span;
|
||||
ftnint no1, no2, type;
|
||||
11
externals/vcpkg/ports/clapack/vcpkg-cmake-wrapper.cmake
vendored
Executable file
11
externals/vcpkg/ports/clapack/vcpkg-cmake-wrapper.cmake
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
message(STATUS "Using VCPKG FindLAPACK from package 'clapack'")
|
||||
set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
list(REMOVE_ITEM ARGS "NO_MODULE")
|
||||
list(REMOVE_ITEM ARGS "CONFIG")
|
||||
list(REMOVE_ITEM ARGS "MODULE")
|
||||
|
||||
_find_package(${ARGS})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH})
|
||||
10
externals/vcpkg/ports/clapack/vcpkg.json
vendored
Executable file
10
externals/vcpkg/ports/clapack/vcpkg.json
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "clapack",
|
||||
"version": "3.2.1",
|
||||
"port-version": 20,
|
||||
"description": "CLAPACK (f2c'ed version of LAPACK)",
|
||||
"homepage": "https://www.netlib.org/clapack",
|
||||
"dependencies": [
|
||||
"blas"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user