Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
69 changes: 30 additions & 39 deletions ports/clapack/FindLAPACK.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,43 @@
#
# The module defines the same outputs as FindLAPACK by cmake

include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
# clapack config is installed together with this module,
# and it handles the BLAS dependency.
find_package(clapack CONFIG REQUIRED)
if(NOT TARGET lapack)
message(FATAL_ERROR "Target lapack was not created by find_package(clapack)!")
endif()
if(NOT TARGET f2c)
message(FATAL_ERROR "Target f2c was not created by find_package(clapack)!")
endif()

set(CLAPACK_VERSION "3.2.1")
set(CLAPACK_VERSION "${clapack_VERSION}")
set(LAPACK_VERSION "${CLAPACK_VERSION}")
#set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)

find_package(clapack CONFIG REQUIRED) # This will be found !
include(SelectLibraryConfigurations)
include(FindPackageHandleStandardArgs)

if(NOT TARGET lapack)
message(FATAL_ERROR "Target lapack was not created by find_package(clapack)!")
get_property(LAPACK_INCLUDE_DIR TARGET lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES) # Doesn't make much sense but ok.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review note: This used to be below so the "Doesn't make much sense but ok." comment that doesn't make much sense is the status quo.

No change requested.

get_property(LAPACK_LIBRARY_RELEASE TARGET lapack PROPERTY IMPORTED_LOCATION_RELEASE)
get_property(LAPACK_LIBRARY_DEBUG TARGET lapack PROPERTY IMPORTED_LOCATION_DEBUG)
select_library_configurations(LAPACK)

get_property(LAPACK_F2C_LIBRARY_RELEASE TARGET f2c PROPERTY IMPORTED_LOCATION_RELEASE)
get_property(LAPACK_F2C_LIBRARY_DEBUG TARGET f2c PROPERTY IMPORTED_LOCATION_DEBUG)
select_library_configurations(LAPACK_F2C)

list(APPEND LAPACK_LIBRARIES ${LAPACK_F2C_LIBRARIES} ${BLAS_LIBRARIES})
if(UNIX)
list(APPEND LAPACK_LIBRARIES "m")
endif()
set(LAPACK95_LIBRARIES "${LAPACK_LIBRARIES}")
set(LAPACK95_FOUND "TRUE")
set(LAPACK_LINKER_FLAGS "")

if(NOT TARGET LAPACK::LAPACK)
add_library(LAPACK::LAPACK INTERFACE IMPORTED)
target_link_libraries(LAPACK::LAPACK INTERFACE lapack)

set(lib_prop IMPORTED_LOCATION)
#if(@VCPKG_LIBRARY_LINKAGE@ STREQUAL "dynamic" AND WIN32)
# set(lib_prop IMPORTED_IMPLIB)
#endif()

get_property(LAPACK_LIBRARY_RELEASE TARGET lapack PROPERTY ${lib_prop}_RELEASE)
get_property(LAPACK_LIBRARY_DEBUG TARGET lapack PROPERTY ${lib_prop}_DEBUG)

get_property(LAPACK_INCLUDE_DIR TARGET lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES) # Doesn't make much sense but ok.
select_library_configurations(LAPACK)

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)
if(TARGET f2c)
get_property(LAPACK_F2C_LIBRARY_RELEASE TARGET f2c PROPERTY ${lib_prop}_RELEASE)
get_property(LAPACK_F2C_LIBRARY_DEBUG TARGET f2c PROPERTY ${lib_prop}_DEBUG)
list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE REPLACE "^f2c$" "${LAPACK_F2C_LIBRARY_RELEASE}")
list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG REPLACE "^f2c$" "${LAPACK_F2C_LIBRARY_DEBUG}")
endif()
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 ">")

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)

