|
| 1 | +diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 2 | +index a15d19a..7210a61 100644 |
| 3 | +--- a/CMakeLists.txt |
| 4 | ++++ b/CMakeLists.txt |
| 5 | +@@ -1,9 +1,9 @@ |
| 6 | +-cmake_minimum_required(VERSION 2.8) |
| 7 | ++cmake_minimum_required(VERSION 3.22) |
| 8 | + project(METIS C) |
| 9 | + |
| 10 | + set(SHARED FALSE CACHE BOOL "build a shared library") |
| 11 | + |
| 12 | +-if(MSVC) |
| 13 | ++if(0) |
| 14 | + set(METIS_INSTALL FALSE) |
| 15 | + else() |
| 16 | + set(METIS_INSTALL TRUE) |
| 17 | +@@ -34,19 +34,8 @@ include(./conf/gkbuild.cmake) |
| 18 | + # |
| 19 | + #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${METIS_COPTIONS}") |
| 20 | + |
| 21 | +- |
| 22 | +-# Add include directories. |
| 23 | +-# i.e., the -I equivalent |
| 24 | +-include_directories(build/xinclude) |
| 25 | +-include_directories(${GKLIB_PATH}/include) |
| 26 | +-include_directories(${CMAKE_INSTALL_PREFIX}/include) |
| 27 | +- |
| 28 | +-# List of paths that the compiler will search for library files. |
| 29 | +-# i.e., the -L equivalent |
| 30 | +-link_directories(${GKLIB_PATH}/lib) |
| 31 | +-link_directories(${CMAKE_INSTALL_PREFIX}/lib) |
| 32 | +- |
| 33 | + # Recursively look for CMakeLists.txt in subdirs. |
| 34 | +-add_subdirectory("build/xinclude") |
| 35 | ++add_subdirectory("include") |
| 36 | + add_subdirectory("libmetis") |
| 37 | +-add_subdirectory("programs") |
| 38 | ++ |
| 39 | ++include(install_config.cmake) |
| 40 | +diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake |
| 41 | +index 96435e5..ff43f05 100644 |
| 42 | +--- a/conf/gkbuild.cmake |
| 43 | ++++ b/conf/gkbuild.cmake |
| 44 | +@@ -16,7 +16,6 @@ option(GKRAND "enable GKRAND support" OFF) |
| 45 | + |
| 46 | + # Add compiler flags. |
| 47 | + if(MSVC) |
| 48 | +- set(GK_COPTS "/Ox") |
| 49 | + set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") |
| 50 | + elseif(MINGW) |
| 51 | + set(GK_COPTS "-DUSE_GKREGEX") |
| 52 | +@@ -38,7 +37,7 @@ endif(VALGRIND) |
| 53 | + set(GK_COPTIONS "${GK_COPTIONS} -fPIC") |
| 54 | + endif(NOT MINGW) |
| 55 | + # GCC warnings. |
| 56 | +- 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") |
| 57 | ++ set(GK_COPTIONS "${GK_COPTIONS} -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label") |
| 58 | + elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun") |
| 59 | + # Sun insists on -xc99. |
| 60 | + set(GK_COPTIONS "${GK_COPTIONS} -xc99") |
| 61 | +@@ -69,7 +68,7 @@ endif(OPENMP) |
| 62 | + if(GDB) |
| 63 | + set(GK_COPTS "${GK_COPTS} -g") |
| 64 | + set(GK_COPTIONS "${GK_COPTIONS} -Werror") |
| 65 | +-else() |
| 66 | ++elseif(0) |
| 67 | + set(GK_COPTS "-O3") |
| 68 | + endif(GDB) |
| 69 | + |
| 70 | +diff --git a/include/metis.h b/include/metis.h |
| 71 | +index 7fef0e7..f8e5dcf 100644 |
| 72 | +--- a/include/metis.h |
| 73 | ++++ b/include/metis.h |
| 74 | +@@ -30,7 +30,7 @@ |
| 75 | + GCC does provides these definitions in stdint.h, but it may require some |
| 76 | + modifications on other architectures. |
| 77 | + --------------------------------------------------------------------------*/ |
| 78 | +-//#define IDXTYPEWIDTH 32 |
| 79 | ++#define IDXTYPEWIDTH 32 |
| 80 | + |
| 81 | + |
| 82 | + /*-------------------------------------------------------------------------- |
| 83 | +@@ -40,7 +40,7 @@ |
| 84 | + 32 : single precission floating point (float) |
| 85 | + 64 : double precission floating point (double) |
| 86 | + --------------------------------------------------------------------------*/ |
| 87 | +-//#define REALTYPEWIDTH 32 |
| 88 | ++#define REALTYPEWIDTH 32 |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | +@@ -72,10 +72,14 @@ typedef __int64 int64_t; |
| 93 | + #define PRId64 "I64d" |
| 94 | + #define SCNd32 "ld" |
| 95 | + #define SCNd64 "I64d" |
| 96 | ++#ifdef _WIN32 |
| 97 | ++#include <stdint.h> |
| 98 | ++#else |
| 99 | + #define INT32_MIN ((int32_t)_I32_MIN) |
| 100 | + #define INT32_MAX _I32_MAX |
| 101 | + #define INT64_MIN ((int64_t)_I64_MIN) |
| 102 | + #define INT64_MAX _I64_MAX |
| 103 | ++#endif // ^^^ !_WIN32 |
| 104 | + #else |
| 105 | + #include <inttypes.h> |
| 106 | + #endif |
| 107 | +diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt |
| 108 | +index fc6cec6..8aeb89a 100644 |
| 109 | +--- a/libmetis/CMakeLists.txt |
| 110 | ++++ b/libmetis/CMakeLists.txt |
| 111 | +@@ -6,10 +6,9 @@ file(GLOB metis_sources *.c) |
| 112 | + |
| 113 | + # Build libmetis. |
| 114 | + add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources}) |
| 115 | ++find_package(GKlib CONFIG REQUIRED) |
| 116 | ++target_link_libraries(metis PUBLIC GKlib) |
| 117 | ++target_include_directories(metis PRIVATE "../include") |
| 118 | + |
| 119 | +-if(METIS_INSTALL) |
| 120 | +- install(TARGETS metis |
| 121 | +- LIBRARY DESTINATION lib |
| 122 | +- RUNTIME DESTINATION lib |
| 123 | +- ARCHIVE DESTINATION lib) |
| 124 | +-endif() |
| 125 | ++install(TARGETS metis EXPORT metisTargets |
| 126 | ++ INCLUDES DESTINATION include) |
| 127 | +diff --git a/libmetis/metislib.h b/libmetis/metislib.h |
| 128 | +index dc224f4..1efccda 100644 |
| 129 | +--- a/libmetis/metislib.h |
| 130 | ++++ b/libmetis/metislib.h |
| 131 | +@@ -31,7 +31,7 @@ |
| 132 | + #include "proto.h" |
| 133 | + |
| 134 | + |
| 135 | +-#if defined(COMPILER_MSC) |
| 136 | ++#if defined(COMPILER_MSC) && (_MSC_VER < 1900) |
| 137 | + #if defined(rint) |
| 138 | + #undef rint |
| 139 | + #endif |
0 commit comments