ledger/cmake/FindUtfcpp.cmake
Alexis Hildebrandt 1d7dd3e082 [cmake] Add FindUtfcpp.cmake
it will look for utfcpp in the standard system paths, UTFCPP_PATH,
and lib/utfcpp/v2_0/source.

This allows the use of utfcpp in:

  * standard locations such as /usr/include on distributions shipping
  utfcpp

  * custom locations for users via UTFCPP_PATH

  * the source tree using the default location of the utfcpp
    git submodule, .i.e lib/utfcpp/v2_0

Signed-off-by: Alexis Hildebrandt <afh@surryhill.net>
2015-01-12 10:50:44 +01:00

30 lines
739 B
CMake

# - Try to find utfcpp
# Once done, this will define
#
# UTFCPP_FOUND - system has utfcpp's utf8.h
# UTFCPP_PATH - the utfcpp include directories
include(CheckCXXSourceCompiles)
set(UTFCPP_FOUND FALSE)
find_path(UTFCPP_INCLUDE_DIR
NAMES utf8.h
HINTS "${UTFCPP_PATH}" "${PROJECT_SOURCE_DIR}/lib/utfcpp/v2_0/source"
)
if (UTFCPP_INCLUDE_DIR)
set(CMAKE_REQUIRED_INCLUDES "${UTFCPP_INCLUDE_DIR}")
set(UTFCPP_FOUND TRUE)
endif()
check_cxx_source_compiles("
#include <string>
#include \"utf8.h\"
int main(int argc, char** argv) {
std::string input = std::string(\"utfcpp\");
const char * p = input.c_str();
std::size_t len = input.length();
utf8::is_valid(p, p + len);
}" HAVE_WORKING_UTFCPP)