# - Find the Poco includes and libraries. # The following variables are set if Poco is found. If Poco is not # found, Poco_FOUND is set to false. # Poco_FOUND - True when the Poco include directory is found. # Poco_INCLUDE_DIRS - the path to where the poco include files are. # Poco_LIBRARY_DIRS - The path to where the poco library files are. # Poco_BINARY_DIRS - The path to where the poco dlls are. # ---------------------------------------------------------------------------- # If you have installed Poco in a non-standard location. # Then you have three options. # In the following comments, it is assumed that # points to the root directory of the include directory of Poco. e.g # If you have put poco in C:\development\Poco then is # "C:/development/Poco" and in this directory there will be two # directories called "include" and "lib". # 1) After CMake runs, set Poco_INCLUDE_DIR to /poco<-version> # 2) Use CMAKE_INCLUDE_PATH to set a path to /poco<-version>. This will allow FIND_PATH() # to locate Poco_INCLUDE_DIR by utilizing the PATH_SUFFIXES option. e.g. # SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "/include") # 3) Set an environment variable called ${POCO_ROOT} that points to the root of where you have # installed Poco, e.g. . It is assumed that there is at least a subdirectory called # Foundation/include/Poco in this path. # # Note: # 1) If you are just using the poco headers, then you do not need to use # Poco_LIBRARY_DIRS in your CMakeLists.txt file. # 2) If Poco has not been installed, then when setting Poco_LIBRARY_DIRS # the script will look for /lib first and, if this fails, then for /stage/lib. # # Usage: # In your CMakeLists.txt file do something like this: # ... # # Poco # FIND_PACKAGE(Poco) # ... # INCLUDE_DIRECTORIES(${Poco_INCLUDE_DIRS}) # LINK_DIRECTORIES(${Poco_LIBRARY_DIRS}) # # In Windows, we make the assumption that, if the Poco files are installed, the default directory # will be C:\poco or C:\Program Files\Poco. SET(POCO_INCLUDE_PATH_DESCRIPTION "top-level directory containing the poco include directories. E.g /usr/local/include/poco-1.2.1 or c:\\poco\\include\\poco-1.2.1") SET(POCO_INCLUDE_DIR_MESSAGE "Set the Poco_INCLUDE_DIR cmake cache entry to the ${POCO_INCLUDE_PATH_DESCRIPTION}") SET(POCO_LIBRARY_PATH_DESCRIPTION "top-level directory containing the poco libraries.") SET(POCO_LIBRARY_DIR_MESSAGE "Set the Poco_LIBRARY_DIR cmake cache entry to the ${POCO_LIBRARY_PATH_DESCRIPTION}") SET(POCO_DIR_SEARCH $ENV{POCO_ROOT}) IF(POCO_DIR_SEARCH) FILE(TO_CMAKE_PATH ${POCO_DIR_SEARCH} POCO_DIR_SEARCH) ENDIF(POCO_DIR_SEARCH) IF(WIN32) SET(POCO_DIR_SEARCH ${POCO_DIR_SEARCH} C:/poco D:/poco "C:Program Files/poco" "D:Program Files/poco" ) ENDIF(WIN32) # Add in some path suffixes. These will have to be updated whenever a new Poco version comes out. SET(SUFFIX_FOR_INCLUDE_PATH poco-1.2.4 poco-1.2.3 poco-1.2.1 ) SET(SUFFIX_FOR_LIBRARY_PATH poco-1.2.4/lib poco-1.2.4/lib/Linux/i686 poco-1.2.3/lib poco-1.2.3/lib/Linux/i686 poco-1.2.1/lib poco-1.2.1/lib/Linux/i686 lib lib/Linux/i686 ) # # Look for an installation. # FIND_PATH(Poco_INCLUDE_DIR NAMES Foundation/include/Poco/AbstractCache.h PATH_SUFFIXES ${SUFFIX_FOR_INCLUDE_PATH} PATHS # Look in other places. ${POCO_DIR_SEARCH} # Help the user find it if we cannot. DOC "The ${POCO_INCLUDE_DIR_MESSAGE}" ) # Assume we didn't find it. SET(Poco_FOUND 0) # Now try to get the include and library path. IF(Poco_INCLUDE_DIR) IF(EXISTS "${Poco_INCLUDE_DIR}") SET(Poco_INCLUDE_DIRS ${Poco_INCLUDE_DIR}/CppUnit/include ${Poco_INCLUDE_DIR}/Foundation/include ${Poco_INCLUDE_DIR}/Net/include ${Poco_INCLUDE_DIR}/Util/include ${Poco_INCLUDE_DIR}/XML/include ) SET(Poco_FOUND 1) ENDIF(EXISTS "${Poco_INCLUDE_DIR}") FIND_LIBRARY(Poco_LIBRARY_DIR NAMES PocoFoundation PocoFoundationd PATH_SUFFIXES ${SUFFIX_FOR_LIBRARY_PATH} PATHS # Look in other places. ${Poco_INCLUDE_DIR} ${POCO_DIR_SEARCH} # Help the user find it if we cannot. DOC "The ${POCO_LIBRARY_PATH_DESCRIPTION}" ) GET_FILENAME_COMPONENT(Poco_LIBRARY_DIR ${Poco_LIBRARY_DIR} PATH) IF(Poco_INCLUDE_DIR) SET(Poco_LIBRARY_DIRS ${Poco_LIBRARY_DIR}) # Look for the poco binary path. SET(Poco_BINARY_DIR ${Poco_INCLUDE_DIR}) IF(Poco_BINARY_DIR AND EXISTS "${Poco_BINARY_DIR}") SET(Poco_BINARY_DIRS ${Poco_BINARY_DIR}/bin) ENDIF(Poco_BINARY_DIR AND EXISTS "${Poco_BINARY_DIR}") ENDIF(Poco_INCLUDE_DIR) ENDIF(Poco_INCLUDE_DIR) IF(NOT Poco_FOUND) IF(NOT Poco_FIND_QUIETLY) MESSAGE(STATUS "Poco was not found. ${POCO_DIR_MESSAGE}") ELSE(NOT Poco_FIND_QUIETLY) IF(Poco_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Poco was not found. ${POCO_DIR_MESSAGE}") ENDIF(Poco_FIND_REQUIRED) ENDIF(NOT Poco_FIND_QUIETLY) ENDIF(NOT Poco_FOUND)