aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/parmetis/build-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/parmetis/build-fixes.patch')
-rw-r--r--vcpkg/ports/parmetis/build-fixes.patch104
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)