Revision: 39675
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39675
Author:   campbellbarton
Date:     2011-08-24 16:04:35 +0000 (Wed, 24 Aug 2011)
Log Message:
-----------
opencollada find module. hopefully solves the problem where includes can in an 
`/include` subdir or not.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/source/blender/collada/CMakeLists.txt

Added Paths:
-----------
    trunk/blender/build_files/cmake/Modules/FindOpenCOLLADA.cmake

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt        2011-08-24 15:47:05 UTC (rev 39674)
+++ trunk/blender/CMakeLists.txt        2011-08-24 16:04:35 UTC (rev 39675)
@@ -450,21 +450,20 @@
        endif()
 
        if(WITH_OPENCOLLADA)
-               set(OPENCOLLADA /usr/local/opencollada CACHE PATH "OpenCollada 
Directory")
-               mark_as_advanced(OPENCOLLADA)
-               set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
-               set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter 
OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils 
GeneratedSaxParser UTF MathMLSolver pcre ftoa buffer xml2)
-               set(OPENCOLLADA_INCLUDE_DIR ${OPENCOLLADA})
+               find_package(OpenCOLLADA)
+               if(OPENCOLLADA_FOUND))
+                       set(PCRE /usr CACHE PATH "PCRE Directory")
+                       mark_as_advanced(PCRE)
+                       set(PCRE_LIBPATH ${PCRE}/lib)
+                       set(PCRE_LIB pcre)
 
-               set(PCRE /usr CACHE PATH "PCRE Directory")
-               mark_as_advanced(PCRE)
-               set(PCRE_LIBPATH ${PCRE}/lib)
-               set(PCRE_LIB pcre)
-
-               set(EXPAT /usr CACHE PATH "Expat Directory")
-               mark_as_advanced(EXPAT)
-               set(EXPAT_LIBPATH ${EXPAT}/lib)
-               set(EXPAT_LIB expat)
+                       set(EXPAT /usr CACHE PATH "Expat Directory")
+                       mark_as_advanced(EXPAT)
+                       set(EXPAT_LIBPATH ${EXPAT}/lib)
+                       set(EXPAT_LIB expat)
+               else()
+                       set(WITH_OPENCOLLADA OFF)
+               endif()
        endif()
 
        if(WITH_MEM_JEMALLOC)
@@ -689,9 +688,15 @@
                endif()
 
                if(WITH_OPENCOLLADA)
-                       set(OPENCOLLADA_INCLUDE_DIR
-                               ${LIBDIR}/opencollada/include
+
+                       set(OPENCOLLADA_INCLUDE_DIRS
+                               
${LIBDIR}/opencollada/include/COLLADAStreamWriter/include
+                               
${LIBDIR}/opencollada/include/COLLADABaseUtils/include
+                               
${LIBDIR}/opencollada/include/COLLADAFramework/include
+                               
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
+                               
${LIBDIR}/opencollada/include/GeneratedSaxParser/include                        
                        )
+
                        set(OPENCOLLADA_LIBRARIES
                                
${LIBDIR}/opencollada/lib/OpenCOLLADASaxFrameworkLoader.lib
                                
${LIBDIR}/opencollada/lib/OpenCOLLADAFramework.lib
@@ -837,7 +842,13 @@
 
                if(WITH_OPENCOLLADA)
                        set(OPENCOLLADA ${LIBDIR}/gcc/opencollada)
-                       set(OPENCOLLADA_INCLUDE_DIR ${OPENCOLLADA}/include)
+                       set(OPENCOLLADA_INCLUDE_DIRS
+                               
${LIBDIR}/opencollada/include/COLLADAStreamWriter/include
+                               
${LIBDIR}/opencollada/include/COLLADABaseUtils/include
+                               
${LIBDIR}/opencollada/include/COLLADAFramework/include
+                               
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
+                               
${LIBDIR}/opencollada/include/GeneratedSaxParser/include                        
+                       )
                        set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib 
${OPENCOLLADA}/lib)
                        set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter 
OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils 
GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa)
                        set(PCRE_LIB pcre)
@@ -1048,7 +1059,15 @@
 
        if(WITH_OPENCOLLADA)
                set(OPENCOLLADA ${LIBDIR}/opencollada)
-               set(OPENCOLLADA_INCLUDE_DIR ${OPENCOLLADA}/include)
+
+               set(OPENCOLLADA_INCLUDE_DIRS
+                       ${LIBDIR}/opencollada/include/COLLADAStreamWriter
+                       ${LIBDIR}/opencollada/include/COLLADABaseUtils
+                       ${LIBDIR}/opencollada/include/COLLADAFramework
+                       ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
+                       ${LIBDIR}/opencollada/include/GeneratedSaxParser
+               )
+
                set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
                set(OPENCOLLADA_LIBRARIES "OpenCOLLADASaxFrameworkLoader 
-lOpenCOLLADAFramework -lOpenCOLLADABaseUtils -lOpenCOLLADAStreamWriter 
-lMathMLSolver -lGeneratedSaxParser -lUTF -lxml2 -lbuffer -lftoa" )
                #pcre is bundled with openCollada

Added: trunk/blender/build_files/cmake/Modules/FindOpenCOLLADA.cmake
===================================================================
--- trunk/blender/build_files/cmake/Modules/FindOpenCOLLADA.cmake               
                (rev 0)
+++ trunk/blender/build_files/cmake/Modules/FindOpenCOLLADA.cmake       
2011-08-24 16:04:35 UTC (rev 39675)
@@ -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)

Modified: trunk/blender/source/blender/collada/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/collada/CMakeLists.txt 2011-08-24 15:47:05 UTC 
(rev 39674)
+++ trunk/blender/source/blender/collada/CMakeLists.txt 2011-08-24 16:04:35 UTC 
(rev 39675)
@@ -39,27 +39,9 @@
 )
 
 set(INC_SYS
-
+       ${OPENCOLLADA_INCLUDE_DIRS}
 )
 
-if(APPLE)
-       list(APPEND INC_SYS
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader
-               ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser
-       )
-else()
-       list(APPEND INC_SYS
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter/include
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils/include
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADAFramework/include
-               ${OPENCOLLADA_INCLUDE_DIR}/COLLADASaxFrameworkLoader/include
-               ${OPENCOLLADA_INCLUDE_DIR}/GeneratedSaxParser/include
-       )
-endif()
-
 set(SRC
        AnimationImporter.cpp
        ArmatureExporter.cpp

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to