find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
86 changes: 86 additions & 0 deletions ports/clapack/cmake.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 320ccc6..31a4083 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 3.10)
project(CLAPACK C)
enable_testing()
include(CTest)
@@ -19,16 +19,21 @@ if(NOT USE_BLAS_WRAP)
endif()
include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
add_subdirectory(F2CLIBS)
-add_subdirectory(BLAS)
+find_package(BLAS REQUIRED)
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)
+install(EXPORT clapack-targets
+ FILE clapack-targets.cmake
+ DESTINATION share/clapack
+ )
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in
${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY)
configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in
${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY)
+install(FILES ${CLAPACK_BINARY_DIR}/clapack-config.cmake ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake
+ DESTINATION share/clapack
+ )
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
index 43d7b3f..0e988d1 100644
--- a/F2CLIBS/libf2c/CMakeLists.txt
+++ b/F2CLIBS/libf2c/CMakeLists.txt
@@ -60,3 +60,16 @@ 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 PRIVATE m)
+endif()
+install(TARGETS f2c
+ EXPORT clapack-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ INCLUDES DESTINATION include
+ )
+install(FILES ${PROJECT_SOURCE_DIR}/INCLUDE/f2c.h
+ DESTINATION include
+)
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
index ac4cce3..746ebe5 100644
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -376,5 +376,14 @@ if(BUILD_COMPLEX16)
set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX})
endif()
add_library(lapack ${ALLOBJ} ${ALLXOBJ})
-target_link_libraries(lapack blas)
-
+target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES} f2c)
+install(TARGETS lapack
+ EXPORT clapack-targets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ INCLUDES DESTINATION include
+ )
+install(FILES ${PROJECT_SOURCE_DIR}/INCLUDE/clapack.h
+ DESTINATION include
+)
diff --git a/clapack-config.cmake.in b/clapack-config.cmake.in
index cd19f1d..7fa272f 100644
--- a/clapack-config.cmake.in
+++ b/clapack-config.cmake.in
@@ -1 +1,3 @@
-include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake")
+include(CMakeFindDependencyMacro)
+find_dependency(BLAS)
+include("${CMAKE_CURRENT_LIST_DIR}/clapack-targets.cmake")
7 changes: 0 additions & 7 deletions ports/clapack/fix-ConfigFile.patch

This file was deleted.

45 changes: 0 additions & 45 deletions ports/clapack/fix-install.patch

This file was deleted.

13 changes: 4 additions & 9 deletions ports/clapack/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ vcpkg_extract_source_archive(
SOURCE_PATH
ARCHIVE "${ARCHIVE}"
PATCHES
remove_internal_blas.patch
fix-ConfigFile.patch
fix-install.patch
support-uwp.patch
cmake.diff
support-uwp.patch
)

set(ARITH_PATH)
Expand Down Expand Up @@ -52,14 +50,11 @@ vcpkg_cmake_configure(

vcpkg_cmake_install()
vcpkg_copy_pdbs()

#TODO: fix the official exported targets, since they are broken (luckily it seems that no-one uses them for now)
vcpkg_cmake_config_fixup(CONFIG_PATH share/clapack)
vcpkg_cmake_config_fixup()

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/${PORT}/wrapper")
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")

file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
77 changes: 0 additions & 77 deletions ports/clapack/remove_internal_blas.patch

This file was deleted.

17 changes: 8 additions & 9 deletions ports/clapack/support-uwp.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index db58b4e..0fb61a0 100644
index 31a4083..ced7a68 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,6 +15,9 @@ if(NOT USE_BLAS_WRAP)
@@ -17,6 +17,9 @@ if(NOT USE_BLAS_WRAP)
# _zrotg_ seems to be missing in the wrap header
add_definitions(-DNO_BLAS_WRAP)
endif()
Expand All @@ -11,17 +11,17 @@ index db58b4e..0fb61a0 100644
+endif()
include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
add_subdirectory(F2CLIBS)
add_subdirectory(SRC)
find_package(BLAS REQUIRED)
diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
index 094614a..e5b40ab 100644
index 0e988d1..23d2451 100644
--- a/F2CLIBS/libf2c/CMakeLists.txt
+++ b/F2CLIBS/libf2c/CMakeLists.txt
@@ -44,12 +44,19 @@ if(UNIX)
@@ -44,11 +44,19 @@ if(UNIX)
endif()
set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
"NO_FPINIT;NO_LONG_LONG")
+
+if (ARITH_PATH)
+
+if(ARITH_PATH)
+configure_file(
+ "${ARITH_PATH}"
+ "${CMAKE_CURRENT_BINARY_DIR}/arith.h"
Expand All @@ -32,11 +32,10 @@ index 094614a..e5b40ab 100644
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
Expand Down
8 changes: 4 additions & 4 deletions ports/clapack/vcpkg-cmake-wrapper.cmake
Original file line number Diff line number Diff line change
@@ -1,11 +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})
message(STATUS "Using vcpkg FindLAPACK.cmake from port '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})
_find_package(${ARGS} MODULE)

set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH})
Loading