From dab855f141835b30043ce6086c857545b09ad434 Mon Sep 17 00:00:00 2001 From: Paul MARTZ Date: Thu, 1 Apr 2010 21:29:09 +0000 Subject: [PATCH] 2.8 branch: Improvements for building COLLADA. CMake only, does not change the actual COLLADA plugin (it's same as 2.8.2). Merged in this commit: r9759, r9952, r10336, r10626, and r10637. --- CMakeModules/FindCOLLADA.cmake | 190 ++++++++++++++---------------- src/osgPlugins/dae/CMakeLists.txt | 66 ++++++----- 2 files changed, 125 insertions(+), 131 deletions(-) diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake index 3b3eea4f4..5af53fe13 100644 --- a/CMakeModules/FindCOLLADA.cmake +++ b/CMakeModules/FindCOLLADA.cmake @@ -15,6 +15,17 @@ SET(COLLADA_DOM_ROOT "$ENV{COLLADA_DIR}/dom" CACHE PATH "Location of Collada DOM directory") +IF(APPLE) + SET(COLLADA_BUILDNAME "mac") +ELSEIF(MINGW) + SET(COLLADA_BUILDNAME "mingw") +ELSEIF(MSVC90) + SET(COLLADA_BUILDNAME "vc9") +ELSE(APPLE) + SET(COLLADA_BUILDNAME "vc8") +ENDIF(APPLE) + + FIND_PATH(COLLADA_INCLUDE_DIR dae.h ${COLLADA_DOM_ROOT}/include $ENV{COLLADA_DIR}/include @@ -37,10 +48,10 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h ) FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY - NAMES collada_dom collada14dom libcollada14dom21 + NAMES collada_dom collada14dom Collada14Dom libcollada14dom21 libcollada14dom22 PATHS - ${COLLADA_DOM_ROOT}/build/vc8-1.4 - $ENV{COLLADA_DIR}/build/vc8-1.4 + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4 + $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4 $ENV{COLLADA_DIR}/lib $ENV{COLLADA_DIR}/lib-dbg $ENV{COLLADA_DIR} @@ -62,10 +73,10 @@ FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY ) FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY_DEBUG - NAMES collada_dom-d collada14dom-d libcollada14dom21-d + NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d PATHS - ${COLLADA_DOM_ROOT}/build/vc8-1.4-d - $ENV{COLLADA_DIR}/build/vc8-1.4-d + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4-d + $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4-d $ENV{COLLADA_DIR}/lib $ENV{COLLADA_DIR}/lib-dbg $ENV{COLLADA_DIR} @@ -87,10 +98,10 @@ FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY_DEBUG ) FIND_LIBRARY(COLLADA_STATIC_LIBRARY - NAMES libcollada14dom21-s + NAMES libcollada14dom21-s libcollada14dom22-s PATHS - ${COLLADA_DOM_ROOT}/build/vc8-1.4 - $ENV{COLLADA_DIR}/build/vc8-1.4 + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4 + $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4 $ENV{COLLADA_DIR}/lib $ENV{COLLADA_DIR}/lib-dbg $ENV{COLLADA_DIR} @@ -112,10 +123,10 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY ) FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG - NAMES collada_dom-sd collada14dom-sd libcollada14dom21-sd + NAMES collada_dom-sd collada14dom-sd libcollada14dom21-sd libcollada14dom22-sd PATHS - ${COLLADA_DOM_ROOT}/build/vc8-1.4-d - $ENV{COLLADA_DIR}/build/vc8-1.4-d + ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4-d + $ENV{COLLADA_DIR}/build/${COLLADA_BUILDNAME}-1.4-d $ENV{COLLADA_DIR}/lib $ENV{COLLADA_DIR}/lib-dbg $ENV{COLLADA_DIR} @@ -136,8 +147,6 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG /usr/freeware/lib64 ) -IF(COLLADA_STATIC_LIBRARY) - # find extra libraries that the static linking requires FIND_PACKAGE(LibXml2) @@ -168,105 +177,80 @@ IF(COLLADA_STATIC_LIBRARY) ENDIF(WIN32) ENDIF(ZLIB_FOUND) - IF(WIN32) + FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY + NAMES pcrecpp + PATHS + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw + ) - FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY - NAMES pcrecpp - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ) + FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY_DEBUG + NAMES pcrecpp-d + PATHS + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw + ) - FIND_LIBRARY(COLLADA_PCRECPP_LIBRARY_DEBUG - NAMES pcrecpp-d - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ) + FIND_LIBRARY(COLLADA_PCRE_LIBRARY + NAMES pcre + PATHS + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw + ) - FIND_LIBRARY(COLLADA_PCRE_LIBRARY - NAMES pcre - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ) + FIND_LIBRARY(COLLADA_PCRE_LIBRARY_DEBUG + NAMES pcre-d + PATHS + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac + ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw + ) - FIND_LIBRARY(COLLADA_PCRE_LIBRARY_DEBUG - NAMES pcre-d - PATHS - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mac - ${COLLADA_DOM_ROOT}/external-libs/pcre/lib/mingw - ) + FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY + NAMES minizip + PATHS + ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib + ${COLLADA_DOM_ROOT}/external-libs/minizip/mac + ) - FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY - NAMES minizip - PATHS - ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib - ${COLLADA_DOM_ROOT}/external-libs/minizip/mac - ) + FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY_DEBUG + NAMES minizip-d + PATHS + ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib + ${COLLADA_DOM_ROOT}/external-libs/minizip/mac + ) - FIND_LIBRARY(COLLADA_MINIZIP_LIBRARY_DEBUG - NAMES minizip-d - PATHS - ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib - ${COLLADA_DOM_ROOT}/external-libs/minizip/mac - ) - - ENDIF(WIN32) + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY + NAMES libboost_filesystem boost_filesystem + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw + ) -ENDIF(COLLADA_STATIC_LIBRARY) + FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG + NAMES libboost_filesystem-d boost_filesystem-d + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw + ) -IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY + NAMES libboost_system boost_system + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw + ) - IF(WIN32) - - FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY - NAMES libboost_filesystem - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ) + FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG + NAMES libboost_system-d boost_system-d + PATHS + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} + ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw + ) - FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG - NAMES libboost_filesystem-d - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ) - - FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY - NAMES libboost_system - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ) - - FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG - NAMES libboost_system-d - PATHS - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc8 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/vc9 - ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw - ) - - FIND_PATH(COLLADA_BOOST_INCLUDE_DIR boost/filesystem/convenience.hpp - ${COLLADA_DOM_ROOT}/external-libs/boost - ) - - ENDIF(WIN32) - -ENDIF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) SET(COLLADA_FOUND "NO") IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt index 8f74699b5..49dedf701 100644 --- a/src/osgPlugins/dae/CMakeLists.txt +++ b/src/osgPlugins/dae/CMakeLists.txt @@ -1,8 +1,4 @@ -IF (WIN32) - INCLUDE_DIRECTORIES( ${COLLADA_INCLUDE_DIR} ${COLLADA_INCLUDE_DIR}/1.4 ${COLLADA_BOOST_INCLUDE_DIR} ) -ELSE (WIN32) - INCLUDE_DIRECTORIES( ${COLLADA_INCLUDE_DIR} ${COLLADA_INCLUDE_DIR}/1.4) -ENDIF (WIN32) +INCLUDE_DIRECTORIES( ${COLLADA_INCLUDE_DIR} ${COLLADA_INCLUDE_DIR}/1.4) SET(TARGET_SRC daeReader.cpp @@ -23,40 +19,54 @@ SET(TARGET_H daeReader.h daeWriter.h domSourceReader.h + ReaderWriterDAE.h ) -IF (COLLADA_DYNAMIC_LIBRARY AND COLLADA_STATIC_LIBRARY) - +IF(COLLADA_DYNAMIC_LIBRARY AND COLLADA_STATIC_LIBRARY) OPTION(COLLADA_USE_STATIC "Set to ON to build OpenSceneGraph with static Collada support." OFF) +ELSEIF(COLLADA_STATIC_LIBRARY) + SET(COLLADA_USE_STATIC "YES") +ELSE() + SET(COLLADA_USE_STATIC "NO") +ENDIF() -ELSE(COLLADA_DYNAMIC_LIBRARY AND COLLADA_STATIC_LIBRARY) +ADD_DEFINITIONS(-DNO_BOOST) - IF (COLLADA_STATIC_LIBRARY) - SET(COLLADA_USE_STATIC "YES") - ELSE(COLLADA_STATIC_LIBRARY) - SET(COLLADA_USE_STATIC "NO") - ENDIF(COLLADA_STATIC_LIBRARY) - -ENDIF(COLLADA_DYNAMIC_LIBRARY AND COLLADA_STATIC_LIBRARY) - -IF (COLLADA_USE_STATIC) +IF(COLLADA_USE_STATIC) IF(WIN32) ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB) - SET(TARGET_LIBRARIES_VARS COLLADA_STATIC_LIBRARY COLLADA_LIBXML_LIBRARY COLLADA_ZLIB_LIBRARY COLLADA_PCRECPP_LIBRARY COLLADA_PCRE_LIBRARY COLLADA_MINIZIP_LIBRARY COLLADA_BOOST_FILESYSTEM_LIBRARY COLLADA_BOOST_SYSTEM_LIBRARY) - ELSE(WIN32) - SET(TARGET_LIBRARIES_VARS COLLADA_STATIC_LIBRARY COLLADA_LIBXML_LIBRARY COLLADA_PCRECPP_LIBRARY COLLADA_BOOST_FILESYSTEM_LIBRARY COLLADA_BOOST_SYSTEM_LIBRARY) - ENDIF(WIN32) -ELSE (COLLADA_USE_STATIC) + SET(TARGET_LIBRARIES_VARS + COLLADA_STATIC_LIBRARY + COLLADA_LIBXML_LIBRARY + COLLADA_ZLIB_LIBRARY + COLLADA_PCRECPP_LIBRARY + COLLADA_PCRE_LIBRARY + COLLADA_MINIZIP_LIBRARY + COLLADA_BOOST_FILESYSTEM_LIBRARY + COLLADA_BOOST_SYSTEM_LIBRARY) + ELSE() + SET(TARGET_LIBRARIES_VARS + COLLADA_STATIC_LIBRARY + COLLADA_LIBXML_LIBRARY + COLLADA_PCRECPP_LIBRARY + COLLADA_PCRE_LIBRARY + COLLADA_BOOST_FILESYSTEM_LIBRARY + COLLADA_BOOST_SYSTEM_LIBRARY) + ENDIF() +ELSE() IF(WIN32) - ADD_DEFINITIONS(-DDOM_DYNAMIC -DBOOST_ALL_NO_LIB) - SET(TARGET_LIBRARIES_VARS COLLADA_DYNAMIC_LIBRARY COLLADA_BOOST_SYSTEM_LIBRARY) - ELSE(WIN32) + ADD_DEFINITIONS(-DDOM_DYNAMIC) SET(TARGET_LIBRARIES_VARS COLLADA_DYNAMIC_LIBRARY) - ENDIF(WIN32) -ENDIF(COLLADA_USE_STATIC) + ELSE() + SET(TARGET_LIBRARIES_VARS + COLLADA_DYNAMIC_LIBRARY + COLLADA_BOOST_FILESYSTEM_LIBRARY) + ENDIF() + +ENDIF() -SET(TARGET_ADDED_LIBRARIES osgSim ) +SET(TARGET_ADDED_LIBRARIES osgSim osgAnimation) #### end var setup ### SETUP_PLUGIN(dae dae)