[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_PATCH 0)
|
||||||
set(Ledger_VERSION_DATE 20141005)
|
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()
|
enable_testing()
|
||||||
|
|
||||||
add_definitions(-std=c++11)
|
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_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||||
set(CMAKE_RUNTIME_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
|
# add the binary tree to the search path for include files so that we will
|
||||||
# find TutorialConfig.h
|
# find system.hh
|
||||||
include_directories("${PROJECT_SOURCE_DIR}/lib")
|
|
||||||
include_directories("${PROJECT_SOURCE_DIR}/lib/utfcpp/v2_0/source")
|
|
||||||
include_directories("${PROJECT_BINARY_DIR}")
|
include_directories("${PROJECT_BINARY_DIR}")
|
||||||
|
|
||||||
configure_file(
|
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