# - Locate Opal include paths and libraries
#  Opal can be found at www.voxgratia.org
#  Written by Frederic Heem, frederic.heem _at_ telsey.it

# This module defines
#  OPAL_FOUND, true if Opal has been found
#  OPAL_VERSION, the Opal version 
#  OPAL_INCLUDE_DIRS, where to find opal/manager.h, etc.
#  OPAL_LIBRARIES, library to link againt Opal
#  OPAL_DEFINITIONS, the definitions used to compile Opal

#Pwlib is required by Opal
FIND_PACKAGE(PWLIB REQUIRED)

#Found the Opal package
PKGCONFIG_FOUND(opal OPAL_FOUND)

IF(OPAL_FOUND)
  MESSAGE(STATUS "Opal found")
ELSE(OPAL_FOUND)
  MESSAGE(FATAL "Opal cannot be found")
ENDIF(OPAL_FOUND)

#use pkgconfig to fill information
PKGCONFIG(opal OPAL_INCLUDE_DIR_SYSTEM OPAL_LIBRARY_DIR OPAL_LINK_FLAGS OPAL_C_FLAGS)

#Include path
SET(OPAL_INCLUDE_PATH_DESCRIPTION "directory containing the opal include files. E.g /home/fred/opal/include or c:\\opal\\include")

FIND_PATH(OPAL_INCLUDE_DIR opal/manager.h
  $ENV{OPALDIR}/include
  ${OPAL_INCLUDE_DIR_SYSTEM}
  DOC " ${OPAL_INCLUDE_PATH_DESCRIPTION}"
  NO_DEFAULT_PATH  
)

FIND_PATH(OPAL_INCLUDE_DIR opal/manager.h
  DOC " ${OPAL_INCLUDE_PATH_DESCRIPTION}"
)

SET(OPAL_INCLUDE_DIRS ${OPAL_INCLUDE_DIR})

IF(OPAL_INCLUDE_DIR)
  MESSAGE(STATUS "Opal include dir set to ${OPAL_INCLUDE_DIR}")
ELSE(OPAL_INCLUDE_DIR)
  MESSAGE(FATAL "Opal include dir cannot be found")
ENDIF(OPAL_INCLUDE_DIR)

#Library
SET(PWLIB_LIB_PATH_DESCRIPTION "The directory containing the opal library. E.g /home/fred/opal/lib or c:\\opal\\lib")

FIND_LIBRARY(OPAL_LIBRARY
  NAMES 
    opal
  PATHS
    $ENV{OPALDIR}/lib
    ${OPAL_LIBRARY_DIR}
  DOC " ${OPAL_LIB_PATH_DESCRIPTION}"
  NO_DEFAULT_PATH  
)

FIND_LIBRARY(OPAL_LIBRARY
  NAMES 
    opal
  DOC " ${OPAL_LIB_PATH_DESCRIPTION}"  
)

SET(OPAL_LIBRARIES ${OPAL_LIBRARY}) 

IF(OPAL_LIBRARIES)
  MESSAGE(STATUS "Opal lib set to ${OPAL_LIBRARIES}")
ELSE(OPAL_LIBRARIES)
  MESSAGE(FATAL "Opal library cannot be found")
ENDIF(OPAL_LIBRARIES)

#Version
PKGCONFIG_VERSION(opal OPAL_VERSION)
MESSAGE(STATUS "Opal version is ${OPAL_VERSION}")

#Definition
PKGCONFIG_DEFINITION(opal OPAL_DEFINITIONS)
MESSAGE(STATUS "Opal definitions are ${OPAL_DEFINITIONS}")

MARK_AS_ADVANCED(
  OPAL_INCLUDE_DIR
  OPAL_LIBRARY
) 
