Add Windows support to MBTiles file source (#905)
This commit is contained in:
@@ -66,6 +66,7 @@ target_sources(
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
|
||||
|
||||
@@ -50,6 +50,7 @@ cc_library(
|
||||
"src/mbgl/storage/sqlite3.cpp",
|
||||
"src/mbgl/text/bidi.cpp",
|
||||
"src/mbgl/util/compression.cpp",
|
||||
"src/mbgl/util/filesystem.cpp",
|
||||
"src/mbgl/util/monotonic_timer.cpp",
|
||||
"src/mbgl/util/png_writer.cpp",
|
||||
"src/mbgl/util/thread_local.cpp",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <mbgl/util/url.hpp>
|
||||
#include <mbgl/util/chrono.hpp>
|
||||
#include <mbgl/util/compression.hpp>
|
||||
#include <mbgl/util/filesystem.hpp>
|
||||
|
||||
#include <mbgl/storage/sqlite3.hpp>
|
||||
|
||||
@@ -283,7 +284,8 @@ std::unique_ptr<AsyncRequest> MBTilesFileSource::request(const Resource &resourc
|
||||
return req;
|
||||
}
|
||||
|
||||
if (resource.url.find(":///") == std::string::npos) {
|
||||
if (resource.url.find("://") == std::string::npos ||
|
||||
!util::is_absolute_path(resource.url.substr(resource.url.find("://") + 3))) {
|
||||
Response response;
|
||||
response.noContent = true;
|
||||
response.error = std::make_unique<Response::Error>(Response::Error::Reason::Other,
|
||||
|
||||
13
platform/default/src/mbgl/util/filesystem.cpp
Normal file
13
platform/default/src/mbgl/util/filesystem.cpp
Normal file
@@ -0,0 +1,13 @@
|
||||
#include <mbgl/util/filesystem.hpp>
|
||||
|
||||
#if defined(USE_STD_FILESYSTEM)
|
||||
#include <filesystem>
|
||||
|
||||
bool mbgl::util::is_absolute_path(std::string path) {
|
||||
return std::filesystem::path(path).is_absolute();
|
||||
}
|
||||
#else
|
||||
bool mbgl::util::is_absolute_path(std::string path) {
|
||||
return path.at(0) == '/';
|
||||
}
|
||||
#endif
|
||||
@@ -73,6 +73,7 @@ list(APPEND
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
|
||||
|
||||
@@ -42,6 +42,7 @@ target_sources(
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/async_task.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/image.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/jpeg_reader.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/logging_stderr.cpp
|
||||
|
||||
@@ -65,6 +65,7 @@ target_sources(
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
|
||||
|
||||
@@ -91,6 +91,7 @@ target_sources(
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/$<IF:$<BOOL:${MLN_QT_WITH_INTERNAL_SQLITE}>,default/src/mbgl/storage/sqlite3.cpp,qt/src/mbgl/sqlite3.cpp>
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
|
||||
$<$<BOOL:${MLN_QT_WITH_HEADLESS}>:${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/headless_backend_qt.cpp>
|
||||
${PROJECT_SOURCE_DIR}/platform/qt/src/mbgl/async_task.cpp
|
||||
|
||||
@@ -54,6 +54,7 @@ target_sources(
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/async_task.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/image.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/jpeg_reader.cpp
|
||||
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/logging_stderr.cpp
|
||||
@@ -72,6 +73,7 @@ target_compile_definitions(
|
||||
mbgl-core
|
||||
PRIVATE
|
||||
CURL_STATICLIB
|
||||
USE_STD_FILESYSTEM
|
||||
)
|
||||
|
||||
if(MLN_WITH_EGL)
|
||||
|
||||
9
src/mbgl/util/filesystem.hpp
Normal file
9
src/mbgl/util/filesystem.hpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace mbgl {
|
||||
namespace util {
|
||||
bool is_absolute_path(std::string path);
|
||||
}
|
||||
} // namespace mbgl
|
||||
Reference in New Issue
Block a user