diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/parmetis/build-fixes.patch | |
Diffstat (limited to 'vcpkg/ports/parmetis/build-fixes.patch')
| -rw-r--r-- | vcpkg/ports/parmetis/build-fixes.patch | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/vcpkg/ports/parmetis/build-fixes.patch b/vcpkg/ports/parmetis/build-fixes.patch new file mode 100644 index 0000000..f3b016f --- /dev/null +++ b/vcpkg/ports/parmetis/build-fixes.patch @@ -0,0 +1,104 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 146bc5f..f5c5d48 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.22) + project(ParMETIS C) + + +@@ -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 +-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(libparmetis) +-add_subdirectory(programs) + + # This is for testing during development and is not being distributed + #add_subdirectory(test) ++ ++install(EXPORT parmetisTargets FILE "parmetisTargets.cmake" DESTINATION "share/parmetis") ++file(WRITE "${CMAKE_INSTALL_PREFIX}/share/parmetis/parmetisConfig.cmake" [=[ ++include(CMakeFindDependencyMacro) ++find_dependency(GKlib CONFIG) ++find_dependency(metis CONFIG) ++include("${CMAKE_CURRENT_LIST_DIR}/parmetisTargets.cmake") ++]=]) +diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake +index ec91224..c4161fa 100644 +--- a/conf/gkbuild.cmake ++++ b/conf/gkbuild.cmake +@@ -15,7 +15,6 @@ option(GKRAND "enable GKRAND support" OFF) + + # Add compiler flags. + if(MSVC) +- set(GK_COPTS "/Ox") + set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") + elseif(MINGW) + set(GK_COPTS "-DUSE_GKREGEX") +@@ -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") ++ 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,6 +71,8 @@ endif(OPENMP) + if(GDB) + set(GK_COPTS "${GK_COPTS} -g") + set(GK_COPTIONS "${GK_COPTIONS} -Werror") ++elseif(1) ++ # Use flags from toolchain and triplet + else() + set(GK_COPTS "-O3") + endif(GDB) +diff --git a/libparmetis/CMakeLists.txt b/libparmetis/CMakeLists.txt +index b9d6d84..d8fb19b 100644 +--- a/libparmetis/CMakeLists.txt ++++ b/libparmetis/CMakeLists.txt +@@ -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) ++ ++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(TARGETS parmetis ++ EXPORT parmetisTargets ++ INCLUDES DESTINATION include + LIBRARY DESTINATION lib +- RUNTIME DESTINATION lib ++ RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib) |