diff --git a/CMakeModules/Find3rdPartyDependencies.cmake b/CMakeModules/Find3rdPartyDependencies.cmake index 882134a42..5557b4b2c 100644 --- a/CMakeModules/Find3rdPartyDependencies.cmake +++ b/CMakeModules/Find3rdPartyDependencies.cmake @@ -3,9 +3,9 @@ # all the paramenter are required, in case of lists, use "" in calling ################################################################################################ -MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFFIX) +MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX EXSUFFIX) - MESSAGE(STATUS "searching ${DEPNAME} -->${INCLUDEFILE}<-->${LIBRARY_NAMES}<-->${SEARCHPATHLIST}<--") + MESSAGE(STATUS "searching ${DEPNAME} -->${INCLUDEFILE}<-->${LIBRARY_NAMES_BASE}<-->${SEARCHPATHLIST}<--") SET(MY_PATH_INCLUDE ) SET(MY_PATH_LIB ) @@ -22,14 +22,18 @@ MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFF MARK_AS_ADVANCED("${DEPNAME}_INCLUDE_DIR") #MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--") - FIND_LIBRARY("${DEPNAME}_LIBRARY" + SET(LIBRARY_NAMES "") + FOREACH(LIBNAME ${LIBRARY_NAMES_BASE}) + LIST(APPEND LIBRARY_NAMES "${LIBNAME}${EXSUFFIX}") + ENDFOREACH(LIBNAME) + FIND_LIBRARY("${DEPNAME}_LIBRARY" NAMES ${LIBRARY_NAMES} PATHS ${MY_PATH_LIB} NO_DEFAULT_PATH ) SET(LIBRARY_NAMES_DEBUG "") - FOREACH(LIBNAME ${LIBRARY_NAMES}) - LIST(APPEND LIBRARY_NAMES_DEBUG "${LIBNAME}${DEBUGSUFFIX}") + FOREACH(LIBNAME ${LIBRARY_NAMES_BASE}) + LIST(APPEND LIBRARY_NAMES_DEBUG "${LIBNAME}${DEBUGSUFFIX}${EXSUFFIX}") ENDFOREACH(LIBNAME) FIND_LIBRARY("${DEPNAME}_LIBRARY_DEBUG" NAMES ${LIBRARY_NAMES_DEBUG} @@ -46,7 +50,7 @@ MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFF SET(${DEPNAME}_LIBRARY_DEBUG "${${DEPNAME}_LIBRARY}") ENDIF(NOT ${DEPNAME}_LIBRARY_DEBUG) ENDIF(${DEPNAME}_INCLUDE_DIR AND ${DEPNAME}_LIBRARY) -ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFFIX) +ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES_BASE SEARCHPATHLIST DEBUGSUFFIX) ################################################################################################ @@ -54,8 +58,8 @@ ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGS ################################################################################################ MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) - FIND_DEPENDENCY(TIFF tiff.h libtiff ${OSG_3RDPARTY_BIN} "D") - FIND_DEPENDENCY(FREETYPE ft2build.h "freetype;freetype234;freetype234MT;freetype235;freetype237" ${OSG_3RDPARTY_BIN} "_D") + FIND_DEPENDENCY(TIFF tiff.h libtiff ${OSG_3RDPARTY_BIN} "D" "_i") + FIND_DEPENDENCY(FREETYPE ft2build.h "freetype;freetype234;freetype234MT;freetype235;freetype237;freetype238" ${OSG_3RDPARTY_BIN} "d" "") IF(FREETYPE_FOUND) #forcing subsequent FindFreeType stuff to not search for other variables.... kind of a hack SET(FREETYPE_INCLUDE_DIR_ft2build ${FREETYPE_INCLUDE_DIR} CACHE PATH "" FORCE) @@ -63,19 +67,19 @@ MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) MARK_AS_ADVANCED(FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2) SET(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}") ENDIF(FREETYPE_FOUND) - FIND_DEPENDENCY(CURL curl/curl.h "libcurl;curllib" ${OSG_3RDPARTY_BIN} "D") - FIND_DEPENDENCY(JPEG jpeglib.h libjpeg ${OSG_3RDPARTY_BIN} "D") - #FIND_DEPENDENCY(GDAL gdal.h "gdal;gdal_i" ${OSG_3RDPARTY_BIN}) - FIND_DEPENDENCY(GLUT GL/glut.h glut32 ${OSG_3RDPARTY_BIN} "D") + FIND_DEPENDENCY(CURL curl/curl.h "libcurl;curllib" ${OSG_3RDPARTY_BIN} "D" "") + FIND_DEPENDENCY(JPEG jpeglib.h libjpeg ${OSG_3RDPARTY_BIN} "D" "") + FIND_DEPENDENCY(GDAL gdal.h "gdal;gdal16" ${OSG_3RDPARTY_BIN} "d" "_i") + FIND_DEPENDENCY(GLUT GL/glut.h glut32 ${OSG_3RDPARTY_BIN} "D" "") IF(GLUT_FOUND) #forcing subsequent FindGlut stuff to not search for other variables.... kind of a hack SET(GLUT_glut_LIBRARY ${GLUT_LIBRARY} CACHE FILEPATH "") MARK_AS_ADVANCED(GLUT_glut_LIBRARY) ENDIF(GLUT_FOUND) - FIND_DEPENDENCY(GIFLIB gif_lib.h "ungif;libungif" ${OSG_3RDPARTY_BIN} "D") - FIND_DEPENDENCY(ZLIB zlib.h "z;zlib;zlib1" ${OSG_3RDPARTY_BIN} "D") + FIND_DEPENDENCY(GIFLIB gif_lib.h "ungif;libungif" ${OSG_3RDPARTY_BIN} "D" "") + FIND_DEPENDENCY(ZLIB zlib.h "z;zlib;zlib1" ${OSG_3RDPARTY_BIN} "D" "") IF(ZLIB_FOUND) - FIND_DEPENDENCY(PNG png.h "libpng;libpng13" ${OSG_3RDPARTY_BIN} "D") + FIND_DEPENDENCY(PNG png.h "libpng;libpng13" ${OSG_3RDPARTY_BIN} "D" "") IF(PNG_FOUND) #forcing subsequent FindPNG stuff to not search for other variables.... kind of a hack SET(PNG_PNG_INCLUDE_DIR ${PNG_INCLUDE_DIR} CACHE FILEPATH "") @@ -95,7 +99,17 @@ ENDMACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) OPTION(USE_3DPARTY_BIN "Set to ON to use Mike prebuilt dependencies situated side of OpenSceneGraph source. Use OFF for avoiding." ON) IF(USE_3DPARTY_BIN) GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH) - SET(ACTUAL_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH "Location of 3rdparty dependencies") + SET(TEST_3DPARTY_DIR "${PARENT_DIR}/3rdparty") + IF(NOT EXISTS ${TEST_3DPARTY_DIR}) + IF(MSVC71) + SET(TEST_3DPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs71") + ELSEIF(MSVC80) + SET(TEST_3DPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs80sp1") + ELSEIF(MSVC90) + SET(TEST_3DPARTY_DIR "${PARENT_DIR}/3rdParty_win32binaries_vs90sp1") + ENDIF() + ENDIF(NOT EXISTS ${TEST_3DPARTY_DIR}) + SET(ACTUAL_3DPARTY_DIR "${TEST_3DPARTY_DIR}" CACHE PATH "Location of 3rdparty dependencies") IF(EXISTS ${ACTUAL_3DPARTY_DIR}) SEARCH_3RDPARTY(${ACTUAL_3DPARTY_DIR}) ENDIF(EXISTS ${ACTUAL_3DPARTY_DIR})