[qt] Skip ICU if WITH_QT_I18N is set
This commit is contained in:
2
Makefile
2
Makefile
@@ -389,6 +389,7 @@ $(QT_BUILD): $(BUILD_DEPS)
|
||||
-DMASON_PLATFORM=$(BUILD_PLATFORM) \
|
||||
-DMASON_PLATFORM_VERSION=$(BUILD_PLATFORM_VERSION) \
|
||||
-DWITH_QT_DECODERS=${WITH_QT_DECODERS} \
|
||||
-DWITH_QT_I18N=${WITH_QT_I18N} \
|
||||
-DWITH_QT_4=${WITH_QT_4} \
|
||||
-DWITH_CXX11ABI=$(shell scripts/check-cxx11abi.sh) \
|
||||
-DWITH_COVERAGE=${WITH_COVERAGE} \
|
||||
@@ -404,6 +405,7 @@ $(MACOS_QT_PROJ_PATH): $(BUILD_DEPS)
|
||||
-DMASON_PLATFORM=$(BUILD_PLATFORM) \
|
||||
-DMASON_PLATFORM_VERSION=$(BUILD_PLATFORM_VERSION) \
|
||||
-DWITH_QT_DECODERS=${WITH_QT_DECODERS} \
|
||||
-DWITH_QT_I18N=${WITH_QT_I18N} \
|
||||
-DWITH_QT_4=${WITH_QT_4} \
|
||||
-DWITH_CXX11ABI=$(shell scripts/check-cxx11abi.sh) \
|
||||
-DWITH_COVERAGE=${WITH_COVERAGE} \
|
||||
|
||||
@@ -2,7 +2,6 @@ include(platform/qt/qt.cmake)
|
||||
|
||||
mason_use(sqlite VERSION 3.14.2)
|
||||
mason_use(gtest VERSION 1.7.0${MASON_CXXABI_SUFFIX})
|
||||
mason_use(icu VERSION 58.1)
|
||||
|
||||
if(NOT WITH_QT_DECODERS)
|
||||
mason_use(libjpeg-turbo VERSION 1.5.0)
|
||||
@@ -10,6 +9,10 @@ if(NOT WITH_QT_DECODERS)
|
||||
mason_use(webp VERSION 0.5.1)
|
||||
endif()
|
||||
|
||||
if(NOT WITH_QT_I18N)
|
||||
mason_use(icu VERSION 58.1)
|
||||
endif()
|
||||
|
||||
macro(mbgl_platform_core)
|
||||
target_sources(mbgl-core
|
||||
${MBGL_QT_FILES}
|
||||
@@ -40,7 +43,12 @@ macro(mbgl_platform_core)
|
||||
add_definitions(-DQT_IMAGE_DECODERS)
|
||||
endif()
|
||||
|
||||
target_add_mason_package(mbgl-core PRIVATE icu)
|
||||
if(NOT WITH_QT_I18N)
|
||||
target_sources(mbgl-core PRIVATE platform/default/bidi.cpp)
|
||||
target_add_mason_package(mbgl-core PRIVATE icu)
|
||||
else()
|
||||
target_sources(mbgl-core PRIVATE platform/qt/src/bidi.cpp)
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# support `mason` (i.e. Yocto). Do not add any `mason` macro.
|
||||
|
||||
option(WITH_QT_DECODERS "Use builtin Qt image decoders" OFF)
|
||||
option(WITH_QT_I18N "Use builtin Qt i18n support" OFF)
|
||||
option(WITH_QT_4 "Use Qt4 instead of Qt5" OFF)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -D__QT__")
|
||||
@@ -29,7 +30,6 @@ set(MBGL_QT_FILES
|
||||
|
||||
# Misc
|
||||
PRIVATE platform/default/logging_stderr.cpp
|
||||
PRIVATE platform/default/bidi.cpp
|
||||
|
||||
# Thread pool
|
||||
PRIVATE platform/default/mbgl/util/default_thread_pool.cpp
|
||||
|
||||
56
platform/qt/src/bidi.cpp
Normal file
56
platform/qt/src/bidi.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
#include <memory>
|
||||
|
||||
#include <mbgl/text/bidi.hpp>
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
class BiDiImpl {
|
||||
public:
|
||||
QString string;
|
||||
};
|
||||
|
||||
std::u16string applyArabicShaping(const std::u16string& input) {
|
||||
QString utf16string = QString::fromStdU16String(input);
|
||||
return utf16string.toStdU16String();
|
||||
}
|
||||
|
||||
ProcessedBiDiText::ProcessedBiDiText(BiDi& p_bidi) : bidi(p_bidi) {
|
||||
}
|
||||
|
||||
void ProcessedBiDiText::mergeParagraphLineBreaks(std::set<int32_t>& lineBreakPoints) {
|
||||
lineBreakPoints.insert(impl->string.length());
|
||||
}
|
||||
|
||||
std::vector<std::u16string>
|
||||
ProcessedBiDiText::applyLineBreaking(std::set<int32_t> lineBreakPoints) {
|
||||
mergeParagraphLineBreaks(lineBreakPoints);
|
||||
|
||||
std::vector<std::u16string> transformedLines;
|
||||
int32_t start = 0;
|
||||
for (int32_t lineBreakPoint : lineBreakPoints) {
|
||||
transformedLines.push_back(bidi.getLine(start, lineBreakPoint));
|
||||
start = lineBreakPoint;
|
||||
}
|
||||
|
||||
return transformedLines;
|
||||
}
|
||||
|
||||
BiDi::BiDi() : impl(std::make_unique<BiDiImpl>())
|
||||
{
|
||||
}
|
||||
|
||||
BiDi::~BiDi() {
|
||||
}
|
||||
|
||||
ProcessedBiDiText BiDi::processText(const std::u16string& input) {
|
||||
impl->string = QString::fromStdU16String(input);
|
||||
return ProcessedBiDiText(*this);
|
||||
}
|
||||
|
||||
std::u16string BiDi::getLine(int32_t start, int32_t end) {
|
||||
return impl->string.mid(start, end - start).toStdU16String();
|
||||
}
|
||||
|
||||
} // end namespace mbgl
|
||||
Reference in New Issue
Block a user