diff options
| author | Stefano Sinigardi <stesinigardi@hotmail.com> | 2019-06-01 00:48:17 +0200 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-05-31 15:48:17 -0700 |
| commit | 5898891125b00a3ec2b698bc496735ab997669f5 (patch) | |
| tree | ea6f52bc69dec26f7c88d6766234a7c507607a06 /ports/suitesparse | |
| parent | 26a9338c5055193915290527eacb37f2ac7fdcb8 (diff) | |
| download | vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.tar.gz vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.zip | |
[openexr,openimageio,suitesparse,theia] updates for non-win32 (#6371)
* [openexr,openimageio,suitesparse,theia] updates for non-win32
* [theia] use only valid cmake symbols
* [suitesparse] Fix build
* [lapack] still not properly integrating with other ports
* [lapack] intercept cmake module calls and substitute them with our defs
* [suitesparse,clapack] fixes for proper integration
* [ceres,clapack] bump CONTROL
* [suitesparse] remove unnecessary defs
* [clapack] improve wrapper logic
* [WIN32] remove wrong symbol
* [clapack] fix wrapper integration
* [Accelerate] use best framework when available
* [clapack] separate config from wrapper
* [clapack] fix paths and filenames
* [mlpack,armadillo,clapack] improve library handling
* [mlpack] remove unnecessary cmake option
* [clp,coinutils,osi,liblemon] dependencies of openmvg, improve compatibility with non-win32
* [openmvg] fix for case-sensitive filesystems
* [clp,coinutils,osi] simplify CMakeLists removing many unnecessary steps
* [sophus] Force rebuild
* [theia] fixes for linux, part1
* [io2d] remove broken sintax
* [fontconfig] bump version to remove CI cached failure
* [theia] fixes for linux, part2
* [theia] remove unnecessary empty folders and comments from portfile
* [theia] use correct build type removing forced vars in cmakelists.txt
* [openmvg] add missing suitesparse target detection
* [sophus] fix Suitesparse dependency
* [sophus,openmvg] use suitesparse lowercase for module compatibility on case-sensitive filesystems
* [suitesparse] fixes for case-sensitive filesystems
* [openmvg] use correct Eigen3 name for case-sensitive filesystems
* [sophus] trigger rebuild
* [shogun] use modern vcpkg style
* [shogun] add missing cmake system processor symbol
Diffstat (limited to 'ports/suitesparse')
| -rw-r--r-- | ports/suitesparse/CONTROL | 2 | ||||
| -rw-r--r-- | ports/suitesparse/fix-install-suitesparse.patch | 29 | ||||
| -rw-r--r-- | ports/suitesparse/portfile.cmake | 77 | ||||
| -rw-r--r-- | ports/suitesparse/remove-debug-postfix.patch | 11 | ||||
| -rw-r--r-- | ports/suitesparse/suitesparse.patch | 73 |
5 files changed, 105 insertions, 87 deletions
diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL index 43621f9fe..5182a90cd 100644 --- a/ports/suitesparse/CONTROL +++ b/ports/suitesparse/CONTROL @@ -1,5 +1,5 @@ Source: suitesparse -Version: 5.1.2-2 +Version: 5.4.0-1 Build-Depends: clapack (!osx) Description: algebra library diff --git a/ports/suitesparse/fix-install-suitesparse.patch b/ports/suitesparse/fix-install-suitesparse.patch deleted file mode 100644 index a5b5400fa..000000000 --- a/ports/suitesparse/fix-install-suitesparse.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8227298..c0eb354 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -222,7 +222,7 @@ ELSE() - ENDIF() - ENDIF() - --IF(BUILD_METIS) -+IF(BUILD_METIS OR USE_VCPKG_METIS) - set(SuiteSparse_LINKER_METIS_LIBS "metis") - else() - set(SuiteSparse_LINKER_METIS_LIBS "") -diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt -index 7361363..8a48cf3 100644 ---- a/SuiteSparse/CMakeLists.txt -+++ b/SuiteSparse/CMakeLists.txt -@@ -10,7 +10,11 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug") - IF (BUILD_METIS) - INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include") - ELSE (BUILD_METIS) -+ IF(USE_VCPKG_METIS) -+ INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include") -+ ELSE (USE_VCPKG_METIS) - ADD_DEFINITIONS(-DNPARTITION) -+ ENDIF(USE_VCPKG_METIS) - ENDIF ( BUILD_METIS) - - # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms. diff --git a/ports/suitesparse/portfile.cmake b/ports/suitesparse/portfile.cmake index 45ad7a6e5..a527f8825 100644 --- a/ports/suitesparse/portfile.cmake +++ b/ports/suitesparse/portfile.cmake @@ -2,83 +2,68 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) -set(SUITESPARSE_VER SuiteSparse-5.1.2) #if you change the version, becarefull of changing the SHA512 checksum accordingly +set(SUITESPARSE_VER 5.4.0) set(SUITESPARSEWIN_VER 1.4.0) -set(SUITESPARSEWIN_PATH ${CURRENT_BUILDTREES_DIR}/src/suitesparse-metis-for-windows-${SUITESPARSEWIN_VER}) -set(SUITESPARSE_PATH ${SUITESPARSEWIN_PATH}/SuiteSparse) -#download suitesparse libary vcpkg_download_distfile(SUITESPARSE - URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/${SUITESPARSE_VER}.tar.gz" - FILENAME "${SUITESPARSE_VER}.tar.gz" - SHA512 38c7f9847cf161390f73de39ed3d9fd07f7bcec2d6d4e6f141af6a015826215843db9f2e16ca255eeb233c593ffc19ffa04816aa5b6ba200b55b9472ac33ba85 + URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${SUITESPARSE_VER}.tar.gz" + FILENAME "SuiteSparse-${SUITESPARSE_VER}.tar.gz" + SHA512 8328bcc2ef5eb03febf91b9c71159f091ff405c1ba7522e53714120fcf857ceab2d2ecf8bf9a2e1fc45e1a934665a341e3a47f954f87b59934f4fce6164775d6 ) -#download suitesparse-metis-for-windows scripts, suitesparse does not have CMake build system, jlblancoc has made one for it -vcpkg_download_distfile(SUITESPARSEWIN - URLS "https://github.com/jlblancoc/suitesparse-metis-for-windows/archive/v${SUITESPARSEWIN_VER}.zip" - FILENAME "suitesparse-metis-for-windows-${SUITESPARSEWIN_VER}.zip" - SHA512 2859d534200ab9b76fca1530eae5de2f9328aa867c727dbc83a96c6f16e1f87e70123fb2decbb84531d75dac58b6f0ce7323e48c57aeede324fd9a1f77ba74c6 +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${SUITESPARSE} ) -#extract suitesparse-metis-for-windows first and merge with suitesparse library -vcpkg_extract_source_archive(${SUITESPARSEWIN}) -vcpkg_extract_source_archive(${SUITESPARSE} ${SUITESPARSEWIN_PATH}) - -vcpkg_apply_patches( - SOURCE_PATH ${SUITESPARSEWIN_PATH} +vcpkg_from_github( + OUT_SOURCE_PATH SUITESPARSEWIN_SOURCE_PATH + REPO jlblancoc/suitesparse-metis-for-windows + REF v${SUITESPARSEWIN_VER} + SHA512 35a2563d6e33ebe8157f8d023167abd8d2512e2a627b8dbea798c59afefc56b8f01c7d10553529b03a7b4759e200ca82bb26ebce5cefce6983ffb057a8622162 + HEAD_REF master PATCHES - remove-debug-postfix.patch + suitesparse.patch ) +# Copy suitesparse sources. +message(STATUS "Copying SuiteSparse source files...") +# Should probably remove everything but CMakeLists.txt files? +file(GLOB SUITESPARSE_SOURCE_FILES ${SOURCE_PATH}/*) +foreach(SOURCE_FILE ${SUITESPARSE_SOURCE_FILES}) + file(COPY ${SOURCE_FILE} DESTINATION "${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse") +endforeach() +message(STATUS "Copying SuiteSparse source files... done") + set(USE_VCPKG_METIS OFF) if("metis" IN_LIST FEATURES) set(USE_VCPKG_METIS ON) + set(ADDITIONAL_BUILD_OPTIONS "-DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}") endif() -if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(LIB_EXT a) - set(LIB_PREFIX lib) -else() - set(LIB_EXT lib) - set(LIB_PREFIX) -endif() - -if(WIN32) - set(ENABLE_CUSTOM_BLAS_LAPACK_PATHS "-DSUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS=ON") - set(SUITESPARSE_CUSTOM_BLAS_PATH "-DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/lib/openblas.lib") - set(SUITESPARSE_CUSTOM_LAPACK_PATH "-DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/lib/lapack.lib") -endif() - -message(STATUS "Use CMakeLists.txt in ${SUITESPARSEWIN_PATH}") vcpkg_configure_cmake( - SOURCE_PATH ${SUITESPARSEWIN_PATH} + SOURCE_PATH ${SUITESPARSEWIN_SOURCE_PATH} PREFER_NINJA OPTIONS -DBUILD_METIS=OFF -DUSE_VCPKG_METIS=${USE_VCPKG_METIS} - -DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR} - -DSUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS=ON + ${ADDITIONAL_BUILD_OPTIONS} OPTIONS_DEBUG - -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug - -DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/${LIB_PREFIX}openblas_d.${LIB_EXT} - -DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/${LIB_PREFIX}lapack.${LIB_EXT} + -DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}/debug" OPTIONS_RELEASE - -DSUITESPARSE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR} - -DSUITESPARSE_CUSTOM_BLAS_LIB=${CURRENT_INSTALLED_DIR}/lib/${LIB_PREFIX}openblas.${LIB_EXT} - -DSUITESPARSE_CUSTOM_LAPACK_LIB=${CURRENT_INSTALLED_DIR}/lib/${LIB_PREFIX}lapack.${LIB_EXT} + -DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}" ) vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake") +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/suitesparse-${SUITESPARSE_VER}" TARGET_PATH "share/suitesparse") #clean folders file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright of suitesparse and suitesparse-metis-for-windows -file(COPY ${SUITESPARSE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) +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_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/suitesparse) +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) diff --git a/ports/suitesparse/remove-debug-postfix.patch b/ports/suitesparse/remove-debug-postfix.patch deleted file mode 100644 index 1b41139da..000000000 --- a/ports/suitesparse/remove-debug-postfix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- CMakeLists.txt Mon Feb 22 22:18:25 2016 -+++ CMakeLists.txt Wed Jul 05 14:14:21 2017 -@@ -35,7 +35,7 @@ - - # We want libraries to be named "libXXX" and "libXXXd" in all compilers: - # ------------------------------------------------------------------------ --set(CMAKE_DEBUG_POSTFIX "d") -+#set(CMAKE_DEBUG_POSTFIX "d") - IF(MSVC) - set(SP_LIB_PREFIX "lib") # Libs are: "libXXX" - ENDIF(MSVC) diff --git a/ports/suitesparse/suitesparse.patch b/ports/suitesparse/suitesparse.patch new file mode 100644 index 000000000..394355606 --- /dev/null +++ b/ports/suitesparse/suitesparse.patch @@ -0,0 +1,73 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3486f05..98badb6 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)") + endif() + +-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 + ## do the EXPORT for allowing other project to easily use suitesparse with cmake + install(EXPORT SuiteSparseTargets + FILE +- SuiteSparse-targets.cmake ++ suitesparse-targets.cmake + NAMESPACE + SuiteSparse:: + DESTINATION +diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt +index c6e2834..5ef08a6 100644 +--- a/SuiteSparse/CMakeLists.txt ++++ b/SuiteSparse/CMakeLists.txt +@@ -12,11 +12,11 @@ IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug") + ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug") + + # Global flags: +-IF (BUILD_METIS) ++IF (BUILD_METIS OR USE_VCPKG_METIS) + INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include") +-ELSE (BUILD_METIS) ++ELSE () + ADD_DEFINITIONS(-DNPARTITION) +-ENDIF ( BUILD_METIS) ++ENDIF () + + # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms. + SET(HAVE_COMPLEX OFF CACHE BOOL "Enables building SuiteSparse with complex numbers (disabled by default to avoid problems in some platforms)") +diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in +index cb1f51f..49387b8 100644 +--- a/cmake/SuiteSparse-config-install.cmake.in ++++ b/cmake/SuiteSparse-config-install.cmake.in +@@ -4,13 +4,10 @@ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_SELF_DIR}" PATH) + get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH) + get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH) + +-find_package(LAPACK CONFIG) +-if (NOT LAPACK_FOUND) # Load the LAPACK package with which we were built. +- @ExternConfig@ +-endif () ++find_package(LAPACK REQUIRED) + + # Load targets from the install tree. +-include(${_SuiteSparse_SELF_DIR}/SuiteSparse-targets.cmake) ++include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake) + + # Report SuiteSparse header search locations. + set(SuiteSparse_INCLUDE_DIRS ${_SuiteSparse_PREFIX}/include) +@@ -31,6 +28,11 @@ set(SuiteSparse_LIBRARIES + SuiteSparse::spqr + @SuiteSparse_EXPORTED_METIS_LIBS@ + ) ++set(SUITESPARSE_LIBRARIES ${SuiteSparse_LIBRARIES}) + + unset(_SuiteSparse_PREFIX) + unset(_SuiteSparse_SELF_DIR) ++ ++set(SUITESPARSE_FOUND TRUE) ++set(SuiteSparse_FOUND TRUE) ++ |
