FindPoco.cmake 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #-------------------------------------------------------------------
  2. # This file is part of the CMake build system for OGRE
  3. # (Object-oriented Graphics Rendering Engine)
  4. # For the latest info, see http://www.ogre3d.org/
  5. #
  6. # The contents of this file are placed in the public domain. Feel
  7. # free to make use of it in any way you like.
  8. #-------------------------------------------------------------------
  9. # - Try to find POCO libraries
  10. # Once done, this will define
  11. #
  12. # POCO_FOUND - system has POCO
  13. # POCO_INCLUDE_DIRS - the POCO include directories
  14. # POCO_LIBRARIES - link these to use POCO
  15. include(FindPkgMacros)
  16. findpkg_begin(POCO)
  17. # Get path, convert backslashes as ${ENV_${var}}
  18. getenv_path(POCO_HOME)
  19. getenv_path(POCO_ROOT)
  20. getenv_path(POCO_BASE)
  21. # construct search paths
  22. set(POCO_PREFIX_PATH
  23. ${POCO_HOME} ${ENV_POCO_HOME}
  24. ${POCO_ROOT} ${ENV_POCO_ROOT}
  25. ${POCO_BASE} ${ENV_POCO_BASE}
  26. )
  27. # redo search if prefix path changed
  28. clear_if_changed(POCO_PREFIX_PATH
  29. POCO_LIBRARY_FWK
  30. POCO_LIBRARY_REL
  31. POCO_LIBRARY_DBG
  32. POCO_INCLUDE_DIR
  33. )
  34. create_search_paths(POCO)
  35. set(POCO_INC_SEARCH_PATH ${POCO_INC_SEARCH_PATH} ${POCO_PREFIX_PATH})
  36. set(POCO_LIBRARY_NAMES PocoFoundation PocoFoundationmt)
  37. get_debug_names(POCO_LIBRARY_NAMES)
  38. use_pkgconfig(POCO_PKGC POCO)
  39. findpkg_framework(POCO)
  40. find_path(POCO_INCLUDE_DIR NAMES Poco/Foundation.h HINTS ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES Foundation/include)
  41. find_library(POCO_LIBRARY_REL NAMES ${POCO_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  42. find_library(POCO_LIBRARY_DBG NAMES ${POCO_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  43. make_library_set(POCO_LIBRARY)
  44. findpkg_finish(POCO)
  45. if (NOT POCO_FOUND)
  46. return()
  47. endif ()
  48. # Look for Poco's Util package
  49. findpkg_begin(POCO_Util)
  50. set(POCO_Util_LIBRARY_NAMES PocoUtil PocoUtilmt)
  51. get_debug_names(POCO_Util_LIBRARY_NAMES)
  52. find_path(POCO_Util_INCLUDE_DIR NAMES Poco/Util/Util.h HINTS ${POCO_INCLUDE_DIR} ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES Util/include)
  53. find_library(POCO_Util_LIBRARY_REL NAMES ${POCO_Util_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  54. find_library(POCO_Util_LIBRARY_DBG NAMES ${POCO_Util_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  55. make_library_set(POCO_Util_LIBRARY)
  56. findpkg_finish(POCO_Util)
  57. # Look for Poco's Net package
  58. findpkg_begin(POCO_Net)
  59. set(POCO_Net_LIBRARY_NAMES PocoNet PocoNetmt)
  60. get_debug_names(POCO_Net_LIBRARY_NAMES)
  61. find_path(POCO_Net_INCLUDE_DIR NAMES Poco/Net/Net.h HINTS ${POCO_INCLUDE_DIR} ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES Net/include)
  62. find_library(POCO_Net_LIBRARY_REL NAMES ${POCO_Net_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  63. find_library(POCO_Net_LIBRARY_DBG NAMES ${POCO_Net_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  64. make_library_set(POCO_Net_LIBRARY)
  65. findpkg_finish(POCO_Net)
  66. # Look for Poco's NetSSL package
  67. findpkg_begin(POCO_NetSSL)
  68. set(POCO_NetSSL_LIBRARY_NAMES PocoNetSSL PocoNetSSLmt)
  69. get_debug_names(POCO_NetSSL_LIBRARY_NAMES)
  70. find_path(POCO_NetSSL_INCLUDE_DIR NAMES Poco/Net/NetSSL.h HINTS ${POCO_INCLUDE_DIR} ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES NetSSL/include)
  71. find_library(POCO_NetSSL_LIBRARY_REL NAMES ${POCO_NetSSL_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  72. find_library(POCO_NetSSL_LIBRARY_DBG NAMES ${POCO_NetSSL_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  73. make_library_set(POCO_NetSSL_LIBRARY)
  74. findpkg_finish(POCO_NetSSL)
  75. # Look for Poco's XML package
  76. findpkg_begin(POCO_XML)
  77. set(POCO_XML_LIBRARY_NAMES PocoXML PocoXMLmt)
  78. get_debug_names(POCO_XML_LIBRARY_NAMES)
  79. find_path(POCO_XML_INCLUDE_DIR NAMES Poco/XML/XML.h HINTS ${POCO_INCLUDE_DIR} ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES XML/include)
  80. find_library(POCO_XML_LIBRARY_REL NAMES ${POCO_XML_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  81. find_library(POCO_XML_LIBRARY_DBG NAMES ${POCO_XML_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  82. make_library_set(POCO_XML_LIBRARY)
  83. findpkg_finish(POCO_XML)
  84. # Look for Poco's JSON package
  85. findpkg_begin(POCO_JSON)
  86. set(POCO_JSON_LIBRARY_NAMES PocoJSON PocoJSONLmt)
  87. get_debug_names(POCO_JSON_LIBRARY_NAMES)
  88. find_path(POCO_JSON_INCLUDE_DIR NAMES Poco/JSON/JSON.h HINTS ${POCO_INCLUDE_DIR} ${POCO_INC_SEARCH_PATH} ${POCO_PKGC_INCLUDE_DIRS} PATH_SUFFIXES JSON/include)
  89. find_library(POCO_JSON_LIBRARY_REL NAMES ${POCO_JSON_LIBRARY_NAMES} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  90. find_library(POCO_JSON_LIBRARY_DBG NAMES ${POCO_JSON_LIBRARY_NAMES_DBG} HINTS ${POCO_LIB_SEARCH_PATH} ${POCO_PKGC_LIBRARY_DIRS} PATH_SUFFIXES Linux/i686)
  91. make_library_set(POCO_JSON_LIBRARY)
  92. findpkg_finish(POCO_JSON)