# Locate SOLID libraries (collision detection for solid bodies) # This module defines # SOLID_SOLID_LIBRARY, SOLID_BROAD_LIBRARY : name of each lib # SOLID_LIBRARY : list of lib names # SOLID_FOUND : if false, do not try to link to SOLID # SOLID_INCLUDE_DIR : where to find the headers # # $SOLID_DIR is an environment variable that would # correspond to the ./configure --prefix=$SOLID_DIR # used in building SOLID. # # Created by Jean-Philippe Meuret (based on Mart Kelder's FindPLIB.cmake). # No use to do all of this twice. IF(SOLID_FOUND) RETURN() ENDIF(SOLID_FOUND) # First, try with PkgConfig if available. FIND_PACKAGE(PkgConfig) IF(PKGCONFIG_FOUND) PKG_CHECK_MODULES(SOLID FreeSOLID) IF(NOT SOLID_FOUND) PKG_CHECK_MODULES(SOLID SOLID) ENDIF (NOT SOLID_FOUND) IF(SOLID_FOUND) SET(SOLID_FOUND TRUE) SET(SOLID_INCLUDE_DIR ${SOLID_INCLUDE_DIRS} CACHE STRING "SOLID include paths") SET(SOLID_SOLID_LIBRARY ${SOLID_LIBRARIES} CACHE STRING "SOLID library") SET(SOLID_BROAD_LIBRARY "NOT-FOUND" CACHE STRING "BROAD libraries") SET(SOLID_LIBRARY ${SOLID_SOLID_LIBRARY}) MESSAGE(STATUS "Looking for SOLID --- found using pkg-config (${SOLID_SOLID_LIBRARY})") RETURN() ENDIF(SOLID_FOUND) ENDIF(PKGCONFIG_FOUND) # Then try the good old way for include dirs. IF(NOT APPLE) FIND_PATH(SOLID_INCLUDE_DIR SOLID/solid.h HINTS ENV SOLID_DIR PATH_SUFFIXES include/FreeSOLID include/freesolid include/SOLID include PATHS /usr /usr/local DOC "Non-Apple include dir for SOLID") ELSE(NOT APPLE) FIND_PATH(SOLID_INCLUDE_DIR solid.h HINTS ENV SOLID_DIR PATH_SUFFIXES Headers include/FreeSOLID include/freesolid include/SOLID include PATHS #Additional MacOS Paths ~/Library/Frameworks/SOLID.framework /Library/Frameworks/SOLID.framework /System/Library/Frameworks/SOLID.framework # Tiger /usr /usr/local DOC "Apple include dir for SOLID") ENDIF(NOT APPLE) # Then try the good old way for libs. FIND_LIBRARY(SOLID_SOLID_LIBRARY NAMES solid2 solid FreeSOLID freesolid HINTS ENV SOLID_DIR PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 PATHS /usr /usr/local) #MESSAGE(STATUS "Looking for SOLID --- SOLID_SOLID_LIBRARY = ${SOLID_SOLID_LIBRARY}") IF(WIN32) FIND_LIBRARY(SOLID_BROAD_LIBRARY NAMES broad HINTS ENV SOLID_DIR PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 PATHS /usr /usr/local) ENDIF(WIN32) IF(SOLID_INCLUDE_DIR AND SOLID_SOLID_LIBRARY) SET(SOLID_FOUND TRUE) ENDIF(SOLID_INCLUDE_DIR AND SOLID_SOLID_LIBRARY) IF(SOLID_FOUND) MESSAGE(STATUS "Looking for SOLID - found (${SOLID_SOLID_LIBRARY})") SET(SOLID_LIBRARY ${SOLID_SOLID_LIBRARY}) IF(WIN32 AND SOLID_BROAD_LIBRARY) SET(SOLID_LIBRARY ${SOLID_LIBRARY} ${SOLID_BROAD_LIBRARY}) ENDIF(WIN32 AND SOLID_BROAD_LIBRARY) ELSE(SOLID_FOUND) MESSAGE(FATAL_ERROR "Could not find SOLID") ENDIF(SOLID_FOUND)