@@ -6,11 +6,12 @@ implemented in C++11, currently targeting iOS, OS X, and Ubuntu Linux.
|
||||
# Depends
|
||||
|
||||
- Modern C++ compiler that supports `-std=c++11`
|
||||
- Boost headers
|
||||
- `libpng`
|
||||
- `libuv`
|
||||
- `libcurl` (depends on OpenSSL; Linux only)
|
||||
- `glfw3`
|
||||
- Boost
|
||||
- `libcurl` (depends on OpenSSL; Linux only)
|
||||
- `libboost_regex` (Linux only)
|
||||
- Python (for build only)
|
||||
- Node.js (for build only)
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'<@(glfw3_libraries)',
|
||||
'<@(curl_libraries)',
|
||||
'<@(curl_libraries)'
|
||||
],
|
||||
},
|
||||
}],
|
||||
|
||||
1
llmr.gyp
1
llmr.gyp
@@ -191,6 +191,7 @@
|
||||
'libraries': [
|
||||
'<@(png_libraries)',
|
||||
'<@(uv_libraries)',
|
||||
'-lboost_regex'
|
||||
]
|
||||
}]
|
||||
]
|
||||
|
||||
@@ -95,6 +95,7 @@ source Linux.sh
|
||||
if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64/lib/libssl.a ] ; then ./scripts/build_openssl.sh ; fi
|
||||
if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64/lib/libcurl.a ] ; then ./scripts/build_curl.sh ; fi
|
||||
if [ ! -d out/build-cpp11-libstdcpp-gcc-x86_64/include/boost ] ; then ./scripts/build_boost.sh `pwd`/../../src/ `pwd`/../../include/ `pwd`/../../linux/ `pwd`/../../common/ ; fi
|
||||
if [ ! -d out/build-cpp11-libstdcpp-gcc-x86_64/lib/libboost_regex.a ] ; then ./scripts/build_boost.sh --with-regex ; fi
|
||||
|
||||
cd ../../
|
||||
./configure \
|
||||
|
||||
@@ -16,7 +16,13 @@
|
||||
#include <llmr/util/std.hpp>
|
||||
#include <llmr/util/utf.hpp>
|
||||
|
||||
#ifdef __linux__
|
||||
#include <boost/regex.hpp>
|
||||
namespace regex_impl = boost;
|
||||
#else
|
||||
#include <regex>
|
||||
namespace regex_impl = std;
|
||||
#endif
|
||||
|
||||
using namespace llmr;
|
||||
|
||||
@@ -184,8 +190,8 @@ std::unique_ptr<Bucket> TileParser::createTextBucket(const VectorTileLayer &laye
|
||||
tile.textVertexBuffer, tile.triangleElementsBuffer, bucket_desc, placement);
|
||||
|
||||
util::utf8_to_utf32 ucs4conv;
|
||||
std::regex token_regex("\\{\\{(\\w+)\\}\\}");
|
||||
const auto tokens_end = std::sregex_token_iterator();
|
||||
regex_impl::regex token_regex("\\{\\{(\\w+)\\}\\}");
|
||||
const auto tokens_end = regex_impl::sregex_token_iterator();
|
||||
|
||||
|
||||
std::vector<std::pair<std::u32string, pbf>> labels;
|
||||
@@ -205,7 +211,7 @@ std::unique_ptr<Bucket> TileParser::createTextBucket(const VectorTileLayer &laye
|
||||
source_string.reserve(field.size());
|
||||
|
||||
bool token = false;
|
||||
for (auto token_it = std::sregex_token_iterator(field.begin(), field.end(), token_regex, {-1, 1}); token_it != tokens_end; ++token_it, token = !token) {
|
||||
for (auto token_it = regex_impl::sregex_token_iterator(field.begin(), field.end(), token_regex, {-1, 1}); token_it != tokens_end; ++token_it, token = !token) {
|
||||
if (!token_it->matched) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user