-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathFindZoltan.cmake
68 lines (61 loc) · 1.86 KB
/
FindZoltan.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# - Try to find zoltan
# Once done this will define
# ZOLTAN_FOUND - System has ZOLTAN
# ZOLTAN_INCLUDE_DIRS - The ZOLTAN include directories
# ZOLTAN_LIBRARIES - The libraries needed to use ZOLTAN
# ZOLTAN_DEFINITIONS - Compiler switches required for using ZOLTAN
set(ZOLTAN_PREFIX "${ZOLTAN_PREFIX_DEFAULT}" CACHE STRING "Zoltan install directory")
if(ZOLTAN_PREFIX)
message(STATUS "ZOLTAN_PREFIX ${ZOLTAN_PREFIX}")
endif()
if(ZOLTAN_PREFIX)
find_path(ZOLTAN_INCLUDE_DIR zoltan.h
PATHS "${ZOLTAN_PREFIX}/include"
NO_DEFAULT_PATH
)
find_library(ZOLTAN_LIBRARY zoltan
PATHS "${ZOLTAN_PREFIX}/lib"
NO_DEFAULT_PATH
)
else()
find_path(ZOLTAN_INCLUDE_DIR zoltan.h)
find_library(ZOLTAN_LIBRARY zoltan)
endif()
if (ZOLTAN_INCLUDE_DIR)
message(DEBUG "ZOLTAN_INCLUDE_DIR ${ZOLTAN_INCLUDE_DIR}")
else()
message(FATAL_ERROR "Zoltan not found.")
endif()
set(ZOLTAN_LIBRARIES ${ZOLTAN_LIBRARY} )
set(ZOLTAN_INCLUDE_DIRS ${ZOLTAN_INCLUDE_DIR} )
find_file(ZOLTAN_CONFIG_FILE Zoltan_config.h
"${ZOLTAN_INCLUDE_DIRS}"
NO_DEFAULT_PATH
)
message(DEBUG "ZOLTAN_CONFIG_FILE ${ZOLTAN_CONFIG_FILE}")
file(READ "${ZOLTAN_CONFIG_FILE}" ZOLTAN_CONFIG_TEXT)
string(FIND
"${ZOLTAN_CONFIG_TEXT}" "#define HAVE_PARMETIS"
ZOLTAN_FIND_PARMETIS
)
string(FIND
"${ZOLTAN_CONFIG_TEXT}" "#define HAVE_SCOTCH"
ZOLTAN_FIND_PTSCOTCH
)
if(NOT ZOLTAN_FIND_PARMETIS EQUAL -1)
find_package(Parmetis MODULE REQUIRED)
set(PUMI_HAS_PARMETIS TRUE)
endif()
if(NOT ZOLTAN_FIND_PTSCOTCH EQUAL -1)
find_package(SCOTCH CONFIG REQUIRED)
set(PUMI_HAS_PTSCOTCH TRUE)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set ZOLTAN_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(
Zoltan
DEFAULT_MSG
ZOLTAN_LIBRARY ZOLTAN_INCLUDE_DIR
)
mark_as_advanced(ZOLTAN_INCLUDE_DIR ZOLTAN_LIBRARY ZOLTAN_CONFIG_FILE)