[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>
This commit is contained in:
parent
cc0b32d9bc
commit
1d7dd3e082
2 changed files with 43 additions and 3 deletions
|
|
@ -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(
|
||||
|
|
|
|||
30
cmake/FindUtfcpp.cmake
Normal file
30
cmake/FindUtfcpp.cmake
Normal file
|
|
@ -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)
|
||||
Loading…
Add table
Reference in a new issue