240 lines
9.8 KiB
CMake
240 lines
9.8 KiB
CMake
# - Find the OpenAccess includes and libraries.
|
|
# x-----------------------------------------------------------------x
|
|
# | This file is part of the hurricaneAMS Software. |
|
|
# | Copyright (c) UPMC/LIP6 2009-2010, All Rights Reserved |
|
|
# | =============================================================== |
|
|
# | Author : Jean-Manuel Caba |
|
|
# | E-mail : Jean-Manuel.Caba@asim.lip6.fr |
|
|
# | =============================================================== |
|
|
# | Author : Chistophe Alexandre |
|
|
# | E-mail : Christophe.Alexandre@asim.lip6.fr |
|
|
# x-----------------------------------------------------------------x
|
|
# The following variables are set if OpenAccess is found. If OpenAccess is not
|
|
# found, OA_FOUND is set to false.
|
|
# OA_FOUND - True when OpenAccess is found.
|
|
# OA_INCLUDE_DIR - the path to where the OpenAccess include files are.
|
|
# OA_LIBRARIES - The path to where the OpenAccess library files are.
|
|
#
|
|
# In OpenAccess si2 version the base library (without the plugins) are
|
|
# The OpenAccess oaCommon library: OA_COMMON_LIBRARY
|
|
# OA_COMMON_LIBRARY_RELEASE
|
|
# OA_COMMON_DEBUG
|
|
#
|
|
# The OpenAccess oaBase library: OA_BASE_LIBRARY
|
|
# OA_BASE_LIBRARY_RELEASE
|
|
# OA_BASE_DEBUG
|
|
#
|
|
# The OpenAccess oaCM library: OA_CM_LIBRARY
|
|
# OA_CM_LIBRARY_RELEASE
|
|
# OA_CM_DEBUG
|
|
#
|
|
# The OpenAccess oaDM library: OA_DM_LIBRARY
|
|
# OA_DM_LIBRARY_RELEASE
|
|
# OA_DM_DEBUG
|
|
#
|
|
# The OpenAccess oaTech library: OA_TECH_LIBRARY
|
|
# OA_TECH_LIBRARY_RELEASE
|
|
# OA_TECH_DEBUG
|
|
#
|
|
# The OpenAccess oaDesign library: OA_DESIGN_LIBRARY
|
|
# OA_DESIGN_LIBRARY_RELEASE
|
|
# OA_DESIGN_DEBUG
|
|
#
|
|
# The OpenAccess oaWafer library: OA_WAFER_LIBRARY
|
|
# OA_WAFER_LIBRARY_RELEASE
|
|
# OA_WAFER_DEBUG
|
|
#
|
|
# The OpenAccess oaPlugin library: OA_PLUGIN_LIBRARY
|
|
# OA_PLUGIN_LIBRARY_RELEASE
|
|
# OA_PLUGIN_DEBUG#
|
|
#
|
|
# Cadence version of OpenAccess has also
|
|
#
|
|
#liboaCMExportSample.so
|
|
#liboaCMTrackingSample.so
|
|
#liboaDMFileSysBase.so
|
|
#liboaDMFileSys.so
|
|
#liboaDMTurboBase.so
|
|
#liboaDMTurbo.so
|
|
#liboaLangBase.so
|
|
#liboaLangInfo.so
|
|
#liboaNativeLibDef.so
|
|
#liboaNativeText.so
|
|
#liboaPcellCPP.so
|
|
#liboaPcellScript.so
|
|
#liboaRQCDS.so
|
|
#liboaRQHGCDS.so
|
|
#liboaRQXYTree.so
|
|
#liboaTclCommon.so
|
|
#liboaTclBase.so
|
|
#liboaTclPlugIn.so
|
|
#liboaTclEngine.so
|
|
#liboaTclHelp.so
|
|
#liboaTcl.so
|
|
#
|
|
#
|
|
|
|
MESSAGE(STATUS "Searching for OPENACCESS ...")
|
|
SET(OA_INCLUDE_PATH_DESCRIPTION "directory containing the OpenAccess include files. E.g /usr/local/include")
|
|
|
|
SET(OA_DIR_MESSAGE "Set the OA_INCLUDE_DIR cmake cache entry to the ${OA_INCLUDE_PATH_DESCRIPTION}")
|
|
|
|
# don't even bother under WIN32
|
|
IF(UNIX)
|
|
|
|
SET(OA_DIR_SEARCH $ENV{OPENACCESS_TOP})
|
|
IF(OA_DIR_SEARCH)
|
|
FILE(TO_CMAKE_PATH ${OA_DIR_SEARCH} OA_DIR_SEARCH)
|
|
ENDIF(OA_DIR_SEARCH)
|
|
|
|
#
|
|
# Look for an installation.
|
|
#
|
|
FIND_PATH(OA_INCLUDE_PATH NAMES oa/oaDesign.h PATHS
|
|
# Look in other places.
|
|
${OA_DIR_SEARCH}
|
|
PATH_SUFFIXES include
|
|
# Help the user find it if we cannot.
|
|
DOC "The ${OA_INCLUDE_PATH_DESCRIPTION}"
|
|
)
|
|
|
|
|
|
# FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
|
|
# IF(CMAKE_UNAME)
|
|
# EXEC_PROGRAM(uname ARGS -a OUTPUT_VARIABLE SYSTEM_TYPE)
|
|
# ELSE(CMAKE_UNAME)
|
|
# MESSAGE(FATAL_ERROR, "uname command was not found")
|
|
# ENDIF(CMAKE_UNAME)
|
|
|
|
# IF($SYSTEM_TYPE MATCHES ".*x86_64.*")
|
|
# SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib/linux_rhel30_64/dbg)
|
|
# ELSEIF($SYSTEM_TYPE MATCHES ".*i686.*")
|
|
# SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib/linux_rhel21_32/dbg)
|
|
# ELSE($SYSTEM_TYPE MATCHES ".*x86_64.*")
|
|
# SET(OA_LIBRARY_DIR "unknown")
|
|
# ENDIF($SYSTEM_TYPE MATCHES ".*x86_64.*")
|
|
|
|
SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib)
|
|
|
|
# Set OA_OACOMMON_LIBRARY
|
|
FIND_LIBRARY(OA_OACOMMON_LIBRARY_RELEASE NAMES oaCommon PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OACOMMON_LIBRARY_DEBUG NAMES oaCommonD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OABASE_LIBRARY
|
|
FIND_LIBRARY(OA_OABASE_LIBRARY_RELEASE NAMES oaBase PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OABASE_LIBRARY_DEBUG NAMES oaBaseD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OACM_LIBRARY
|
|
FIND_LIBRARY(OA_OACM_LIBRARY_RELEASE NAMES oaCM PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OACM_LIBRARY_DEBUG NAMES oaCMD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OADM_LIBRARY
|
|
FIND_LIBRARY(OA_OADM_LIBRARY_RELEASE NAMES oaDM PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OADM_LIBRARY_DEBUG NAMES oaDMD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OATECH_LIBRARY
|
|
FIND_LIBRARY(OA_OATECH_LIBRARY_RELEASE NAMES oaTech PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OATECH_LIBRARY_DEBUG NAMES oaTechD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OADESIGN_LIBRARY
|
|
FIND_LIBRARY(OA_OADESIGN_LIBRARY_RELEASE NAMES oaDesign PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OADESIGN_LIBRARY_DEBUG NAMES oaDesignD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OAWAFER_LIBRARY
|
|
FIND_LIBRARY(OA_OAWAFER_LIBRARY_RELEASE NAMES oaWafer PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OAWAFER_LIBRARY_DEBUG NAMES oaWaferD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
# Set OA_OAPLUGIN_LIBRARY
|
|
FIND_LIBRARY(OA_OAPLUGIN_LIBRARY_RELEASE NAMES oaPlugIn PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH )
|
|
FIND_LIBRARY(OA_OAPLUGIN_LIBRARY_DEBUG NAMES oaPlugInD PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
|
|
############################################
|
|
#
|
|
# Check the existence of the libraries.
|
|
#
|
|
############################################
|
|
|
|
MACRO (_OA_ADJUST_LIB_VARS basename)
|
|
# if only the release version was found, set the debug variable also to the release version
|
|
IF (OA_${basename}_LIBRARY_RELEASE AND NOT OA_${basename}_LIBRARY_DEBUG)
|
|
SET(OA_${basename}_LIBRARY_DEBUG ${OA_${basename}_LIBRARY_RELEASE})
|
|
SET(OA_${basename}_LIBRARY ${OA_${basename}_LIBRARY_RELEASE})
|
|
SET(OA_${basename}_LIBRARIES ${OA_${basename}_LIBRARY_RELEASE})
|
|
ENDIF (OA_${basename}_LIBRARY_RELEASE AND NOT OA_${basename}_LIBRARY_DEBUG)
|
|
|
|
# if only the debug version was found, set the release variable also to the debug version
|
|
IF (OA_${basename}_LIBRARY_DEBUG AND NOT OA_${basename}_LIBRARY_RELEASE)
|
|
SET(OA_${basename}_LIBRARY_RELEASE ${OA_${basename}_LIBRARY_DEBUG})
|
|
SET(OA_${basename}_LIBRARY ${OA_${basename}_LIBRARY_DEBUG})
|
|
SET(OA_${basename}_LIBRARIES ${OA_${basename}_LIBRARY_DEBUG})
|
|
ENDIF (OA_${basename}_LIBRARY_DEBUG AND NOT OA_${basename}_LIBRARY_RELEASE)
|
|
IF (OA_${basename}_LIBRARY_DEBUG AND OA_${basename}_LIBRARY_RELEASE)
|
|
# if the generator supports configuration types then set
|
|
# optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
|
|
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
|
|
SET(OA_${basename}_LIBRARY optimized ${OA_${basename}_LIBRARY_RELEASE} debug ${OA_${basename}_LIBRARY_DEBUG})
|
|
ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
|
|
# if there are no configuration types and CMAKE_BUILD_TYPE has no value
|
|
# then just use the release libraries
|
|
SET(OA_${basename}_LIBRARY ${OA_${basename}_LIBRARY_RELEASE} )
|
|
ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
|
|
SET(OA_${basename}_LIBRARIES optimized ${OA_${basename}_LIBRARY_RELEASE} debug ${OA_${basename}_LIBRARY_DEBUG})
|
|
ENDIF (OA_${basename}_LIBRARY_DEBUG AND OA_${basename}_LIBRARY_RELEASE)
|
|
|
|
SET(OA_${basename}_LIBRARY ${OA_${basename}_LIBRARY} CACHE FILEPATH "The OpenAccess ${basename} library")
|
|
|
|
IF (OA_${basename}_LIBRARY)
|
|
SET(OA_${basename}_FOUND 1)
|
|
ENDIF (OA_${basename}_LIBRARY)
|
|
|
|
# Make variables changeble to the advanced user
|
|
MARK_AS_ADVANCED(OA_${basename}_LIBRARY OA_${basename}_LIBRARY_RELEASE OA_${basename}_LIBRARY_DEBUG OA_${basename}_INCLUDE_DIR)
|
|
ENDMACRO (_OA_ADJUST_LIB_VARS)
|
|
|
|
_OA_ADJUST_LIB_VARS(OACOMMON)
|
|
_OA_ADJUST_LIB_VARS(OABASE)
|
|
_OA_ADJUST_LIB_VARS(OACM)
|
|
_OA_ADJUST_LIB_VARS(OADM)
|
|
_OA_ADJUST_LIB_VARS(OATECH)
|
|
_OA_ADJUST_LIB_VARS(OADESIGN)
|
|
_OA_ADJUST_LIB_VARS(OAWAFER)
|
|
_OA_ADJUST_LIB_VARS(OAPLUGIN)
|
|
|
|
|
|
IF (OA_INCLUDE_PATH AND OA_OACOMMON_LIBRARY AND OA_OABASE_LIBRARY
|
|
AND OA_OADM_LIBRARY AND OA_OATECH_LIBRARY AND OA_OADESIGN_LIBRARY
|
|
AND OA_OAWAFER_LIBRARY AND OA_OAPLUGIN_LIBRARY)
|
|
SET(OA_FOUND "YES")
|
|
IF (NOT OA_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found OpenAccess")
|
|
ENDIF( NOT OA_FIND_QUIETLY)
|
|
SET(OA_INCLUDE_DIR
|
|
${OA_INCLUDE_PATH}
|
|
)
|
|
SET(OA_LIBRARIES
|
|
${OA_OACOMMON_LIBRARY}
|
|
${OA_OABASE_LIBRARY}
|
|
${OA_OACM_LIBRARY}
|
|
${OA_OADM_LIBRARY}
|
|
${OA_OATECH_LIBRARY}
|
|
${OA_OADESIGN_LIBRARY}
|
|
${OA_OAWAFER_LIBRARY}
|
|
${OA_OAPLUGIN_LIBRARY}
|
|
)
|
|
ELSE (OA_INCLUDE_PATH AND OA_LIBRARY_PATH)
|
|
SET(OA_FOUND "NO")
|
|
IF(OA_FIND_REQUIRED)
|
|
MESSAGE( FATAL_ERROR "OpenAccess libraries, includes NOT found!")
|
|
ELSE(OA_FIND_REQUIRED)
|
|
MESSAGE( STATUS "OpenAccess libraries, includes NOT found!")
|
|
ENDIF(OA_FIND_REQUIRED)
|
|
ENDIF (OA_INCLUDE_PATH AND OA_OACOMMON_LIBRARY AND OA_OABASE_LIBRARY
|
|
AND OA_OADM_LIBRARY AND OA_OATECH_LIBRARY AND OA_OADESIGN_LIBRARY
|
|
AND OA_OAWAFER_LIBRARY AND OA_OAPLUGIN_LIBRARY)
|
|
|
|
IF(OA_FOUND)
|
|
ADD_DEFINITIONS(-DHAVE_OPENACCESS)
|
|
ENDIF(OA_FOUND)
|
|
|
|
ENDIF(UNIX)
|