2007-03-28 15:34:46 +08:00
|
|
|
################################################################################################
|
|
|
|
# this Macro find a generic dependency, handling debug suffix
|
|
|
|
# all the paramenter are required, in case of lists, use "" in calling
|
|
|
|
################################################################################################
|
|
|
|
|
2010-03-11 01:23:58 +08:00
|
|
|
MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX EXSUFFIX)
|
2007-03-28 15:34:46 +08:00
|
|
|
|
2010-03-11 01:23:58 +08:00
|
|
|
MESSAGE(STATUS "searching ${DEPNAME} -->${INCLUDEFILE}<-->${LIBRARY_NAMES_BASE}<-->${SEARCHPATHLIST}<--")
|
2008-05-27 06:36:58 +08:00
|
|
|
|
2007-04-27 17:49:28 +08:00
|
|
|
SET(MY_PATH_INCLUDE )
|
|
|
|
SET(MY_PATH_LIB )
|
2016-06-01 23:22:42 +08:00
|
|
|
|
2007-04-27 17:49:28 +08:00
|
|
|
FOREACH( MYPATH ${SEARCHPATHLIST} )
|
|
|
|
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MYPATH}/include)
|
|
|
|
SET(MY_PATH_LIB ${MY_PATH_LIB} ${MYPATH}/lib)
|
|
|
|
ENDFOREACH( MYPATH ${SEARCHPATHLIST} )
|
2016-06-01 23:22:42 +08:00
|
|
|
|
2007-04-27 17:49:28 +08:00
|
|
|
FIND_PATH("${DEPNAME}_INCLUDE_DIR" ${INCLUDEFILE}
|
|
|
|
${MY_PATH_INCLUDE}
|
2008-05-27 06:36:58 +08:00
|
|
|
NO_DEFAULT_PATH
|
2007-04-27 17:49:28 +08:00
|
|
|
)
|
|
|
|
MARK_AS_ADVANCED("${DEPNAME}_INCLUDE_DIR")
|
|
|
|
#MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--")
|
2016-06-01 23:22:42 +08:00
|
|
|
|
2010-03-11 01:23:58 +08:00
|
|
|
SET(LIBRARY_NAMES "")
|
|
|
|
FOREACH(LIBNAME ${LIBRARY_NAMES_BASE})
|
|
|
|
LIST(APPEND LIBRARY_NAMES "${LIBNAME}${EXSUFFIX}")
|
|
|
|
ENDFOREACH(LIBNAME)
|
|
|
|
FIND_LIBRARY("${DEPNAME}_LIBRARY"
|
2007-04-27 17:49:28 +08:00
|
|
|
NAMES ${LIBRARY_NAMES}
|
|
|
|
PATHS ${MY_PATH_LIB}
|
2008-05-27 06:36:58 +08:00
|
|
|
NO_DEFAULT_PATH
|
2007-04-27 17:49:28 +08:00
|
|
|
)
|
|
|
|
SET(LIBRARY_NAMES_DEBUG "")
|
2010-03-11 01:23:58 +08:00
|
|
|
FOREACH(LIBNAME ${LIBRARY_NAMES_BASE})
|
|
|
|
LIST(APPEND LIBRARY_NAMES_DEBUG "${LIBNAME}${DEBUGSUFFIX}${EXSUFFIX}")
|
2007-04-27 17:49:28 +08:00
|
|
|
ENDFOREACH(LIBNAME)
|
2016-06-01 23:22:42 +08:00
|
|
|
FIND_LIBRARY("${DEPNAME}_LIBRARY_DEBUG"
|
2007-04-27 17:49:28 +08:00
|
|
|
NAMES ${LIBRARY_NAMES_DEBUG}
|
|
|
|
PATHS ${MY_PATH_LIB}
|
2008-05-27 06:36:58 +08:00
|
|
|
NO_DEFAULT_PATH
|
2007-04-27 17:49:28 +08:00
|
|
|
)
|
|
|
|
MARK_AS_ADVANCED("${DEPNAME}_LIBRARY")
|
|
|
|
#MESSAGE( " ${DEPNAME}_LIBRARY --> ${${DEPNAME}_LIBRARY}<--")
|
|
|
|
SET( ${DEPNAME}_FOUND "NO" )
|
|
|
|
IF(${DEPNAME}_INCLUDE_DIR AND ${DEPNAME}_LIBRARY)
|
|
|
|
SET( ${DEPNAME}_FOUND "YES" )
|
|
|
|
IF(NOT ${DEPNAME}_LIBRARY_DEBUG)
|
|
|
|
MESSAGE("-- Warning Debug ${DEPNAME} not found, using: ${${DEPNAME}_LIBRARY}")
|
|
|
|
SET(${DEPNAME}_LIBRARY_DEBUG "${${DEPNAME}_LIBRARY}")
|
|
|
|
ENDIF(NOT ${DEPNAME}_LIBRARY_DEBUG)
|
2016-06-01 23:22:42 +08:00
|
|
|
|
|
|
|
SET(${DEPNAME}_LIBRARIES debug ${${DEPNAME}_LIBRARY_DEBUG} optimized ${${DEPNAME}_LIBRARY} )
|
|
|
|
|
2007-04-27 17:49:28 +08:00
|
|
|
ENDIF(${DEPNAME}_INCLUDE_DIR AND ${DEPNAME}_LIBRARY)
|
2016-06-01 23:22:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-11 01:23:58 +08:00
|
|
|
ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX)
|
2007-03-28 15:34:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
################################################################################################
|
2013-07-23 13:25:39 +08:00
|
|
|
# this Macro is tailored to Mike and Torbens dependencies
|
2007-03-28 15:34:46 +08:00
|
|
|
################################################################################################
|
|
|
|
|
|
|
|
MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)
|
2016-10-11 18:02:20 +08:00
|
|
|
FIND_DEPENDENCY(TIFF tiff.h "libtiff;tiff" ${OSG_3RDPARTY_BIN} "D" "")
|
2016-10-10 18:21:28 +08:00
|
|
|
FIND_DEPENDENCY(FREETYPE ft2build.h "freetype;freetype2311MT;freetype234;freetype234MT;freetype235;freetype237;freetype238;freetype244;freetype250;freetype27;" ${OSG_3RDPARTY_BIN} "d" "")
|
2007-04-27 17:49:28 +08:00
|
|
|
IF(FREETYPE_FOUND)
|
2016-06-01 23:22:42 +08:00
|
|
|
#forcing subsequent FindFreeType stuff to not search for other variables.... kind of a hack
|
2009-02-27 06:09:47 +08:00
|
|
|
SET(FREETYPE_INCLUDE_DIR_ft2build ${FREETYPE_INCLUDE_DIR} CACHE PATH "" FORCE)
|
|
|
|
SET(FREETYPE_INCLUDE_DIR_freetype2 ${FREETYPE_INCLUDE_DIR} CACHE PATH "" FORCE)
|
2007-04-27 17:49:28 +08:00
|
|
|
MARK_AS_ADVANCED(FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2)
|
2009-02-26 18:48:04 +08:00
|
|
|
SET(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
|
2007-04-27 17:49:28 +08:00
|
|
|
ENDIF(FREETYPE_FOUND)
|
2016-10-11 18:02:20 +08:00
|
|
|
FIND_DEPENDENCY(CURL curl/curl.h "libcurl;curllib;libcurl_imp" ${OSG_3RDPARTY_BIN} "D" "")
|
2010-06-28 16:20:59 +08:00
|
|
|
FIND_DEPENDENCY(JPEG jpeglib.h "libjpeg;jpeg" ${OSG_3RDPARTY_BIN} "D" "")
|
2010-03-11 01:23:58 +08:00
|
|
|
FIND_DEPENDENCY(GDAL gdal.h "gdal;gdal16" ${OSG_3RDPARTY_BIN} "d" "_i")
|
|
|
|
FIND_DEPENDENCY(GLUT GL/glut.h glut32 ${OSG_3RDPARTY_BIN} "D" "")
|
2007-04-27 17:49:28 +08:00
|
|
|
IF(GLUT_FOUND)
|
2016-06-01 23:22:42 +08:00
|
|
|
#forcing subsequent FindGlut stuff to not search for other variables.... kind of a hack
|
2007-04-27 17:49:28 +08:00
|
|
|
SET(GLUT_glut_LIBRARY ${GLUT_LIBRARY} CACHE FILEPATH "")
|
|
|
|
MARK_AS_ADVANCED(GLUT_glut_LIBRARY)
|
|
|
|
ENDIF(GLUT_FOUND)
|
2010-06-28 16:20:59 +08:00
|
|
|
FIND_DEPENDENCY(GIFLIB gif_lib.h "ungif;libungif;giflib" ${OSG_3RDPARTY_BIN} "D" "")
|
2010-03-11 01:23:58 +08:00
|
|
|
FIND_DEPENDENCY(ZLIB zlib.h "z;zlib;zlib1" ${OSG_3RDPARTY_BIN} "D" "")
|
2007-04-27 17:49:28 +08:00
|
|
|
IF(ZLIB_FOUND)
|
From Torben Dannhauer, "after being absent for more than 12 month, I'm very pleased to present my
new 3rdparty package (V8).
This package is compiled with Visual Studio 2012 Update 3. Some community
members complained that these package is very large (indeed), so I
introduced 2 versions:
- The small version contains the dependencies for several image file formats
( tiff, png, gif, jpeg), as well as zlib, minizip, curl, freetype, glut,
gdal and openSSL
- The full version will include all libraries which were include in the
previous releases of my 3rd party package.
Some of the included libraries are released in newer versions, so I adapted
the attached CMake module to find these renamed files.
I hope you can merge this minor changes soon, since I plan to publish the
small 3rdparty package today.
"
2013-07-19 00:29:13 +08:00
|
|
|
FIND_DEPENDENCY(PNG png.h "libpng;libpng13;libpng15;libpng16" ${OSG_3RDPARTY_BIN} "D" "")
|
2007-04-27 17:49:28 +08:00
|
|
|
IF(PNG_FOUND)
|
2016-06-01 23:22:42 +08:00
|
|
|
#forcing subsequent FindPNG stuff to not search for other variables.... kind of a hack
|
2007-04-27 17:49:28 +08:00
|
|
|
SET(PNG_PNG_INCLUDE_DIR ${PNG_INCLUDE_DIR} CACHE FILEPATH "")
|
|
|
|
MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR)
|
|
|
|
ENDIF(PNG_FOUND)
|
2010-06-28 16:20:59 +08:00
|
|
|
ENDIF(ZLIB_FOUND)
|
2016-12-22 00:29:38 +08:00
|
|
|
|
|
|
|
# CMakes default module to find libxml2 will not find the in
|
|
|
|
FIND_DEPENDENCY(LIBXML2 libxml/xpath.h "libxml2" ${OSG_3RDPARTY_BIN} "D" "")
|
2010-06-28 16:20:59 +08:00
|
|
|
IF(LIBXML2_FOUND)
|
2016-06-01 23:22:42 +08:00
|
|
|
# The CMAKE find libxml module uses LIBXML2_LIBRARIES -> fill it.... kind of a hack
|
2016-12-22 00:29:38 +08:00
|
|
|
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY} CACHE FILEPATH "LibXML2 library for collada" FORCE)
|
|
|
|
# SET(LIBXML2_XMLLINT_EXECUTABLE ${OSG_3RDPARTY_BIN}/bin/xmllint.exe CACHE FILEPATH "Path to xmllint executable" FORCE)
|
2010-06-28 16:20:59 +08:00
|
|
|
ENDIF(LIBXML2_FOUND)
|
2011-03-15 22:02:39 +08:00
|
|
|
#FIND_DEPENDENCY(DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX EXSUFFIX)
|
2013-07-23 13:25:39 +08:00
|
|
|
FIND_Package(NVTT)
|
2007-03-28 15:34:46 +08:00
|
|
|
#luigi#INCLUDE(FindOSGDepends.cmake)
|
|
|
|
ENDMACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################################
|
2011-05-30 16:26:43 +08:00
|
|
|
# this is code for handling optional 3RDPARTY usage
|
2007-03-28 15:34:46 +08:00
|
|
|
################################################################################################
|
|
|
|
|
2016-12-22 00:29:38 +08:00
|
|
|
OPTION(USE_3RDPARTY_BIN "Set to ON to use Mike or Torbens prebuilt dependencies situated side of OpenSceneGraph source. Use OFF for avoiding." ON)
|
2011-05-30 16:26:43 +08:00
|
|
|
IF(USE_3RDPARTY_BIN)
|
2011-03-15 22:02:39 +08:00
|
|
|
|
|
|
|
# Check Architecture
|
|
|
|
IF( CMAKE_SIZEOF_VOID_P EQUAL 4 )
|
|
|
|
MESSAGE( STATUS "32 bit architecture detected" )
|
|
|
|
SET(DESTINATION_ARCH "x86")
|
|
|
|
ENDIF()
|
|
|
|
IF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
|
|
|
MESSAGE( STATUS "64 bit architecture detected" )
|
|
|
|
SET(DESTINATION_ARCH "x64")
|
|
|
|
ENDIF()
|
|
|
|
|
2007-04-27 17:49:28 +08:00
|
|
|
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdparty")
|
|
|
|
IF(NOT EXISTS ${TEST_3RDPARTY_DIR})
|
2011-03-15 22:02:39 +08:00
|
|
|
SET(3RDPARTY_DIR_BY_ENV $ENV{OSG_3RDPARTY_DIR})
|
|
|
|
IF(3RDPARTY_DIR_BY_ENV)
|
|
|
|
MESSAGE( STATUS "3rdParty-Package ENV variable found:${3RDPARTY_DIR_BY_ENV}/${DESTINATION_ARCH}" )
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(TEST_3RDPARTY_DIR "${3RDPARTY_DIR_BY_ENV}/${DESTINATION_ARCH}")
|
2011-03-15 22:02:39 +08:00
|
|
|
ELSEIF(MSVC71)
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs71")
|
2010-03-11 01:23:58 +08:00
|
|
|
ELSEIF(MSVC80)
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs80sp1")
|
2010-03-11 01:23:58 +08:00
|
|
|
ELSEIF(MSVC90)
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs90sp1")
|
2010-03-11 01:23:58 +08:00
|
|
|
ENDIF()
|
2011-05-30 16:26:43 +08:00
|
|
|
ENDIF(NOT EXISTS ${TEST_3RDPARTY_DIR})
|
2016-06-01 23:22:42 +08:00
|
|
|
|
2011-05-30 16:26:43 +08:00
|
|
|
SET(ACTUAL_3RDPARTY_DIR "${TEST_3RDPARTY_DIR}" CACHE PATH "Location of 3rdparty dependencies")
|
|
|
|
SET(ACTUAL_3DPARTY_DIR "${ACTUAL_3RDPARTY_DIR}") # kept for backcompatibility
|
|
|
|
IF(EXISTS ${ACTUAL_3RDPARTY_DIR})
|
|
|
|
SET (3rdPartyRoot ${ACTUAL_3RDPARTY_DIR})
|
|
|
|
SEARCH_3RDPARTY(${ACTUAL_3RDPARTY_DIR})
|
|
|
|
ENDIF(EXISTS ${ACTUAL_3RDPARTY_DIR})
|
|
|
|
ENDIF(USE_3RDPARTY_BIN)
|