diff --git a/ports/hypre/CONTROL b/ports/hypre/CONTROL index a4db2f1e76..63f36cd7bb 100644 --- a/ports/hypre/CONTROL +++ b/ports/hypre/CONTROL @@ -1,5 +1,5 @@ Source: hypre -Version: 2.11.2-3 +Version: 2.19.0 Homepage: https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods Description: SCALABLE LINEAR SOLVERS AND MULTIGRID METHODS -Build-Depends: mpi +Build-Depends: mpi, openblas, lapack diff --git a/ports/hypre/fix-blas-vs14-math.patch b/ports/hypre/fix-blas-vs14-math.patch deleted file mode 100644 index 424b16eb0e..0000000000 --- a/ports/hypre/fix-blas-vs14-math.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/src/blas/f2c.h Fri Sep 11 18:57:56 2015 -+++ b/src/blas/f2c.h Thu Dec 22 18:20:08 2016 -@@ -190,18 +190,18 @@ - typedef struct Namelist Namelist; - - /* The following undefs are to prevent conflicts with external libraries */ --#undef abs --#define abs(x) ((x) >= 0 ? (x) : -(x)) --#define dabs(x) (doublereal)abs(x) --#ifndef min --#define min(a,b) ((a) <= (b) ? (a) : (b)) --#define max(a,b) ((a) >= (b) ? (a) : (b)) --#endif --#define dmin(a,b) (doublereal)min(a,b) --#define dmax(a,b) (doublereal)max(a,b) --#define bit_test(a,b) ((a) >> (b) & 1) --#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) --#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) -+//#undef abs -+//#define abs(x) ((x) >= 0 ? (x) : -(x)) -+//#define dabs(x) (doublereal)abs(x) -+//#ifndef min -+//#define min(a,b) ((a) <= (b) ? (a) : (b)) -+//#define max(a,b) ((a) >= (b) ? (a) : (b)) -+//#endif -+//#define dmin(a,b) (doublereal)min(a,b) -+//#define dmax(a,b) (doublereal)max(a,b) -+//#define bit_test(a,b) ((a) >> (b) & 1) -+//#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) -+//#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) - - /* procedure parameter types for -A and -C++ */ - diff --git a/ports/hypre/fix-export-global-data-symbols.patch b/ports/hypre/fix-export-global-data-symbols.patch deleted file mode 100644 index 2714e365ac..0000000000 --- a/ports/hypre/fix-export-global-data-symbols.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/src/utilities/_hypre_utilities.h Thu Jun 09 15:56:18 2016 -+++ b/src/utilities/_hypre_utilities.h Wed Jan 04 18:08:27 2017 -@@ -13,6 +13,7 @@ - #ifndef hypre_UTILITIES_HEADER - #define hypre_UTILITIES_HEADER - -+#include "_hypre_export.h" - #include "HYPRE_utilities.h" - - #ifdef HYPRE_USING_OPENMP -@@ -610,7 +611,7 @@ - #ifdef HYPRE_TIMING_GLOBALS - hypre_TimingType *hypre_global_timing = NULL; - #else --extern hypre_TimingType *hypre_global_timing; -+extern HYPRE_EXPORT hypre_TimingType *hypre_global_timing; - #endif - - /*------------------------------------------------------- -@@ -781,7 +782,7 @@ - * Global variable used in hypre error checking - *--------------------------------------------------------------------------*/ - --extern HYPRE_Int hypre__global_error; -+extern HYPRE_EXPORT HYPRE_Int hypre__global_error; - #define hypre_error_flag hypre__global_error - - /*-------------------------------------------------------------------------- diff --git a/ports/hypre/fix-lapack-vs14-math.patch b/ports/hypre/fix-lapack-vs14-math.patch deleted file mode 100644 index 7be84aeb68..0000000000 --- a/ports/hypre/fix-lapack-vs14-math.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/src/lapack/f2c.h Fri Sep 11 18:57:56 2015 -+++ b/src/lapack/f2c.h Thu Dec 22 18:22:26 2016 -@@ -190,18 +190,18 @@ - typedef struct Namelist Namelist; - - /* The following undefs are to prevent conflicts with external libraries */ --#undef abs --#define abs(x) ((x) >= 0 ? (x) : -(x)) --#define dabs(x) (doublereal)abs(x) --#ifndef min --#define min(a,b) ((a) <= (b) ? (a) : (b)) --#define max(a,b) ((a) >= (b) ? (a) : (b)) --#endif --#define dmin(a,b) (doublereal)min(a,b) --#define dmax(a,b) (doublereal)max(a,b) --#define bit_test(a,b) ((a) >> (b) & 1) --#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) --#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) -+//#undef abs -+//#define abs(x) ((x) >= 0 ? (x) : -(x)) -+//#define dabs(x) (doublereal)abs(x) -+//#ifndef min -+//#define min(a,b) ((a) <= (b) ? (a) : (b)) -+//#define max(a,b) ((a) >= (b) ? (a) : (b)) -+//#endif -+//#define dmin(a,b) (doublereal)min(a,b) -+//#define dmax(a,b) (doublereal)max(a,b) -+//#define bit_test(a,b) ((a) >> (b) & 1) -+//#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) -+//#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) - - /* procedure parameter types for -A and -C++ */ - diff --git a/ports/hypre/fix-macro-to-template.patch b/ports/hypre/fix-macro-to-template.patch deleted file mode 100644 index ca98e5d703..0000000000 --- a/ports/hypre/fix-macro-to-template.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/src/struct_ls/pfmg3_setup_rap.c Thu Jun 09 15:56:18 2016 -+++ b/src/struct_ls/pfmg3_setup_rap.c Thu Dec 22 17:45:20 2016 -@@ -19,13 +19,28 @@ - * allow for coarsening to be done in the x- and y-directions also. - *--------------------------------------------------------------------------*/ - --#define MapIndex(in_index, cdir, out_index) \ -- hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 2); \ -- cdir = (cdir + 1) % 3; \ -- hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 0); \ -- cdir = (cdir + 1) % 3; \ -- hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 1); \ -- cdir = (cdir + 1) % 3; -+//#define MapIndex(in_index, cdir, out_index) \ -+// hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 2); \ -+// cdir = (cdir + 1) % 3; \ -+// hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 0); \ -+// cdir = (cdir + 1) % 3; \ -+// hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 1); \ -+// cdir = (cdir + 1) % 3; -+ -+template -+void MapIndex(T& in_index, U& cdir, V& out_index) -+{ -+ if(cdir > 3) cdir = cdir - (cdir / 3) * 3; -+ hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 2); -+ if(cdir == 3) cdir = 1; -+ else ++cdir; -+ hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 0); -+ if(cdir == 3) cdir = 1; -+ else ++cdir; -+ hypre_IndexD(out_index, cdir) = hypre_IndexD(in_index, 1); -+ if(cdir == 3) cdir = 1; -+ else ++cdir; -+} - - /*-------------------------------------------------------------------------- - * Sets up new coarse grid operator stucture. diff --git a/ports/hypre/fix-root-cmakelists.patch b/ports/hypre/fix-root-cmakelists.patch deleted file mode 100644 index b64914eb38..0000000000 --- a/ports/hypre/fix-root-cmakelists.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/src/CMakeLists.txt Mon Mar 13 21:37:24 2017 -+++ b/src/CMakeLists.txt Sun Aug 06 19:34:00 2017 -@@ -1,6 +1,8 @@ - cmake_minimum_required (VERSION 2.8.8) - project (hypre) - -+include(GenerateExportHeader) -+ - # The version number. - set (HYPRE_VERSION 2.11.2) - set (HYPRE_DATE 2017/03/13) -@@ -618,6 +620,8 @@ - struct_ls/sparse_msg_solve.c - ) - -+set_source_files_properties(struct_ls/pfmg3_setup_rap.c PROPERTIES LANGUAGE CXX) -+ - # Headers and sources: sstruct_mv - list (APPEND HYPRE_HEADERS - sstruct_mv/HYPRE_sstruct_mv.h -@@ -758,11 +762,11 @@ - find_package (MPI) - if ((MPI_C_FOUND) AND (NOT CMAKE_C_COMPILER STREQUAL MPI_C_COMPILER)) - include_directories (${MPI_C_INCLUDE_PATH}) -- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_C_COMPILE_FLAGS}") -+ #set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_C_COMPILE_FLAGS}") - endif () - if ((MPI_CXX_FOUND) AND (NOT CMAKE_CXX_COMPILER STREQUAL MPI_CXX_COMPILER)) - include_directories (${MPI_CXX_INCLUDE_PATH}) -- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MPI_CXX_COMPILE_FLAGS}") -+ #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MPI_CXX_COMPILE_FLAGS}") - endif () - endif (NOT HYPRE_SEQUENTIAL) - -@@ -807,7 +811,23 @@ - - add_library (HYPRE ${HYPRE_SOURCES} ${FEI_LIBS}) - --install (TARGETS HYPRE DESTINATION lib) -+if (NOT HYPRE_SEQUENTIAL) -+ target_link_libraries(HYPRE ${MPI_C_LIBRARIES}) -+endif() -+ -+if (WIN32 AND BUILD_SHARED_LIBS) -+ set_target_properties(HYPRE PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) -+endif() -+ -+generate_export_header(HYPRE EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/_hypre_export.h) -+list(APPEND HYPRE_HEADERS ${CMAKE_BINARY_DIR}/_hypre_export.h) -+ -+install (TARGETS HYPRE -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib -+) -+ - install (FILES ${HYPRE_HEADERS} DESTINATION include) - - # add_subdirectory (test EXCLUDE_FROM_ALL) diff --git a/ports/hypre/portfile.cmake b/ports/hypre/portfile.cmake index 92dd78a0d5..5d854d9852 100644 --- a/ports/hypre/portfile.cmake +++ b/ports/hypre/portfile.cmake @@ -1,20 +1,13 @@ -include(vcpkg_common_functions) +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() -vcpkg_download_distfile(ARCHIVE - URLS "http://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods/download/hypre-2.11.2.tar.gz" - FILENAME "hypre-2.11.2.tar.gz" - SHA512 a06321028121e5420fa944ce4fae5f9b96e6021ec2802e68ec3c349f19a20543ed7eff774a4735666c5807ce124eb571b3f86757c67e91faa1c683c3f657469f -) - -vcpkg_extract_source_archive_ex( - ARCHIVE ${ARCHIVE} +vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - PATCHES - fix-root-cmakelists.patch - fix-macro-to-template.patch - fix-blas-vs14-math.patch - fix-lapack-vs14-math.patch - fix-export-global-data-symbols.patch + REPO hypre-space/hypre + REF v2.19.0 + SHA512 999979bc2e7d32aef7c084fc8508fb818e6f904db0ee3ebf6b8e8132f290201c407aaba0aa89e7bf09e7264f4e99caf04f3147458847de816fc8ffc81dbee2df + HEAD_REF master ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -28,6 +21,8 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS ${OPTIONS} + -DHYPRE_ENABLE_HYPRE_BLAS=OFF + -DHYPRE_ENABLE_HYPRE_LAPACK=OFF OPTIONS_RELEASE -DHYPRE_BUILD_TYPE=Release -DHYPRE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR} @@ -39,7 +34,9 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/HYPRE) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright -file(COPY ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/hypre/copyright) +file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/superlu/CONTROL b/ports/superlu/CONTROL index 69d67385cc..4c7cc4b137 100644 --- a/ports/superlu/CONTROL +++ b/ports/superlu/CONTROL @@ -1,5 +1,7 @@ Source: superlu Version: 2020-01-07 +Port-Verison: 1 Build-Depends: openblas Description: Supernodal sparse direct solver. Homepage: https://github.com/xiaoyeli/superlu +Supports: !(uwp|arm) \ No newline at end of file diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 5e3d9e555e..611c612b91 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -571,9 +571,6 @@ libhsplasma:x64-windows-static=fail hwloc:arm64-windows=fail hwloc:arm-uwp=fail hwloc:x64-uwp=fail -# hypre has a conflict with 'superlu' port -hypre:x64-linux=skip -hypre:x64-osx=skip icu:arm64-windows=fail icu:arm-uwp=fail icu:x64-uwp=fail @@ -1667,26 +1664,6 @@ stxxl:x64-uwp=fail sundials:arm64-windows=fail sundials:x64-windows=fail sundials:x86-windows=fail -# Conflicts between ports: -#The following files are already installed in C:/agent/_work/1/s/installed/x64-windows-static -# and are in conflict with superlu:x64-windows-static -# -#Installed by hypre:x64-windows-static -# include/slu_Cnames.h -# include/slu_cdefs.h -# include/slu_dcomplex.h -# include/slu_ddefs.h -# include/slu_scomplex.h -# include/slu_sdefs.h -# include/slu_util.h -# include/slu_zdefs.h -# include/supermatrix.h -superlu:arm-uwp=skip -superlu:arm-windows=skip -superlu:arm64-windows=skip -superlu:x64-uwp=skip -superlu:x64-windows-static=skip -superlu:x64-windows=skip systemc:arm64-windows=fail systemc:arm-uwp=fail systemc:x64-uwp=fail