coriolis/vlsisapd/cmake_modules/FindIO.cmake

79 lines
2.9 KiB
CMake

# - Try to find the IO libraries
# Once done this will define
#
# IO_FOUND - system has the IO library
# IO_INCLUDE_DIR - the IO include directory
# IO_LIBRARIES - The libraries needed to use IO
SET(IO_FOUND FALSE)
# Setup the DIR_SEARCH_PATH.
MACRO(SETUP_SEARCH_DIR project)
IF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
MESSAGE("-- ${project}_TOP is set to $ENV{${project}_TOP}")
LIST(INSERT ${project}_DIR_SEARCH 0 "$ENV{${project}_TOP}")
ENDIF( NOT("$ENV{${project}_TOP}" STREQUAL "") )
IF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
MESSAGE("-- ${project}_USER_TOP is set to $ENV{${project}_USER_TOP}")
LIST(INSERT ${project}_DIR_SEARCH 0 "$ENV{${project}_USER_TOP}")
ENDIF( NOT("$ENV{${project}_USER_TOP}" STREQUAL "") )
LIST(REMOVE_DUPLICATES ${project}_DIR_SEARCH)
ENDMACRO(SETUP_SEARCH_DIR project)
MACRO(SET_FOUND project)
IF(${project}_INCLUDE_DIR AND ${project}_LIBRARY)
SET(${project}_FOUND TRUE)
ELSE(${project}_INCLUDE_DIR AND ${project}_LIBRARY)
SET(${project}_FOUND FALSE)
ENDIF(${project}_INCLUDE_DIR AND ${project}_LIBRARY)
ENDMACRO(SET_FOUND project)
SETUP_SEARCH_DIR(IO)
IF(IO_DIR_SEARCH)
# AGDS
FIND_PATH (AGDS_INCLUDE_DIR NAMES io/agds/GdsLibrary.h PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES include)
FIND_LIBRARY(AGDS_LIBRARY NAMES agds PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES lib)
SET_FOUND(AGDS)
# CIF
FIND_PATH (CIF_INCLUDE_DIR NAMES io/cif/CifCircuit.h PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES include)
FIND_LIBRARY(CIF_LIBRARY NAMES cif PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES lib)
SET_FOUND(CIF)
# OPENCHAMS
FIND_PATH (OPENCHAMS_INCLUDE_DIR NAMES io/openChams/Circuit.h PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES include)
FIND_LIBRARY(OPENCHAMS_LIBRARY NAMES openChams PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES lib)
SET_FOUND(OPENCHAMS)
# DTR
FIND_PATH (DTR_INCLUDE_DIR NAMES io/dtr/Techno.h PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES include)
FIND_LIBRARY(DTR_LIBRARY NAMES dtr PATHS ${IO_DIR_SEARCH} PATH_SUFFIXES lib)
SET_FOUND(DTR)
IF(AGDS_FOUND AND CIF_FOUND AND OPENCHAMS_FOUND AND DTR_FOUND)
SET(IO_FOUND TRUE)
ELSE(AGDS_FOUND AND CIF_FOUND AND OPENCHAMS_FOUND AND DTR_FOUND)
SET(IO_FOUND FALSE)
ENDIF(AGDS_FOUND AND CIF_FOUND AND OPENCHAMS_FOUND AND DTR_FOUND)
ELSE(IO_DIR_SEARCH)
MESSAGE("-- Cannot find IO_LIBRARIES since IO_DIR_SEARCH is not defined.")
ENDIF(IO_DIR_SEARCH)
IF (NOT IO_FOUND)
SET(IO_MESSAGE
"IO libraries were not found. Make sure IO_TOP env variable is set.")
IF (NOT IO_FIND_QUIETLY)
MESSAGE(STATUS "${IO_MESSAGE}")
ELSE(NOT IO_FIND_QUIETLY)
IF(IO_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "${IO_MESSAGE}")
ENDIF(IO_FIND_REQUIRED)
ENDIF(NOT IO_FIND_QUIETLY)
ELSE (NOT IO_FOUND)
MESSAGE(STATUS "IO library was found in ${IO_DIR_SEARCH}")
ENDIF (NOT IO_FOUND)