# - cmake script for finding NetCDF libraries
# ZOLTAN_INCLUDE_DIR - user modifiable choice of where to zoltan include dir
# ZOLTAN_LIBRARY - user modifiable choice of where zoltan library is
# This module returns these variables for the rest of the project to use.
#
# Zoltan_FOUND - True if ZOLTAN found
# ZOLTAN_LIBRARY - zoltan library is
# ZOLTAN_INCLUDE_DIR - zoltan include dir.
IF(ZOLTAN_LIBRARY AND ZOLTAN_INCLUDE_DIR)
SET(Zoltan_FOUND TRUE)
ELSE()
SET(Zoltan_FOUND FALSE)
ENDIF()
IF(NOT Zoltan_FOUND)
MESSAGE(STATUS "Finding Zoltan library")
# Try to find with CMake config file of upstream Zoltan.
FIND_PACKAGE(Zoltan CONFIG NAMES Zoltan zoltan)
IF(Zoltan_FOUND)
GET_TARGET_PROPERTY(ZOLTAN_INCLUDE_DIR Zoltan::zoltan INTERFACE_INCLUDE_DIRECTORIES)
GET_TARGET_PROPERTY(ZOLTAN_LIBRARY Zoltan::zoltan IMPORTED_LOCATION_RELEASE)
# Check if a debug build was used
IF(NOT ZOLTAN_LIBRARY)
GET_TARGET_PROPERTY(ZOLTAN_LIBRARY Zoltan::zoltan IMPORTED_LOCATION_DEBUG)
ENDIF()
IF(Zoltan_ENABLE_ParMETIS)
FIND_PACKAGE(ParMetis)
ENDIF()
ENDIF()
IF(NOT ZOLTAN_INCLUDE_DIR AND NOT ZOLTAN_LIBRARY)
INCLUDE(FindPackageHandleStandardArgs)
MESSAGE(STATUS "Manual search of Zoltan library")
SET(ZOLTANINCLUDE
"${ZOLTANROOT}/include"
"$ENV{ZOLTANROOT}/include"
"${ZOLTAN_ROOT}/include"
"$ENV{ZOLTAN_ROOT}/include"
"${CMAKE_SOURCE_DIR}/zoltan/include"
INTERNAL)
FIND_PATH(ZOLTAN_INCLUDE_DIR zoltan.h HINTS ${ZOLTANINCLUDE})
SET(ZOLTANLIB
"${ZOLTANROOT}/lib"
"$ENV{ZOLTANROOT}/lib"
"${ZOLTAN_ROOT}/lib"
"$ENV{ZOLTAN_ROOT}/lib"
"${CMAKE_SOURCE_DIR}/zoltan/lib"
INTERNAL)
FIND_LIBRARY(ZOLTAN_LIBRARY zoltan HINTS ${ZOLTANLIB})
ENDIF(NOT ZOLTAN_INCLUDE_DIR AND NOT ZOLTAN_LIBRARY)
ENDIF(NOT Zoltan_FOUND)
# This checks could be inadequate because this variables are not empty if nothing found
# Other option is to use the keyword REQUIRED, but this will increase cmake version to 3.18
# https://cmake.org/cmake/help/latest/command/find_library.html
# https://cmake.org/cmake/help/latest/command/find_path.html
IF (ZOLTAN_INCLUDE_DIR AND ZOLTAN_LIBRARY)
SET(Zoltan_FOUND TRUE)
#The config script was not used, define the target manually
IF(NOT TARGET Zoltan::zoltan)
ADD_LIBRARY(Zoltan::zoltan SHARED IMPORTED)
SET_TARGET_PROPERTIES(Zoltan::zoltan PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${ZOLTAN_INCLUDE_DIR}
IMPORTED_LOCATION ${ZOLTAN_LIBRARY} )
ENDIF()
IF (NOT Zoltan_FIND_QUIETLY)
MESSAGE(STATUS "Zoltan library found")
MESSAGE(STATUS "Zoltan include path: ${ZOLTAN_INCLUDE_DIR}")
MESSAGE(STATUS "Zoltan library: ${ZOLTAN_LIBRARY}")
ENDIF()
ELSE()
SET(Zoltan_FOUND FALSE)
IF (Zoltan_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Zoltan library not found.")
ENDIF()
ENDIF(ZOLTAN_INCLUDE_DIR AND ZOLTAN_LIBRARY)
MARK_AS_ADVANCED( ZOLTANINCLUDE ZOLTANLIB ZOLTAN_INCLUDE_DIR ZOLTAN_LIBRARY )