From 9ad6434c4e6c1d157d4ce4d0904c46154229aec9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 24 Aug 2011 16:04:35 +0000 Subject: opencollada find module. hopefully solves the problem where includes can in an `/include` subdir or not. --- build_files/cmake/Modules/FindOpenCOLLADA.cmake | 123 ++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 build_files/cmake/Modules/FindOpenCOLLADA.cmake (limited to 'build_files/cmake/Modules') diff --git a/build_files/cmake/Modules/FindOpenCOLLADA.cmake b/build_files/cmake/Modules/FindOpenCOLLADA.cmake new file mode 100644 index 00000000000..eef2049f962 --- /dev/null +++ b/build_files/cmake/Modules/FindOpenCOLLADA.cmake @@ -0,0 +1,123 @@ +# - Find OpenCOLLADA library +# Find the native OpenCOLLADA includes and library +# This module defines +# OPENCOLLADA_INCLUDE_DIRS, where to find COLLADABaseUtils/ and +# COLLADAFramework/, Set when OPENCOLLADA_INCLUDE_DIR is found. +# OPENCOLLADA_LIBRARIES, libraries to link against to use OpenCOLLADA. +# OPENCOLLADA_ROOT_DIR, The base directory to search for OpenCOLLADA. +# This can also be an environment variable. +# OPENCOLLADA_FOUND, If false, do not try to use OpenCOLLADA. +# +# also defined, but not for general use are +# OPENCOLLADA_LIBRARY, where to find the OpenCOLLADA library. + +#============================================================================= +# Copyright 2011 Blender Foundation. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# note about include paths, there are 2 ways includes are set +# +# Where '/usr/include/opencollada' is the root dir: +# /usr/include/opencollada/COLLADABaseUtils/COLLADABUPlatform.h +# +# Where '/opt/opencollada' is the base dir: +# /opt/opencollada/COLLADABaseUtils/include/COLLADABUPlatform.h + +# If OPENCOLLADA_ROOT_DIR was defined in the environment, use it. +IF(NOT OPENCOLLADA_ROOT_DIR AND NOT $ENV{OPENCOLLADA_ROOT_DIR} STREQUAL "") + SET(OPENCOLLADA_ROOT_DIR $ENV{OPENCOLLADA_ROOT_DIR}) +ENDIF() + +SET(_opencollada_FIND_INCLUDES + COLLADAStreamWriter + COLLADABaseUtils + COLLADAFramework + COLLADASaxFrameworkLoader + GeneratedSaxParser +) + +SET(_opencollada_FIND_COMPONENTS + OpenCOLLADAStreamWriter + OpenCOLLADASaxFrameworkLoader + OpenCOLLADAFramework + OpenCOLLADABaseUtils + GeneratedSaxParser + UTF + MathMLSolver + pcre + ftoa + buffer + xml2 +) + +SET(_opencollada_SEARCH_DIRS + ${OPENCOLLADA_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave +) + +SET(_opencollada_INCLUDES) +FOREACH(COMPONENT ${_opencollada_FIND_INCLUDES}) + STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) + + # need to use this even thouh we are looking for a dir + FIND_FILE(OPENCOLLADA_${UPPERCOMPONENT}_INCLUDE_DIR + NAMES + ${COMPONENT}/include + ${COMPONENT} + HINTS + # some packagers do this. + ${OPENCOLLADA_ROOT_DIR}/include/opencollada + ${_opencollada_SEARCH_DIRS} + ) + MARK_AS_ADVANCED(OPENCOLLADA_${UPPERCOMPONENT}_INCLUDE_DIR) + LIST(APPEND _opencollada_INCLUDES "${OPENCOLLADA_${UPPERCOMPONENT}_INCLUDE_DIR}") +ENDFOREACH() + + +SET(_opencollada_LIBRARIES) +FOREACH(COMPONENT ${_opencollada_FIND_COMPONENTS}) + STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) + + FIND_LIBRARY(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY + NAMES + ${COMPONENT} + HINTS + ${_opencollada_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + MARK_AS_ADVANCED(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY) + LIST(APPEND _opencollada_LIBRARIES "${OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY}") +ENDFOREACH() + + +FIND_LIBRARY(OPENCOLLADA_LIBRARY + NAMES + jack + HINTS + ${_opencollada_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + +# handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenCOLLADA DEFAULT_MSG + _opencollada_LIBRARIES _opencollada_INCLUDES) + + +IF(OPENCOLLADA_FOUND) + SET(OPENCOLLADA_LIBRARIES ${_opencollada_LIBRARIES}) + SET(OPENCOLLADA_INCLUDE_DIRS ${_opencollada_INCLUDES}) +ENDIF(OPENCOLLADA_FOUND) -- cgit v1.2.3