[gklib,metis,parmetis] Update, align, cleanup (#46692)

This commit is contained in:
Kai Pastor
2025-08-02 03:57:19 +02:00
committed by GitHub
parent 81091777f5
commit 51d6ada218
15 changed files with 187 additions and 183 deletions

View File

@@ -1,14 +0,0 @@
diff --git a/GKlibSystem.cmake b/GKlibSystem.cmake
index 31a1cf1..848fd05 100644
--- a/GKlibSystem.cmake
+++ b/GKlibSystem.cmake
@@ -113,7 +113,9 @@ endif(GKRAND)
# Check for features.
+if(NOT ANDROID OR ANDROID_NATIVE_API_LEVEL GREATER 32)
check_include_file(execinfo.h HAVE_EXECINFO_H)
+endif()
if(HAVE_EXECINFO_H)
set(GKlib_COPTIONS "${GKlib_COPTIONS} -DHAVE_EXECINFO_H")
endif(HAVE_EXECINFO_H)

View File

@@ -1,34 +1,24 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9cd1b4b..3912b26 100644
index 6a9a694..fd3705e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.22)
project(GKlib C)
@@ -163,11 +163,6 @@ target_compile_definitions(${PROJECT_NAME}
target_compile_options(${PROJECT_NAME}
PUBLIC $<$<AND:$<BOOL:${GPROF}>,$<BOOL:${HAVE_GPROF_SUPPORT}>>:-pg>)
option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF)
@@ -22,10 +22,11 @@ if(UNIX)
target_link_libraries(GKlib m)
endif(UNIX)
-target_compile_options(${PROJECT_NAME}
- PUBLIC $<$<AND:$<OR:$<BOOL:${DEBUG}>,$<BOOL:${GDB}>>,$<BOOL:${HAVE_GDB_SUPPORT}>>:-g>)
-
-target_compile_options(${PROJECT_NAME}
- PUBLIC $<$<NOT:$<OR:$<BOOL:${DEBUG}>,$<BOOL:${GDB}>>>:-O3>)
-include_directories("test")
-add_subdirectory("test")
install(TARGETS GKlib
- ARCHIVE DESTINATION lib/${LINSTALL_PATH}
- LIBRARY DESTINATION lib/${LINSTALL_PATH})
+ EXPORT GKlibTargets
+ INCLUDES DESTINATION "include/GKlib"
+)
+install(EXPORT GKlibTargets FILE "GKlibConfig.cmake" DESTINATION "share/gklib")
+install(FILES "win32/adapt.h" DESTINATION "include/${HINSTALL_PATH}/win32")
install(FILES ${GKlib_includes} DESTINATION include/${HINSTALL_PATH})
diff --git a/GKlibSystem.cmake b/GKlibSystem.cmake
index 31a1cf1..172a386 100644
--- a/GKlibSystem.cmake
+++ b/GKlibSystem.cmake
@@ -18,7 +18,6 @@ option(NO_X86 "enable NO_X86 support" OFF)
target_link_libraries(${PROJECT_NAME}
PUBLIC $<$<BOOL:${OpenMP_C_FOUND}>:OpenMP::OpenMP_C>)
diff --git a/cmake/GKlibSystem.cmake b/cmake/GKlibSystem.cmake
index 249d424..94d9fd6 100644
--- a/cmake/GKlibSystem.cmake
+++ b/cmake/GKlibSystem.cmake
@@ -2,7 +2,6 @@
# Add compiler flags.
if(MSVC)
@@ -36,36 +26,27 @@ index 31a1cf1..172a386 100644
set(GKlib_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX")
elseif(MINGW)
set(GKlib_COPTS "-DUSE_GKREGEX")
@@ -33,6 +32,8 @@ if(CMAKE_COMPILER_IS_GNUCC)
set(GKlib_COPTIONS "${GKlib_COPTIONS} -std=c99 -fno-strict-aliasing")
if(VALGRIND)
set(GKlib_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic")
+elseif(1)
+ # Use flags from toolchain and triplet
else()
# -march=native is not a valid flag on PPC:
if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64"))
@@ -46,6 +47,7 @@ endif(VALGRIND)
endif(NOT MINGW)
@@ -20,6 +19,8 @@ if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
if(VALGRIND)
set(GKlib_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic")
+ elseif(1)
+ # Use flags from toolchain and triplet
else()
set(GKlib_COPTIONS "${GKlib_COPTIONS} -march=native")
endif(VALGRIND)
@@ -30,6 +31,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
# GCC warnings.
set(GKlib_COPTIONS "${GKlib_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
+ string(REPLACE " -Werror " " " GKlib_COPTIONS "${GKlib_COPTIONS}")
elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
# Sun insists on -xc99.
set(GKlib_COPTIONS "${GKlib_COPTIONS} -xc99")
@@ -75,6 +77,8 @@ endif(NO_X86)
if(GDB)
set(GKlib_COPTS "${GKlib_COPTS} -g")
set(GKlib_COPTIONS "${GKlib_COPTIONS} -Werror")
+elseif(1)
+ # Use flags from toolchain and triplet
else()
set(GKlib_COPTS "-O3")
endif(GDB)
diff --git a/gk_ms_inttypes.h b/gk_ms_inttypes.h
endif()
if(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
diff --git a/include/gk_ms_inttypes.h b/include/gk_ms_inttypes.h
index b89fc10..7247c38 100644
--- a/gk_ms_inttypes.h
+++ b/gk_ms_inttypes.h
--- a/include/gk_ms_inttypes.h
+++ b/include/gk_ms_inttypes.h
@@ -35,6 +35,8 @@
#ifndef _MSC_INTTYPES_H_ // [
@@ -75,10 +56,10 @@ index b89fc10..7247c38 100644
#if _MSC_VER > 1000
#pragma once
diff --git a/gk_ms_stdint.h b/gk_ms_stdint.h
diff --git a/include/gk_ms_stdint.h b/include/gk_ms_stdint.h
index 7e200dc..1c51958 100644
--- a/gk_ms_stdint.h
+++ b/gk_ms_stdint.h
--- a/include/gk_ms_stdint.h
+++ b/include/gk_ms_stdint.h
@@ -35,6 +35,8 @@
#ifndef _MSC_STDINT_H_ // [
@@ -88,3 +69,16 @@ index 7e200dc..1c51958 100644
#if _MSC_VER > 1000
#pragma once
diff --git a/src/win32/adapt.c b/src/win32/adapt.c
index 546857c..d56f767 100644
--- a/src/win32/adapt.c
+++ b/src/win32/adapt.c
@@ -3,7 +3,7 @@
\brief Implementation of Win32 adaptation of libc functions
*/
-#include "adapt.h"
+#include "win32/adapt.h"
pid_t getpid(void)
{

View File

@@ -5,21 +5,24 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KarypisLab/GKlib
REF 8bd6bad750b2b0d90800c632cf18e8ee93ad72d7
SHA512 128cd9a48047b18b8013288162556f0b0f1d81845f5445f7cc62590ab28c06ee0a6c602cc999ce268ab27237eca3e8295df6432d377e45071946b98558872997
REF 6e7951358fd896e2abed7887196b6871aac9f2f8
SHA512 54ba87f2c47e025ada0fe6fe608d9d144df5cd13e97e71892dbba4d50cd96409add309937a540cdf8bd2632cbfbc0e22e080a32d114ba6037008c8676aa8d88d
PATCHES
android.patch
build-fixes.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DHINSTALL_PATH=GKlib
-DCMAKE_INSTALL_INCLUDEDIR=include/GKlib
-DGKLIB_BUILD_APPS=OFF
-DSHARED=${SHARED}
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/GKlib")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

View File

@@ -1,6 +1,6 @@
{
"name": "gklib",
"version-date": "2023-03-27",
"version-date": "2025-07-06",
"description": "General helper libraries for KarypisLab.",
"homepage": "https://github.com/KarypisLab/GKlib/",
"license": "Apache-2.0",

View File

@@ -1,44 +1,42 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a15d19a..7210a61 100644
index ef34603..0168a4b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,9 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.22)
@@ -1,9 +1,12 @@
cmake_minimum_required(VERSION 3.10)
project(METIS C)
set(SHARED FALSE CACHE BOOL "build a shared library")
-set(SHARED FALSE CACHE BOOL "build a shared library")
+set(SHARED "${BUILD_SHARED_LIBS}" CACHE BOOL "build a shared library")
+if(WIN32 AND SHARED)
+ add_compile_definitions(-D_WINDLL)
+endif()
-if(MSVC)
+if(0)
set(METIS_INSTALL FALSE)
else()
set(METIS_INSTALL TRUE)
@@ -34,19 +34,8 @@ include(./conf/gkbuild.cmake)
#
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${METIS_COPTIONS}")
-
-# Add include directories.
-# i.e., the -I equivalent
-include_directories(build/xinclude)
@@ -38,15 +41,12 @@ include(./conf/gkbuild.cmake)
# Add include directories.
# i.e., the -I equivalent
include_directories(build/xinclude)
-include_directories(${GKLIB_PATH}/include)
-include_directories(${CMAKE_INSTALL_PREFIX}/include)
-
-# List of paths that the compiler will search for library files.
-# i.e., the -L equivalent
# List of paths that the compiler will search for library files.
# i.e., the -L equivalent
-link_directories(${GKLIB_PATH}/lib)
-link_directories(${CMAKE_INSTALL_PREFIX}/lib)
-
# Recursively look for CMakeLists.txt in subdirs.
-add_subdirectory("build/xinclude")
+add_subdirectory("include")
add_subdirectory("build/xinclude")
add_subdirectory("libmetis")
-add_subdirectory("programs")
+
+include(install_config.cmake)
diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake
index 96435e5..ff43f05 100644
index 591ece4..3719093 100644
--- a/conf/gkbuild.cmake
+++ b/conf/gkbuild.cmake
@@ -16,7 +16,6 @@ option(GKRAND "enable GKRAND support" OFF)
@@ -49,26 +47,34 @@ index 96435e5..ff43f05 100644
set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX")
elseif(MINGW)
set(GK_COPTS "-DUSE_GKREGEX")
@@ -38,7 +37,7 @@ endif(VALGRIND)
set(GK_COPTIONS "${GK_COPTIONS} -fPIC")
@@ -31,6 +30,8 @@ if(CMAKE_COMPILER_IS_GNUCC)
set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing")
if(VALGRIND)
set(GK_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic")
+elseif(1)
+ # Use flags from toolchain and triplet
else()
# -march=native is not a valid flag on PPC:
if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64"))
@@ -44,6 +45,7 @@ endif(VALGRIND)
endif(NOT MINGW)
# GCC warnings.
- set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
+ set(GK_COPTIONS "${GK_COPTIONS} -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
+ string(REPLACE " -Werror " " " GK_COPTIONS "${GK_COPTIONS}")
elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
# Sun insists on -xc99.
set(GK_COPTIONS "${GK_COPTIONS} -xc99")
@@ -69,7 +68,7 @@ endif(OPENMP)
@@ -74,6 +76,8 @@ endif(OPENMP)
if(GDB)
set(GK_COPTS "${GK_COPTS} -g")
set(GK_COPTIONS "${GK_COPTIONS} -Werror")
-else()
+elseif(0)
+elseif(1)
+ # Use flags from toolchain and triplet
else()
set(GK_COPTS "-O3")
endif(GDB)
diff --git a/include/metis.h b/include/metis.h
index 7fef0e7..f8e5dcf 100644
index ab475fe..8033858 100644
--- a/include/metis.h
+++ b/include/metis.h
@@ -30,7 +30,7 @@
@@ -81,8 +87,8 @@ index 7fef0e7..f8e5dcf 100644
/*--------------------------------------------------------------------------
@@ -40,7 +40,7 @@
32 : single precission floating point (float)
64 : double precission floating point (double)
32 : single precision floating point (float)
64 : double precision floating point (double)
--------------------------------------------------------------------------*/
-//#define REALTYPEWIDTH 32
+#define REALTYPEWIDTH 32
@@ -105,25 +111,26 @@ index 7fef0e7..f8e5dcf 100644
#include <inttypes.h>
#endif
diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt
index fc6cec6..8aeb89a 100644
index fc6cec6..a56f6ca 100644
--- a/libmetis/CMakeLists.txt
+++ b/libmetis/CMakeLists.txt
@@ -6,10 +6,9 @@ file(GLOB metis_sources *.c)
@@ -6,10 +6,15 @@ file(GLOB metis_sources *.c)
# Build libmetis.
add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources})
+target_include_directories(metis INTERFACE $<INSTALL_INTERFACE:include>)
+
+find_package(GKlib CONFIG REQUIRED)
+target_link_libraries(metis PUBLIC GKlib)
+target_include_directories(metis PRIVATE "../include")
+target_link_libraries(metis PRIVATE GKlib::GKlib)
-if(METIS_INSTALL)
- install(TARGETS metis
- LIBRARY DESTINATION lib
if(METIS_INSTALL)
install(TARGETS metis
+ EXPORT metisTargets
LIBRARY DESTINATION lib
- RUNTIME DESTINATION lib
- ARCHIVE DESTINATION lib)
-endif()
+install(TARGETS metis EXPORT metisTargets
+ INCLUDES DESTINATION include)
+ RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib)
endif()
diff --git a/libmetis/metislib.h b/libmetis/metislib.h
index dc224f4..1efccda 100644
--- a/libmetis/metislib.h

View File

@@ -1,13 +1,11 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
REPO KarypisLab/METIS
REF 94c03a6e2d1860128c2d0675cbbb86ad4f261256
SHA512 9f24329fa0f0856d0b5d10a489574d857bc4538d9639055fc895363cf70aa37342eaf7bc08819500ff6d5b98a4aa99f4241880622b540d4c484ca19e693d3480
REF a6e6a2cfa92f93a3ee2971ebc9ddfc3b0b581ab2
SHA512 c41168788c287ed9baea3c43c1ea8ef7d0bbdaa340a03cbbb5d0ba2d928d8a6dd83e2b77e7d3fabc58ac6d2b59a4be0492940e31460fe5e1807849cb98e80d2e
PATCHES
build-fixes.patch
)
)
file(COPY "${SOURCE_PATH}/include/" DESTINATION "${SOURCE_PATH}/build/xinclude")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/install_config.cmake" DESTINATION "${SOURCE_PATH}")
vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}")
@@ -15,10 +13,11 @@ vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup()
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/metis.h" "#ifdef _WINDLL" "#if 1")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/metis.h" "__declspec(dllexport)" "__declspec(dllimport)")
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" [=[
metis provides CMake targets:
find_package(metis CONFIG REQUIRED)
target_link_libraries(main PRIVATE metis)
]=])
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@@ -1,7 +1,6 @@
{
"name": "metis",
"version-date": "2022-07-27",
"port-version": 1,
"version-date": "2025-07-04",
"description": "Serial Graph Partitioning and Fill-reducing Matrix Ordering",
"homepage": "https://github.com/KarypisLab/METIS",
"license": "Apache-2.0",

View File

@@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 146bc5f..8d6ae23 100644
index 146bc5f..f5c5d48 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
@@ -8,22 +8,22 @@ index 146bc5f..8d6ae23 100644
project(ParMETIS C)
@@ -24,20 +24,16 @@ include(./conf/gkbuild.cmake)
@@ -24,20 +24,20 @@ include(./conf/gkbuild.cmake)
# i.e., the -I equivalent
include_directories(include)
include_directories(${MPI_INCLUDE_PATH})
-include_directories(${GKLIB_PATH}/include)
-include_directories(${METIS_PATH}/include)
-include_directories(${CMAKE_INSTALL_PREFIX}/include)
-
-# List of paths that the compiler will search for library files.
-# i.e., the -L equivalent
# List of paths that the compiler will search for library files.
# i.e., the -L equivalent
-link_directories(${GKLIB_PATH}/lib)
-link_directories(${METIS_PATH}/lib)
-link_directories(${CMAKE_INSTALL_PREFIX}/lib)
-
# List of directories that cmake will look for CMakeLists.txt
-add_subdirectory(include)
add_subdirectory(include)
add_subdirectory(libparmetis)
-add_subdirectory(programs)
@@ -38,7 +38,7 @@ index 146bc5f..8d6ae23 100644
+include("${CMAKE_CURRENT_LIST_DIR}/parmetisTargets.cmake")
+]=])
diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake
index afcafdd..3040b09 100644
index ec91224..c4161fa 100644
--- a/conf/gkbuild.cmake
+++ b/conf/gkbuild.cmake
@@ -15,7 +15,6 @@ option(GKRAND "enable GKRAND support" OFF)
@@ -49,50 +49,56 @@ index afcafdd..3040b09 100644
set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX")
elseif(MINGW)
set(GK_COPTS "-DUSE_GKREGEX")
@@ -33,7 +32,7 @@ if(CMAKE_COMPILER_IS_GNUCC)
set(GK_COPTIONS "${GK_COPTIONS} -fPIC")
@@ -31,6 +30,8 @@ if(CMAKE_COMPILER_IS_GNUCC)
# -march=native is not a valid flag on PPC:
if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64"))
set(GK_COPTIONS "${GK_COPTIONS} -mtune=native")
+elseif(1)
+ # Use flags from toolchain and triplet
else()
set(GK_COPTIONS "${GK_COPTIONS} -march=native")
endif()
@@ -39,6 +40,7 @@ endif()
endif(NOT MINGW)
# GCC warnings.
- set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
+ set(GK_COPTIONS "${GK_COPTIONS} -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
+ string(REPLACE " -Werror " " " GK_COPTIONS "${GK_COPTIONS}")
elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
# Sun insists on -xc99.
set(GK_COPTIONS "${GK_COPTIONS} -xc99")
@@ -64,7 +63,7 @@ endif(OPENMP)
@@ -69,6 +71,8 @@ endif(OPENMP)
if(GDB)
set(GK_COPTS "${GK_COPTS} -g")
set(GK_COPTIONS "${GK_COPTIONS} -Werror")
-else()
+elseif(0)
+elseif(1)
+ # Use flags from toolchain and triplet
else()
set(GK_COPTS "-O3")
endif(GDB)
@@ -135,4 +134,3 @@ endif()
# Finally set the official C flags.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GK_COPTIONS} ${GK_COPTS}")
-
diff --git a/libparmetis/CMakeLists.txt b/libparmetis/CMakeLists.txt
index e8c3213..dcdf64e 100644
index b9d6d84..d8fb19b 100644
--- a/libparmetis/CMakeLists.txt
+++ b/libparmetis/CMakeLists.txt
@@ -4,10 +4,14 @@ include_directories(.)
# Find sources.
file(GLOB parmetis_sources *.c)
@@ -7,11 +7,17 @@ file(GLOB parmetis_sources *.c)
# Create libparmetis
add_library(parmetis ${ParMETIS_LIBRARY_TYPE} ${parmetis_sources})
-if(SHARED)
- target_link_libraries(parmetis metis GKlib)
-endif()
-
+find_package(GKlib CONFIG REQUIRED)
+find_package(metis CONFIG REQUIRED)
+find_package(MPI REQUIRED)
+
# Create libparmetis
add_library(parmetis ${ParMETIS_LIBRARY_TYPE} ${parmetis_sources})
-
-install(TARGETS parmetis
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION lib
- ARCHIVE DESTINATION lib)
+target_link_libraries(parmetis PRIVATE GKlib metis ${MPI_C_LIBRARIES})
+target_include_directories(parmetis PUBLIC ${MPI_C_INCLUDE_DIRS})
+target_link_libraries(parmetis PRIVATE GKlib::GKlib metis ${MPI_C_LIBRARIES})
+target_include_directories(parmetis PRIVATE ${MPI_C_INCLUDE_DIRS})
+target_include_directories(parmetis PRIVATE "../include")
+install(FILES "../include/parmetis.h" DESTINATION "include")
+install(TARGETS parmetis EXPORT parmetisTargets INCLUDES DESTINATION include)
+
install(TARGETS parmetis
+ EXPORT parmetisTargets
+ INCLUDES DESTINATION include
LIBRARY DESTINATION lib
- RUNTIME DESTINATION lib
+ RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib)

View File

@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KarypisLab/ParMETIS
REF 44fadbf58c71a74b39abb110a7691355d2a760ca
SHA512 d07e2ccb358948b728be3d282841ad42a8358908a4f1ab3342d4c3016e71a06c1b5966640a06e713f4c773365d7dba4f0c68795d615802f3af07194c0778f362
REF 8ee6a372ca703836f593e3c450ca903f04be14df
SHA512 a71d212a1c8682eb662ef6bb8bdcb124bc13c353e76ac236b01e544bddb975740c36be54c05305e1114e4daf20fec56642ffa319a6426c87c5538ea2225c156b
PATCHES
build-fixes.patch
)
@@ -18,10 +18,7 @@ vcpkg_cmake_configure(
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" [=[
parmetis provides CMake targets:
find_package(parmetis CONFIG REQUIRED)
target_link_libraries(main PRIVATE parmetis)
]=])
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@@ -1,8 +1,8 @@
{
"name": "parmetis",
"version-date": "2022-07-27",
"version-date": "2023-03-26",
"description": "Parallel Graph Partitioning and Fill-reducing Matrix Ordering",
"homepage": "https://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview",
"homepage": "https://github.com/KarypisLab/ParMETIS",
"license": null,
"dependencies": [
"metis",

View File

@@ -1612,10 +1612,8 @@ paraview[cuda](osx) = cascade
paraview[cuda,mpi,python,vtkm]:x86-windows = cascade
paraview[python]:x64-windows-static-md = cascade
paraview[python,all-modules]:x64-windows-static = cascade
parmetis:arm64-uwp = cascade
parmetis:arm64-windows = cascade
parmetis:x64-uwp = cascade
parmetis:x86-windows = cascade
parmetis(uwp) = cascade
parquet:arm64-uwp = cascade
parquet:arm64-windows = cascade
parquet:x64-uwp = cascade

View File

@@ -3261,7 +3261,7 @@
"port-version": 0
},
"gklib": {
"baseline": "2023-03-27",
"baseline": "2025-07-06",
"port-version": 0
},
"gl2ps": {
@@ -6205,8 +6205,8 @@
"port-version": 0
},
"metis": {
"baseline": "2022-07-27",
"port-version": 1
"baseline": "2025-07-04",
"port-version": 0
},
"metrohash": {
"baseline": "1.1.3",
@@ -7237,7 +7237,7 @@
"port-version": 4
},
"parmetis": {
"baseline": "2022-07-27",
"baseline": "2023-03-26",
"port-version": 0
},
"parquet": {

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c3b9e3dbc3c508699816a7723c720428a478b364",
"version-date": "2025-07-06",
"port-version": 0
},
{
"git-tree": "ad20fb84d82834d6de1f5bdf45851eeadd1c01e6",
"version-date": "2023-03-27",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "83d3f4ee2d498f9bc5d8f63b562744442c6065f1",
"version-date": "2025-07-04",
"port-version": 0
},
{
"git-tree": "a73f3c906ed3cffa805aa33bdbf067f000a7dfe0",
"version-date": "2022-07-27",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "56c0aacc9bfe4f82704ac4bf3a6857a08ee9f6da",
"version-date": "2023-03-26",
"port-version": 0
},
{
"git-tree": "e16a0bdc9bfe506f67b8204e5f725faa6a026c4c",
"version-date": "2022-07-27",