aboutsummaryrefslogtreecommitdiff
path: root/ports/suitesparse
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2019-11-22 09:47:40 -0800
committerGitHub <noreply@github.com>2019-11-22 09:47:40 -0800
commit45f4b820e5743b89bca3508ba2028cdd5d8bbd17 (patch)
treef874a8c4a7392309bdbb86447288597ec0a4a281 /ports/suitesparse
parent62d67d3bf8eeff1afa8009041fd08b8822676b7b (diff)
parent8831e8f25f1ff6546ee4a5291b91d599421637b3 (diff)
downloadvcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.tar.gz
vcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.zip
Merge branch 'master' into vcpkg_nuget
Diffstat (limited to 'ports/suitesparse')
-rw-r--r--ports/suitesparse/CONTROL2
-rw-r--r--ports/suitesparse/add-find-package-metis.patch46
-rw-r--r--ports/suitesparse/portfile.cmake16
-rw-r--r--ports/suitesparse/suitesparse.patch85
4 files changed, 136 insertions, 13 deletions
diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL
index 352a28a6d..fa269b668 100644
--- a/ports/suitesparse/CONTROL
+++ b/ports/suitesparse/CONTROL
@@ -1,5 +1,5 @@
Source: suitesparse
-Version: 5.4.0-1
+Version: 5.4.0-4
Build-Depends: clapack (!osx)
Homepage: http://faculty.cse.tamu.edu/davis/SuiteSparse
Description: algebra library
diff --git a/ports/suitesparse/add-find-package-metis.patch b/ports/suitesparse/add-find-package-metis.patch
new file mode 100644
index 000000000..297309ea0
--- /dev/null
+++ b/ports/suitesparse/add-find-package-metis.patch
@@ -0,0 +1,46 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b8c2e63..d443390 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -199,12 +199,15 @@ if(LAPACK_FOUND AND BLAS_FOUND)
+ endif() # LAPACK is not found
+
+ IF(BUILD_METIS OR USE_VCPKG_METIS)
++ find_package(metis REQUIRED)
+ set(SuiteSparse_LINKER_METIS_LIBS "metis")
+ ## namespaced library target for config
+- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
++ set(SuiteSparse_EXPORTED_METIS_LIBS "metis")
++ set(SuiteSparse_FIND_PACKAGE_METIS "find_package(metis REQUIRED)")
+ else()
+ set(SuiteSparse_LINKER_METIS_LIBS "")
+ set(SuiteSparse_EXPORTED_METIS_LIBS "")
++ set(SuiteSparse_FIND_PACKAGE_METIS "")
+ ENDIF()
+
+ add_subdirectory(SuiteSparse)
+diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
+index 5ef08a6..6c7abfd 100644
+--- a/SuiteSparse/CMakeLists.txt
++++ b/SuiteSparse/CMakeLists.txt
+@@ -13,7 +13,7 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
+
+ # Global flags:
+ IF (BUILD_METIS OR USE_VCPKG_METIS)
+- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
++ #INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
+ ELSE ()
+ ADD_DEFINITIONS(-DNPARTITION)
+ ENDIF ()
+diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
+index 49387b8..553d9c7 100644
+--- a/cmake/SuiteSparse-config-install.cmake.in
++++ b/cmake/SuiteSparse-config-install.cmake.in
+@@ -5,6 +5,7 @@ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
+ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
+
+ find_package(LAPACK REQUIRED)
++@SuiteSparse_FIND_PACKAGE_METIS@
+
+ # Load targets from the install tree.
+ include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
diff --git a/ports/suitesparse/portfile.cmake b/ports/suitesparse/portfile.cmake
index a527f8825..6dcf20239 100644
--- a/ports/suitesparse/portfile.cmake
+++ b/ports/suitesparse/portfile.cmake
@@ -24,6 +24,7 @@ vcpkg_from_github(
HEAD_REF master
PATCHES
suitesparse.patch
+ add-find-package-metis.patch
)
# Copy suitesparse sources.
@@ -34,6 +35,10 @@ foreach(SOURCE_FILE ${SUITESPARSE_SOURCE_FILES})
file(COPY ${SOURCE_FILE} DESTINATION "${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse")
endforeach()
message(STATUS "Copying SuiteSparse source files... done")
+message(STATUS "Removing integrated lapack and metis libs...")
+file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/lapack_windows)
+file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/metis)
+message(STATUS "Removing integrated lapack and metis libs... done")
set(USE_VCPKG_METIS OFF)
if("metis" IN_LIST FEATURES)
@@ -56,14 +61,9 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/suitesparse-${SUITESPARSE_VER}" TARGET_PATH "share/suitesparse")
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/suitesparse-${SUITESPARSE_VER})
-#clean folders
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Handle copyright of suitesparse and suitesparse-metis-for-windows
-file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright)
-
-file(COPY ${SUITESPARSEWIN_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/suitesparse/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/suitesparse/copyright_suitesparse-metis-for-windows)
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse RENAME copyright)
+file(INSTALL ${SUITESPARSEWIN_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse RENAME copyright_suitesparse-metis-for-windows)
diff --git a/ports/suitesparse/suitesparse.patch b/ports/suitesparse/suitesparse.patch
index 394355606..e26a5b8cb 100644
--- a/ports/suitesparse/suitesparse.patch
+++ b/ports/suitesparse/suitesparse.patch
@@ -1,17 +1,82 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3486f05..98badb6 100644
+index 3486f05..b8c2e63 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -252,7 +252,7 @@ if(SuiteSparse_LAPACK_BLAS_LIB_DIR) # "Export" the imported targets in config.cm
- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.lib)")
+@@ -191,68 +191,14 @@ if(WITH_CUDA)
+ ENDIF(${CUDA_FOUND})
endif()
+-find_package(BLAS)
+-find_package(LAPACK)
+-if (LAPACK_FOUND AND BLAS_FOUND)
++find_package(BLAS REQUIRED)
++find_package(LAPACK REQUIRED)
++if(LAPACK_FOUND AND BLAS_FOUND)
+ message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
+ set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+-else () # LAPACK is not found
+-
+-## Need to use SuiteSparse_LINKER_LAPACK_BLAS_LIBS in our subproject in case of SHARED flag is set to ON
+-SET(SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS OFF CACHE BOOL "Check if you have custom LAPACK/BLAS libraries (AMD,...)")
+-IF (SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS)
+- SET(SUITESPARSE_CUSTOM_BLAS_LIB "" CACHE FILE "Path to custom library file for BLAS")
+- SET(SUITESPARSE_CUSTOM_LAPACK_LIB "" CACHE FILE "Path to custom library file for LAPACK")
+- IF (NOT EXISTS "${SUITESPARSE_CUSTOM_BLAS_LIB}" OR NOT EXISTS "${SUITESPARSE_CUSTOM_LAPACK_LIB}")
+- MESSAGE("*Error*: Correctly set SUITESPARSE_CUSTOM_BLAS_LIB and SUITESPARSE_CUSTOM_LAPACK_LIB or uncheck SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS")
+- ELSE()
+- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${SUITESPARSE_CUSTOM_BLAS_LIB} ${SUITESPARSE_CUSTOM_LAPACK_LIB})
+- ENDIF()
+-ELSE()
+- IF (UNIX)
+- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS lapack blas rt)
+- ELSE()
+- IF(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
+- set(PATH_WORD_SIZE "x64")
+- ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
+- set(PATH_WORD_SIZE "x32")
+- ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
+-
+- add_library(blas SHARED IMPORTED)
+- set_property(TARGET blas PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.dll)
+- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.lib)
+-
+- add_library(lapack SHARED IMPORTED)
+- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.dll)
+- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.lib)
+-
+- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS blas lapack)
+-
+- ## install lapack and blas dependencies
+- file(GLOB lapack_blas_windows_libs "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.lib")
+- file(GLOB lapack_blas_windows_dll "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.dll")
+- if(lapack_blas_windows_dll AND lapack_blas_windows_libs)
+- set(SuiteSparse_LAPACK_BLAS_LIB_DIR "lib${LIB_POSTFIX}/lapack_blas_windows")
+- install(FILES ${lapack_blas_windows_libs}
+- ${lapack_blas_windows_dll}
+- DESTINATION ${SuiteSparse_LAPACK_BLAS_LIB_DIR}
+- )
+- endif()
+- ENDIF()
+-ENDIF()
+-ENDIF() # LAPACK found
+-
+-if(SuiteSparse_LAPACK_BLAS_LIB_DIR) # "Export" the imported targets in config.cmake manually
+- set(ExternConfig "add_library(blas SHARED IMPORTED)
+- set_property(TARGET blas PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.dll)
+- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.lib)
+-
+- add_library(lapack SHARED IMPORTED)
+- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.dll)
+- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.lib)")
+-endif()
++endif() # LAPACK is not found
+
-IF(BUILD_METIS)
+IF(BUILD_METIS OR USE_VCPKG_METIS)
set(SuiteSparse_LINKER_METIS_LIBS "metis")
## namespaced library target for config
set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
-@@ -311,7 +311,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
+@@ -311,7 +257,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
## do the EXPORT for allowing other project to easily use suitesparse with cmake
install(EXPORT SuiteSparseTargets
FILE
@@ -20,6 +85,18 @@ index 3486f05..98badb6 100644
NAMESPACE
SuiteSparse::
DESTINATION
+diff --git a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
+index aef3e63..907512b 100644
+--- a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
++++ b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
+@@ -27,6 +27,7 @@
+ #elif defined (__linux) || defined (MGLNX86) || defined (ARCH_GLNX86)
+ #define CHOLMOD_LINUX
+ #define CHOLMOD_ARCHITECTURE "Linux"
++#define BLAS_NO_UNDERSCORE
+
+ #elif defined (__APPLE__)
+ #define CHOLMOD_MAC
diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
index c6e2834..5ef08a6 100644
--- a/SuiteSparse/CMakeLists.txt