[CMake] add boost regex icu check
This commit is contained in:
parent
01dccee231
commit
5ef2e27e8e
2 changed files with 32 additions and 2 deletions
|
@ -129,22 +129,29 @@ set(MAPNIK_OPTIONAL_LIBS_INCLUDE "")
|
||||||
|
|
||||||
# needs to be before the first call of find_boost.
|
# needs to be before the first call of find_boost.
|
||||||
if(USE_MULTITHREADED)
|
if(USE_MULTITHREADED)
|
||||||
message(STATUS "multithreaded enabled")
|
|
||||||
set(Boost_USE_MULTITHREADED ON)
|
set(Boost_USE_MULTITHREADED ON)
|
||||||
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_THREADSAFE)
|
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_THREADSAFE)
|
||||||
else()
|
else()
|
||||||
set(Boost_USE_MULTITHREADED OFF)
|
set(Boost_USE_MULTITHREADED OFF)
|
||||||
message(STATUS "multithreaded disabled")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
mapnik_find_threads()
|
mapnik_find_threads()
|
||||||
mapnik_find_package(ICU REQUIRED COMPONENTS uc i18n data)
|
mapnik_find_package(ICU REQUIRED COMPONENTS uc i18n data)
|
||||||
|
|
||||||
mapnik_find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS filesystem system regex)
|
mapnik_find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS filesystem system regex)
|
||||||
|
list(APPEND MAPNIK_COMPILE_DEFS BOOST_REGEX_HAS_ICU)
|
||||||
if(USE_BOOST_REGEX_ICU_WORKAROUND)
|
if(USE_BOOST_REGEX_ICU_WORKAROUND)
|
||||||
message(STATUS "using boost regex workaround")
|
message(STATUS "using boost regex workaround")
|
||||||
set_property(TARGET Boost::regex PROPERTY INTERFACE_LINK_LIBRARIES)
|
set_property(TARGET Boost::regex PROPERTY INTERFACE_LINK_LIBRARIES)
|
||||||
endif()
|
endif()
|
||||||
|
include(CheckBoostRegexIcu)
|
||||||
|
check_boost_regex()
|
||||||
|
if(BOOST_REGEX_HAS_ICU)
|
||||||
|
message(STATUS "boost regex has icu support")
|
||||||
|
list(APPEND MAPNIK_COMPILE_DEFS BOOST_REGEX_HAS_ICU)
|
||||||
|
endif()
|
||||||
|
|
||||||
mapnik_find_package(Freetype REQUIRED)
|
mapnik_find_package(Freetype REQUIRED)
|
||||||
|
|
||||||
|
|
23
cmake/CheckBoostRegexIcu.cmake
Normal file
23
cmake/CheckBoostRegexIcu.cmake
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
include(CheckCXXSourceRuns)
|
||||||
|
|
||||||
|
function(check_boost_regex)
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES ICU::uc ICU::data ICU::i18n Boost::headers Boost::regex)
|
||||||
|
check_cxx_source_runs([[
|
||||||
|
#include <boost/regex/icu.hpp>
|
||||||
|
#include <unicode/unistr.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
U_NAMESPACE_QUALIFIER UnicodeString ustr;
|
||||||
|
try {
|
||||||
|
boost::u32regex pattern = boost::make_u32regex(ustr);
|
||||||
|
}
|
||||||
|
// an exception is fine, still indicates support is
|
||||||
|
// likely compiled into regex
|
||||||
|
catch (...) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
]] BOOST_REGEX_HAS_ICU)
|
||||||
|
set(BOOST_REGEX_HAS_ICU ${BOOST_REGEX_HAS_ICU} PARENT_SCOPE)
|
||||||
|
endfunction(check_boost_regex)
|
Loading…
Reference in a new issue