diff options
-rw-r--r-- | CMakeLists.txt | 16 | ||||
-rw-r--r-- | cmake/FindUtfcpp.cmake | 30 |
2 files changed, 43 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 285b7b6b..538a26c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,9 @@ set(Ledger_VERSION_MINOR 1) set(Ledger_VERSION_PATCH 0) set(Ledger_VERSION_DATE 20141005) +# Point CMake at any custom modules we may ship +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") + enable_testing() add_definitions(-std=c++11) @@ -236,13 +239,20 @@ endmacro(add_ledger_library_dependencies _target) ######################################################################## +include(FindUtfcpp) +if (UTFCPP_FOUND) + include_directories("${UTFCPP_INCLUDE_DIR}") +else() + message(FATAL_ERROR "Missing required header file: utf8.h\n" + "Define UTFCPP_PATH or install utfcpp locally into the source tree below lib/utfcpp/." + ) +endif() + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) # add the binary tree to the search path for include files so that we will -# find TutorialConfig.h -include_directories("${PROJECT_SOURCE_DIR}/lib") -include_directories("${PROJECT_SOURCE_DIR}/lib/utfcpp/v2_0/source") +# find system.hh include_directories("${PROJECT_BINARY_DIR}") configure_file( diff --git a/cmake/FindUtfcpp.cmake b/cmake/FindUtfcpp.cmake new file mode 100644 index 00000000..185a8d88 --- /dev/null +++ b/cmake/FindUtfcpp.cmake @@ -0,0 +1,30 @@ +# - 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) |