diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2019-11-22 09:47:40 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-22 09:47:40 -0800 |
| commit | 45f4b820e5743b89bca3508ba2028cdd5d8bbd17 (patch) | |
| tree | f874a8c4a7392309bdbb86447288597ec0a4a281 /ports/suitesparse | |
| parent | 62d67d3bf8eeff1afa8009041fd08b8822676b7b (diff) | |
| parent | 8831e8f25f1ff6546ee4a5291b91d599421637b3 (diff) | |
| download | vcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.tar.gz vcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.zip | |
Merge branch 'master' into vcpkg_nuget
Diffstat (limited to 'ports/suitesparse')
| -rw-r--r-- | ports/suitesparse/CONTROL | 2 | ||||
| -rw-r--r-- | ports/suitesparse/add-find-package-metis.patch | 46 | ||||
| -rw-r--r-- | ports/suitesparse/portfile.cmake | 16 | ||||
| -rw-r--r-- | ports/suitesparse/suitesparse.patch | 85 |
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 |
