From 17da548343b54ae9b0d4164b7376cc2510e7c587 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 10 Feb 2009 19:25:50 +0000 Subject: [PATCH] From Roger James and Robert Osfield, fixes and reorganization to better support Windows dyanmic library build --- CMakeModules/FindCOLLADA.cmake | 192 ++++++++++++++++-------------- src/osgPlugins/dae/CMakeLists.txt | 11 +- 2 files changed, 113 insertions(+), 90 deletions(-) diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake index 5eb53849f..b2a35cb0d 100644 --- a/CMakeModules/FindCOLLADA.cmake +++ b/CMakeModules/FindCOLLADA.cmake @@ -144,110 +144,128 @@ IF(COLLADA_STATIC_LIBRARY) IF (LIBXML2_FOUND) SET(COLLADA_LIBXML_LIBRARY ${LIBXML2_LIBRARIES}) ELSE(LIBXML2_FOUND) - FIND_LIBRARY(COLLADA_LIBXML_LIBRARY - NAMES libxml2 - PATHS - ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib - ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib - ) + IF(WIN32) + FIND_LIBRARY(COLLADA_LIBXML_LIBRARY + NAMES libxml2 + PATHS + ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib + ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib + ) + ENDIF(WIN32) ENDIF(LIBXML2_FOUND) FIND_PACKAGE(ZLIB) IF (ZLIB_FOUND) SET(COLLADA_ZLIB_LIBRARY ${ZLIB_LIBRARY}) ELSE(ZLIB_FOUND) - FIND_LIBRARY(COLLADA_ZLIB_LIBRARY - NAMES zlib - PATHS - ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib - ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib - ) + IF(WIN32) + FIND_LIBRARY(COLLADA_ZLIB_LIBRARY + NAMES zlib + PATHS + ${COLLADA_DOM_ROOT}/external-libs/libxml2/win32/lib + ${COLLADA_DOM_ROOT}/external-libs/libxml2/mingw/lib + ) + ENDIF(WIN32) ENDIF(ZLIB_FOUND) - 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 - ) + IF(WIN32) - 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_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_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_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_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_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_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_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_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_MINIZIP_LIBRARY + NAMES minizip + PATHS + ${COLLADA_DOM_ROOT}/external-libs/minizip/win32/lib + ${COLLADA_DOM_ROOT}/external-libs/minizip/mac + ) - 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_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) ENDIF(COLLADA_STATIC_LIBRARY) +IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) + + 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_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 + ) + + SET(COLLADA_BOOST_INCLUDE_DIR ${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) IF (COLLADA_INCLUDE_DIR) diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt index 5b7f06250..8f74699b5 100644 --- a/src/osgPlugins/dae/CMakeLists.txt +++ b/src/osgPlugins/dae/CMakeLists.txt @@ -1,4 +1,8 @@ -INCLUDE_DIRECTORIES( ${COLLADA_INCLUDE_DIR} ${COLLADA_INCLUDE_DIR}/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) SET(TARGET_SRC daeReader.cpp @@ -38,14 +42,15 @@ ENDIF(COLLADA_DYNAMIC_LIBRARY AND COLLADA_STATIC_LIBRARY) 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) IF(WIN32) - ADD_DEFINITIONS(-DDOM_DYNAMIC) - SET(TARGET_LIBRARIES_VARS COLLADA_DYNAMIC_LIBRARY) + ADD_DEFINITIONS(-DDOM_DYNAMIC -DBOOST_ALL_NO_LIB) + SET(TARGET_LIBRARIES_VARS COLLADA_DYNAMIC_LIBRARY COLLADA_BOOST_SYSTEM_LIBRARY) ELSE(WIN32) SET(TARGET_LIBRARIES_VARS COLLADA_DYNAMIC_LIBRARY) ENDIF(WIN32)