FindSQLiteCpp.cmake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # @file CMakeLists.txt
  2. # @ingroup SQLiteCpp
  3. # @brief SQLiteCpp CMake module.
  4. #
  5. # Copyright (c) 2010-2014 Kartik Kumar (me@kartikkumar.com)
  6. #
  7. # Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt
  8. # or copy at http://opensource.org/licenses/MIT)
  9. macro(_sqlitecpp_check_version)
  10. file(READ "${SQLITECPP_INCLUDE_DIR}/SQLiteCpp.h" _sqlitecpp_header)
  11. string(REGEX MATCH "define[ \t]+SQLITECPP_VERSION_NUMBER[ \t]+([0-9]+)"
  12. _sqlitecpp_version_match "${_sqlitecpp_header}")
  13. set(SQLITECPP_VERSION "${CMAKE_MATCH_1}")
  14. if(${SQLITECPP_VERSION} VERSION_LESS ${SQLiteCpp_FIND_VERSION})
  15. set(SQLITECPP_VERSION_OK FALSE)
  16. else(${SQLITECPP_VERSION} VERSION_LESS ${SQLiteCpp_FIND_VERSION})
  17. set(SQLITECPP_VERSION_OK TRUE)
  18. endif(${SQLITECPP_VERSION} VERSION_LESS ${SQLiteCpp_FIND_VERSION})
  19. if(NOT SQLITECPP_VERSION_OK)
  20. message(STATUS "SQLiteCpp version ${SQLITECPP_VERSION} found in ${SQLITECPP_INCLUDE_DIR}, "
  21. "but at least version ${SQLiteCpp_FIND_VERSION} is required!")
  22. endif(NOT SQLITECPP_VERSION_OK)
  23. set(SQLITECPP_LIBRARY "SQLiteCpp")
  24. link_directories(${SQLITECPP_LIBRARY_DIR})
  25. endmacro(_sqlitecpp_check_version)
  26. if(SQLITECPP_INCLUDE_DIR)
  27. # Check if SQLiteCpp is already present in cache.
  28. _sqlitecpp_check_version()
  29. set(SQLITECPP_FOUND ${SQLITECPP_VERSION_OK})
  30. else (SQLITECPP_INCLUDE_DIR)
  31. find_path(SQLITECPP_BASE_PATH NAMES SQLiteCpp.h
  32. PATHS
  33. ${PROJECT_SOURCE_DIR}
  34. ${PROJECT_SOURCE_DIR}/..
  35. ${PROJECT_SOURCE_DIR}/../..
  36. ${PROJECT_SOURCE_DIR}/../../..
  37. ${PROJECT_SOURCE_DIR}/../../../..
  38. PATH_SUFFIXES SQLiteCpp/include/SQLiteCpp
  39. )
  40. set(SQLITECPP_INCLUDE_DIR ${SQLITECPP_BASE_PATH})
  41. set(SQLITECPP_LIBRARY_DIR ${SQLITECPP_BASE_PATH}/../../build)
  42. if(SQLITECPP_INCLUDE_DIR)
  43. _sqlitecpp_check_version()
  44. endif(SQLITECPP_INCLUDE_DIR)
  45. include(FindPackageHandleStandardArgs)
  46. find_package_handle_standard_args(SQLITECPP DEFAULT_MSG SQLITECPP_INCLUDE_DIR SQLITECPP_VERSION_OK)
  47. mark_as_advanced(SQLITECPP_INCLUDE_DIR)
  48. endif(SQLITECPP_INCLUDE_DIR)