forked from bartvdbraak/blender
21253def7c
- FindXML2 we had copied from another project was always running and not using cached value, rewrote based on template used for most of our other find modules which makes use of 'FindPackageHandleStandardArgs' - mark statuc collada libs as advanced.
140 lines
4.3 KiB
CMake
140 lines
4.3 KiB
CMake
# - 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
|
|
MathMLSolver
|
|
)
|
|
|
|
# Fedora openCOLLADA package links these statically
|
|
SET(_opencollada_FIND_STATIC_COMPONENTS
|
|
UTF
|
|
ftoa
|
|
buffer
|
|
)
|
|
|
|
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}
|
|
# Ubuntu ppa needs this.
|
|
# Alternative would be to suffix all members of search path
|
|
# but this is less trouble, just looks strange.
|
|
include/opencollada/${COMPONENT}
|
|
HINTS
|
|
${_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
|
|
# Ubuntu ppa needs this.
|
|
lib64/opencollada lib/opencollada
|
|
)
|
|
MARK_AS_ADVANCED(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY)
|
|
LIST(APPEND _opencollada_LIBRARIES "${OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY}")
|
|
ENDFOREACH()
|
|
|
|
FOREACH(COMPONENT ${_opencollada_FIND_STATIC_COMPONENTS})
|
|
STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
|
|
|
FIND_LIBRARY(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY
|
|
NAMES
|
|
${COMPONENT}
|
|
HINTS
|
|
${_opencollada_SEARCH_DIRS}
|
|
PATH_SUFFIXES
|
|
lib64 lib
|
|
# Ubuntu ppa needs this.
|
|
lib64/opencollada lib/opencollada
|
|
)
|
|
MARK_AS_ADVANCED(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY)
|
|
IF(OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY)
|
|
LIST(APPEND _opencollada_LIBRARIES "${OPENCOLLADA_${UPPERCOMPONENT}_LIBRARY}")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
|
|
|
|
# handle the QUIETLY and REQUIRED arguments and set OPENCOLLADA_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)
|