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>
30 lines
739 B
CMake
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)
|