# Look for a directory containing external libraries. # # The following values are defined # EXTERNAL_PATH - where to find external # EXTERNAL_INCLUDE_PATH - where to find external includes # EXTERNAL_LIBRARY_PATH - where to find external libraries # EXTERNAL_FOUND - True if the external libraries are available SET(EXTERNAL_TEMP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external ${CMAKE_CURRENT_SOURCE_DIR}/../external ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty ${CMAKE_CURRENT_SOURCE_DIR}/../3rdParty ${EXTERNAL_PATH}) SET(EXTERNAL_TEMP_FILE "include/png.h") SET(EXTERNAL_NAME "external") # If using STLport preprend external_stlport IF(WITH_STLPORT) SET(EXTERNAL_TEMP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external_stlport ${CMAKE_CURRENT_SOURCE_DIR}/../external_stlport ${EXTERNAL_TEMP_PATH}) SET(EXTERNAL_TEMP_FILE "include/stlport/string") SET(EXTERNAL_NAME "external with STLport") ENDIF(WITH_STLPORT) SET(EXTERNAL_FOUND FALSE) FOREACH(ITEM ${EXTERNAL_TEMP_PATH}) IF(EXISTS "${ITEM}/${EXTERNAL_TEMP_FILE}" AND NOT EXTERNAL_FOUND) SET(EXTERNAL_FOUND TRUE) # Get absolute path to avoid .. GET_FILENAME_COMPONENT(ITEM ${ITEM} ABSOLUTE) SET(EXTERNAL_PATH ${ITEM} CACHE PATH "" FORCE) ENDIF(EXISTS "${ITEM}/${EXTERNAL_TEMP_FILE}" AND NOT EXTERNAL_FOUND) ENDFOREACH(ITEM ${EXTERNAL_TEMP_PATH}) IF(EXTERNAL_FOUND) SET(EXTERNAL_INCLUDE_PATH "${EXTERNAL_PATH}/include") IF(NOT CMAKE_SIZEOF_VOID_P) INCLUDE (CheckTypeSize) CHECK_TYPE_SIZE("void*" CMAKE_SIZEOF_VOID_P) ENDIF(NOT CMAKE_SIZEOF_VOID_P) # Using 32 or 64 bits libraries IF(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib64") ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib") ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(CMAKE_INCLUDE_PATH "${EXTERNAL_INCLUDE_PATH};${CMAKE_INCLUDE_PATH}") # Stupid hack for FindOpenAL.cmake SET(CMAKE_INCLUDE_PATH "${EXTERNAL_PATH};${CMAKE_INCLUDE_PATH}") SET(CMAKE_LIBRARY_PATH "${EXTERNAL_LIBRARY_PATH};${CMAKE_LIBRARY_PATH}") ENDIF(EXTERNAL_FOUND) IF(EXTERNAL_FOUND) IF(NOT External_FIND_QUIETLY) MESSAGE(STATUS "Found ${EXTERNAL_NAME}: ${EXTERNAL_PATH}") ENDIF(NOT External_FIND_QUIETLY) ELSE(EXTERNAL_FOUND) IF(External_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Unable to find ${EXTERNAL_NAME}!") ELSE(External_FIND_REQUIRED) IF(NOT External_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find ${EXTERNAL_NAME}!") ENDIF(NOT External_FIND_QUIETLY) ENDIF(External_FIND_REQUIRED) ENDIF(EXTERNAL_FOUND) MARK_AS_ADVANCED(EXTERNAL_INCLUDE_PATH EXTERNAL_LIBRARY_PATH)