CMakeLists.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #
  2. # local copy
  3. #
  4. if( WIN32 )
  5. message( STATUS "Detecting local PCRE" )
  6. find_path( LOCAL_PCRE_INCLUDE_DIRS "pcre.h"
  7. PATHS "${CMAKE_CURRENT_SOURCE_DIR}/include"
  8. NO_DEFAULT_PATH )
  9. find_library( LOCAL_PCRE_LIBRARIES
  10. NAMES pcre
  11. PATHS "${CMAKE_CURRENT_SOURCE_DIR}/lib"
  12. NO_DEFAULT_PATH )
  13. mark_as_advanced( LOCAL_PCRE_LIBRARIES )
  14. mark_as_advanced( LOCAL_PCRE_INCLUDE_DIRS )
  15. if( LOCAL_PCRE_LIBRARIES AND LOCAL_PCRE_INCLUDE_DIRS )
  16. file( STRINGS "${LOCAL_PCRE_INCLUDE_DIRS}/pcre.h" PCRE_H REGEX "^#define[ \t]+PCRE_M[A-Z]+[ \t]+[0-9]+.*$" )
  17. string( REGEX REPLACE "^.*PCRE_MAJOR[ \t]+([0-9]+).*$" "\\1" PCRE_MAJOR "${PCRE_H}" )
  18. string( REGEX REPLACE "^.*PCRE_MINOR[ \t]+([0-9]+).*$" "\\1" PCRE_MINOR "${PCRE_H}" )
  19. message( STATUS "Found PCRE: ${LOCAL_PCRE_LIBRARIES} (found version ${PCRE_MAJOR}.${PCRE_MINOR})" )
  20. set( HAVE_LOCAL_PCRE ON
  21. CACHE BOOL "pcre is available as a local copy" )
  22. else()
  23. foreach( _VAR LOCAL_PCRE_LIBRARIES LOCAL_PCRE_INCLUDE_DIRS )
  24. if( NOT "${_VAR}" )
  25. set( MISSING_VARS ${MISSING_VARS} ${_VAR} )
  26. endif()
  27. endforeach()
  28. message( STATUS "Could NOT find PCRE (missing: ${MISSING_VARS})" )
  29. unset( HAVE_LOCAL_PCRE CACHE )
  30. endif()
  31. message( STATUS "Detecting local PCRE - done" )
  32. endif( WIN32 )
  33. #
  34. # system
  35. #
  36. message( STATUS "Detecting system PCRE" )
  37. set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH} )
  38. find_package( PCRE )
  39. set( SYSTEM_PCRE_LIBRARIES ${PCRE_LIBRARIES}
  40. CACHE PATH "system pcre libraries" )
  41. set( SYSTEM_PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIRS}
  42. CACHE PATH "system pcre include directories" )
  43. mark_as_advanced( SYSTEM_PCRE_LIBRARIES )
  44. mark_as_advanced( SYSTEM_PCRE_INCLUDE_DIRS )
  45. if( SYSTEM_PCRE_LIBRARIES AND SYSTEM_PCRE_INCLUDE_DIRS )
  46. set( HAVE_SYSTEM_PCRE ON
  47. CACHE BOOL "pcre is available on the system" )
  48. else()
  49. unset( HAVE_SYSTEM_PCRE CACHE )
  50. endif()
  51. message( STATUS "Detecting system PCRE - done" )
  52. #
  53. # configure
  54. #
  55. unset( PCRE_LIBRARIES CACHE )
  56. unset( PCRE_INCLUDE_DIRS CACHE )
  57. if( HAVE_LOCAL_PCRE )
  58. set( USE_LOCAL_PCRE ON
  59. CACHE BOOL "use local copy of pcre" )
  60. else()
  61. unset( USE_LOCAL_PCRE CACHE )
  62. endif()
  63. if( USE_LOCAL_PCRE )
  64. message( STATUS "Configuring for local PCRE" )
  65. set( PCRE_LIBRARIES ${LOCAL_PCRE_LIBRARIES} )
  66. set( PCRE_INCLUDE_DIRS ${LOCAL_PCRE_INCLUDE_DIRS} )
  67. message( STATUS "Configuring for local PCRE - done" )
  68. elseif( HAVE_SYSTEM_PCRE )
  69. message( STATUS "Configuring for system PCRE" )
  70. set( PCRE_LIBRARIES ${SYSTEM_PCRE_LIBRARIES} )
  71. set( PCRE_INCLUDE_DIRS ${SYSTEM_PCRE_INCLUDE_DIRS} )
  72. message( STATUS "Configuring for system PCRE - done" )
  73. endif()
  74. if( USE_LOCAL_PCRE OR HAVE_SYSTEM_PCRE )
  75. set( USE_PCRE ON
  76. CACHE BOOL "use pcre" )
  77. else()
  78. unset( USE_PCRE CACHE )
  79. endif()
  80. set( PCRE_LIBRARIES ${PCRE_LIBRARIES}
  81. CACHE PATH "pcre libraries" )
  82. set( PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIRS}
  83. CACHE PATH "pcre include directories" )
  84. mark_as_advanced( PCRE_LIBRARIES )
  85. mark_as_advanced( PCRE_INCLUDE_DIRS )