Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Yershov <syershov@maps.me>2017-06-21 02:00:32 +0300
committerYuri Gorshenin <mipt.vi002@gmail.com>2017-07-05 16:41:38 +0300
commit2e7431948be3071d401affc15b99a1a751595ab3 (patch)
tree06ebc34fc7811d5e9f46ab4c2d7b308164f5b6fb
parent41800988f08780d79efe5db10ddd8e15a060929f (diff)
Implementation of loading UGC data for generator
-rw-r--r--3party/jansson/myjansson.hpp2
-rw-r--r--generator/CMakeLists.txt2
-rw-r--r--generator/generator.pro2
-rw-r--r--generator/generator_tests/CMakeLists.txt1
-rw-r--r--generator/generator_tests/generator_tests.pro1
-rw-r--r--generator/generator_tests/ugc_test.cpp54
-rw-r--r--generator/ugc_db.cpp93
-rw-r--r--generator/ugc_db.hpp10
-rw-r--r--generator/ugc_translator.cpp77
-rw-r--r--generator/ugc_translator.hpp28
-rw-r--r--xcode/generator/generator.xcodeproj/project.pbxproj56
-rw-r--r--xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj26
-rw-r--r--xcode/ugc/ugc.xcodeproj/project.pbxproj123
13 files changed, 464 insertions, 11 deletions
diff --git a/3party/jansson/myjansson.hpp b/3party/jansson/myjansson.hpp
index 8a6aa4f3c9..bc640ad310 100644
--- a/3party/jansson/myjansson.hpp
+++ b/3party/jansson/myjansson.hpp
@@ -36,6 +36,8 @@ class Json
public:
DECLARE_EXCEPTION(Exception, RootException);
+ explicit Json(std::string const & s) : Json(s.c_str()) {}
+
explicit Json(char const * s)
{
json_error_t jsonError;
diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt
index e05d45497d..25e40ab262 100644
--- a/generator/CMakeLists.txt
+++ b/generator/CMakeLists.txt
@@ -91,6 +91,8 @@ set(SRC
traffic_generator.hpp
ugc_db.cpp
ugc_db.hpp
+ ugc_translator.cpp
+ ugc_translator.hpp
unpack_mwm.cpp
unpack_mwm.hpp
utils.cpp
diff --git a/generator/generator.pro b/generator/generator.pro
index 616681bbbc..0f81c4884d 100644
--- a/generator/generator.pro
+++ b/generator/generator.pro
@@ -52,6 +52,7 @@ SOURCES += \
towns_dumper.cpp \
traffic_generator.cpp \
ugc_db.cpp \
+ ugc_translator.cpp \
unpack_mwm.cpp \
utils.cpp \
viator_dataset.cpp \
@@ -104,6 +105,7 @@ HEADERS += \
towns_dumper.hpp \
traffic_generator.hpp \
ugc_db.hpp \
+ ugc_translator.hpp \
unpack_mwm.hpp \
utils.hpp \
viator_dataset.hpp \
diff --git a/generator/generator_tests/CMakeLists.txt b/generator/generator_tests/CMakeLists.txt
index 2608d36ce5..e1c201a173 100644
--- a/generator/generator_tests/CMakeLists.txt
+++ b/generator/generator_tests/CMakeLists.txt
@@ -23,6 +23,7 @@ set(
tesselator_test.cpp
triangles_tree_coding_test.cpp
types_helper.hpp
+ ugc_test.cpp
)
omim_add_test(${PROJECT_NAME} ${SRC})
diff --git a/generator/generator_tests/generator_tests.pro b/generator/generator_tests/generator_tests.pro
index 6f9ea74bf0..4834da4c57 100644
--- a/generator/generator_tests/generator_tests.pro
+++ b/generator/generator_tests/generator_tests.pro
@@ -47,3 +47,4 @@ SOURCES += \
tag_admixer_test.cpp \
tesselator_test.cpp \
triangles_tree_coding_test.cpp \
+ ugc_test.cpp \
diff --git a/generator/generator_tests/ugc_test.cpp b/generator/generator_tests/ugc_test.cpp
new file mode 100644
index 0000000000..548cf8b32f
--- /dev/null
+++ b/generator/generator_tests/ugc_test.cpp
@@ -0,0 +1,54 @@
+#include "testing/testing.hpp"
+
+#include "generator/ugc_db.hpp"
+#include "generator/ugc_translator.hpp"
+#include "generator/osm_id.hpp"
+
+#include "ugc/types.hpp"
+
+
+std::string database(R"LLL(
+ PRAGMA foreign_keys=OFF;
+ BEGIN TRANSACTION;
+ CREATE TABLE agg (id bigint, data blob);
+ INSERT INTO "agg" VALUES(1,X'7B22637269746572696F6E5F6964223A20332C202276616C7565223A20322E307D');
+ INSERT INTO "agg" VALUES(2,X'7B22637269746572696F6E5F6964223A20372C202276616C7565223A20332E307D');
+ INSERT INTO "agg" VALUES(3,X'7B22637269746572696F6E5F6964223A20382C202276616C7565223A20322E307D');
+ INSERT INTO "agg" VALUES(4,X'7B22637269746572696F6E5F6964223A2031302C202276616C7565223A20322E363636363636363636363636363636357D');
+ INSERT INTO "agg" VALUES(5,X'7B22637269746572696F6E5F6964223A2031322C202276616C7565223A20352E307D');
+ INSERT INTO "agg" VALUES(6,X'7B22637269746572696F6E5F6964223A2031342C202276616C7565223A20342E307D');
+ INSERT INTO "agg" VALUES(1,X'7B22637269746572696F6E5F6964223A206E756C6C2C202276616C7565223A20322E393238353731343238353731343238347D');
+ INSERT INTO "agg" VALUES(2,X'7B22637269746572696F6E5F6964223A206E756C6C2C202276616C7565223A20332E3033393530363137323833393530367D');
+ INSERT INTO "agg" VALUES(3,X'7B22637269746572696F6E5F6964223A206E756C6C2C202276616C7565223A20322E393735333038363431393735333038357D');
+ INSERT INTO "agg" VALUES(4,X'7B22637269746572696F6E5F6964223A206E756C6C2C202276616C7565223A20332E3037363932333037363932333037377D');
+ COMMIT;
+)LLL");
+
+
+UNIT_TEST(UGC_SmokeTest)
+{
+ generator::UGCDB db(":memory:");
+ bool create = db.Exec(database);
+ TEST(create, ("Can't open database"));
+ osm::Id id = osm::Id(1);
+ std::vector<uint8_t> blob;
+ bool rc = db.Get(id, blob);
+ TEST(rc, ("Can't load data for", id));
+ std::string result(blob.cbegin(), blob.cend());
+ std::cout << result << std::endl;
+}
+
+UNIT_TEST(UGC_TranslateRatingTest)
+{
+ generator::UGCTranslator tr;
+ tr.CreateRatings(database);
+ osm::Id id = osm::Id(6);
+
+ ugc::UGC ugc;
+ bool rc = tr.TranslateUGC(id, ugc);
+ TEST(rc, ("Can't translate rating for", id));
+
+ TEST_EQUAL(ugc.m_rating.m_ratings.size(), 1, ());
+ TEST_EQUAL(ugc.m_rating.m_ratings[0].m_key, "TranslationKey14", ());
+ TEST_EQUAL(ugc.m_rating.m_ratings[0].m_value, 4.0, ());
+}
diff --git a/generator/ugc_db.cpp b/generator/ugc_db.cpp
index e70f5e4014..e30543e7b0 100644
--- a/generator/ugc_db.cpp
+++ b/generator/ugc_db.cpp
@@ -1,15 +1,98 @@
#include "generator/ugc_db.hpp"
+#include "base/logging.hpp"
#include "base/macros.hpp"
+#include <iostream>
+
+namespace {
+ struct Results
+ {
+ size_t counter = 0;
+ std::stringstream values;
+ };
+} // namespace
+
namespace generator
{
-UGCDB::UGCDB(std::string const & /*path */)
-{ // TODO (@syershov): implement this
+
+static int callback(void * results_ptr, int argc, char **argv, char **azColName)
+{
+ Results & results = *reinterpret_cast<Results *>(results_ptr);
+ for(size_t i=0; i<argc; i++)
+ {
+ if (results.counter++)
+ results.values << ",";
+
+ results.values << (argv[i] ? argv[i] : "{}");
+ }
+ return 0;
+}
+
+UGCDB::UGCDB(std::string const & path)
+{
+ int rc;
+
+ rc = sqlite3_open(path.c_str(), &m_db);
+ if(rc)
+ {
+ LOG(LERROR, ("Can't open database:", sqlite3_errmsg(m_db)));
+ sqlite3_close(m_db);
+ m_db = nullptr;
+ return;
+ }
+}
+
+UGCDB::~UGCDB()
+{
+ if(m_db)
+ sqlite3_close(m_db);
}
-bool UGCDB::Get(osm::Id const & /* id */, std::vector<uint8_t> & /* blob */)
-{ // TODO (@syershov): implement this
- return false;
+bool UGCDB::Get(osm::Id const & id, std::vector<uint8_t> & blob)
+{
+ if(!m_db)
+ return false;
+
+ char *zErrMsg = 0;
+ std::stringstream cmd;
+ Results results;
+ results.values << "[";
+ cmd << "SELECT data FROM agg WHERE id=" << id.OsmId() << ";";
+// Leaves comment for debug purposes
+// std::cout << cmd.str() << std::endl;
+ auto rc = sqlite3_exec(m_db, cmd.str().c_str(), callback, &results, &zErrMsg);
+ if (rc != SQLITE_OK)
+ {
+ LOG(LERROR, ("SQL error:", zErrMsg));
+ sqlite3_free(zErrMsg);
+ return false;
+ }
+ results.values << "]";
+
+ return ValueToBlob(results.values.str(), blob);
+}
+
+bool UGCDB::Exec(std::string const & statement)
+{
+ if(!m_db)
+ return false;
+
+ char *zErrMsg = 0;
+ auto rc = sqlite3_exec(m_db, statement.c_str(), nullptr, nullptr, &zErrMsg);
+ if( rc!=SQLITE_OK ){
+ LOG(LERROR, ("SQL error:", zErrMsg));
+ sqlite3_free(zErrMsg);
+ return false;
+ }
+ return true;
+}
+
+
+bool UGCDB::ValueToBlob(std::string const & src, std::vector<uint8_t> & blob)
+{
+ blob.assign(src.cbegin(), src.cend());
+ return true;
}
+
} // namespace generator
diff --git a/generator/ugc_db.hpp b/generator/ugc_db.hpp
index c3be1372bd..d24316e207 100644
--- a/generator/ugc_db.hpp
+++ b/generator/ugc_db.hpp
@@ -1,5 +1,7 @@
#pragma once
+#include "generator/osm_id.hpp"
+
#include "base/exception.hpp"
#include "base/macros.hpp"
@@ -7,6 +9,8 @@
#include <string>
#include <vector>
+#include <sqlite3.h>
+
namespace osm
{
class Id;
@@ -20,6 +24,12 @@ class UGCDB
{
public:
UGCDB(std::string const & path);
+ ~UGCDB();
WARN_UNUSED_RESULT bool Get(osm::Id const & id, std::vector<uint8_t> & blob);
+ WARN_UNUSED_RESULT bool Exec(std::string const & statement);
+private:
+ bool ValueToBlob(std::string const & src, std::vector<uint8_t> & blob);
+private:
+ sqlite3 * m_db = nullptr;
};
} // namespace generator
diff --git a/generator/ugc_translator.cpp b/generator/ugc_translator.cpp
new file mode 100644
index 0000000000..8a36e8bd32
--- /dev/null
+++ b/generator/ugc_translator.cpp
@@ -0,0 +1,77 @@
+#include "ugc_translator.hpp"
+
+#include "ugc_db.hpp"
+
+#include "3party/jansson/myjansson.hpp"
+
+namespace generator
+{
+UGCTranslator::UGCTranslator()
+ : m_dbRatings(":memory:")
+ , m_dbReviews(":memory:")
+{}
+
+UGCTranslator::UGCTranslator(std::string const & path)
+ : m_dbRatings(path + ".ratings")
+ , m_dbReviews(path + ".reviews")
+{}
+
+bool UGCTranslator::TranslateUGC(osm::Id const & id, ugc::UGC & ugc)
+{
+ bool ratingsOk = TranslateRating(m_dbRatings, id, ugc.m_rating);
+ bool reviewsOk = TranslateReview(m_dbReviews, id, ugc.m_reviews);
+ return ratingsOk && reviewsOk;
+}
+
+void UGCTranslator::CreateRatings(std::string const & data)
+{
+ bool rc = m_dbRatings.Exec(data);
+ UNUSED_VALUE(rc);
+}
+
+void UGCTranslator::CreateReviews(std::string const & data)
+{
+ bool rc = m_dbReviews.Exec(data);
+ UNUSED_VALUE(rc);
+}
+
+
+bool UGCTranslator::TranslateRating(UGCDB & db, osm::Id const id, ugc::Rating & rating)
+{
+ std::vector<uint8_t> blob;
+ bool rc = db.Get(id, blob);
+ if (!rc)
+ return false;
+ std::string result(blob.cbegin(), blob.cend());
+
+ my::Json jsonRoot(result);
+
+ size_t size = json_array_size(jsonRoot.get());
+ for (size_t i=0; i<size; ++i)
+ {
+ json_t * el = json_array_get(jsonRoot.get(), i);
+ double ratingValue = 0;
+ size_t translationKeyId = 0;
+
+ FromJSONObject(el, "value", ratingValue);
+ FromJSONObject(el, "criterion_id", translationKeyId);
+
+ std::stringstream translationKey;
+ translationKey << "TranslationKey" << translationKeyId;
+ rating.m_ratings.emplace_back(translationKey.str(), static_cast<float>(ratingValue));
+ }
+
+ return true;
+}
+
+
+bool UGCTranslator::TranslateReview(UGCDB & db, osm::Id const id, std::vector<ugc::Review> & review)
+{
+ return true;
+}
+
+//bool UGCTranslator::TranslateAttribute(UGCDB & db, osm::Id const id, ugc::Attribute & attribute)
+//{
+// return false;
+//}
+} // namespace generator
diff --git a/generator/ugc_translator.hpp b/generator/ugc_translator.hpp
new file mode 100644
index 0000000000..5b47bb71b3
--- /dev/null
+++ b/generator/ugc_translator.hpp
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "ugc_db.hpp"
+
+#include "ugc/types.hpp"
+#include "generator/osm_id.hpp"
+
+namespace generator
+{
+class UGCTranslator
+{
+public:
+ UGCTranslator();
+ UGCTranslator(std::string const & path);
+
+ bool TranslateUGC(osm::Id const & id, ugc::UGC & ugc);
+ // For testing only
+ void CreateRatings(std::string const & data);
+ void CreateReviews(std::string const & data);
+private:
+ bool TranslateRating(UGCDB & db, osm::Id const id, ugc::Rating & rating);
+ bool TranslateReview(UGCDB & db, osm::Id const id, std::vector<ugc::Review> & review);
+// bool TranslateAttribute(UGCDB & db, osm::Id const id, ugc::Attribute & attribute);
+private:
+ UGCDB m_dbRatings;
+ UGCDB m_dbReviews;
+};
+} // namespace generator
diff --git a/xcode/generator/generator.xcodeproj/project.pbxproj b/xcode/generator/generator.xcodeproj/project.pbxproj
index d8cdc64109..e12bcc99d6 100644
--- a/xcode/generator/generator.xcodeproj/project.pbxproj
+++ b/xcode/generator/generator.xcodeproj/project.pbxproj
@@ -24,7 +24,6 @@
3D51BC491D5E50F700F1FA8D /* centers_table_builder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D51BC471D5E50F700F1FA8D /* centers_table_builder.hpp */; };
3D51BC521D5E512500F1FA8D /* altitude_generator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D51BC4A1D5E512500F1FA8D /* altitude_generator.cpp */; };
3D51BC531D5E512500F1FA8D /* altitude_generator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D51BC4B1D5E512500F1FA8D /* altitude_generator.hpp */; };
- 3D51BC561D5E512500F1FA8D /* region_meta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D51BC4E1D5E512500F1FA8D /* region_meta.cpp */; };
3D51BC571D5E512500F1FA8D /* region_meta.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D51BC4F1D5E512500F1FA8D /* region_meta.hpp */; };
3D51BC581D5E512500F1FA8D /* srtm_parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D51BC501D5E512500F1FA8D /* srtm_parser.cpp */; };
3D51BC591D5E512500F1FA8D /* srtm_parser.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D51BC511D5E512500F1FA8D /* srtm_parser.hpp */; };
@@ -35,6 +34,17 @@
3DFEBF821EF423FB00317D5C /* sponsored_object_storage.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3DFEBF811EF423FB00317D5C /* sponsored_object_storage.hpp */; };
670B84BC1A8CDB0000CE4492 /* osm_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670B84BA1A8CDB0000CE4492 /* osm_source.cpp */; };
670B84BD1A8CDB0000CE4492 /* osm_source.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670B84BB1A8CDB0000CE4492 /* osm_source.hpp */; };
+ 670E7BB31EF9812B00A8E9ED /* metalines_builder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BA91EF9812B00A8E9ED /* metalines_builder.cpp */; };
+ 670E7BB41EF9812B00A8E9ED /* metalines_builder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670E7BAA1EF9812B00A8E9ED /* metalines_builder.hpp */; };
+ 670E7BB51EF9812B00A8E9ED /* road_access_generator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BAB1EF9812B00A8E9ED /* road_access_generator.cpp */; };
+ 670E7BB61EF9812B00A8E9ED /* road_access_generator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670E7BAC1EF9812B00A8E9ED /* road_access_generator.hpp */; };
+ 670E7BB71EF9812B00A8E9ED /* routing_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BAD1EF9812B00A8E9ED /* routing_helpers.cpp */; };
+ 670E7BB81EF9812B00A8E9ED /* routing_helpers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670E7BAE1EF9812B00A8E9ED /* routing_helpers.hpp */; };
+ 670E7BB91EF9812B00A8E9ED /* ugc_db.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BAF1EF9812B00A8E9ED /* ugc_db.cpp */; };
+ 670E7BBA1EF9812B00A8E9ED /* ugc_db.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670E7BB01EF9812B00A8E9ED /* ugc_db.hpp */; };
+ 670E7BC11EF983E600A8E9ED /* region_meta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D51BC4E1D5E512500F1FA8D /* region_meta.cpp */; };
+ 670E7BCA1EF9C29A00A8E9ED /* ugc_translator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BC81EF9C29A00A8E9ED /* ugc_translator.cpp */; };
+ 670E7BCB1EF9C29A00A8E9ED /* ugc_translator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670E7BC91EF9C29A00A8E9ED /* ugc_translator.hpp */; };
6726C1D51A4AFEF4005EEA39 /* osm2meta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1D31A4AFEF4005EEA39 /* osm2meta.cpp */; };
6726C1D61A4AFEF4005EEA39 /* osm2meta.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6726C1D41A4AFEF4005EEA39 /* osm2meta.hpp */; };
6753405C1A3F2A7400A0A8C3 /* borders_generator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675340291A3F2A7400A0A8C3 /* borders_generator.cpp */; };
@@ -131,6 +141,18 @@
3DFEBF811EF423FB00317D5C /* sponsored_object_storage.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = sponsored_object_storage.hpp; sourceTree = "<group>"; };
670B84BA1A8CDB0000CE4492 /* osm_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm_source.cpp; sourceTree = "<group>"; };
670B84BB1A8CDB0000CE4492 /* osm_source.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_source.hpp; sourceTree = "<group>"; };
+ 670E7BA71EF9812B00A8E9ED /* kml_parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kml_parser.cpp; sourceTree = "<group>"; };
+ 670E7BA81EF9812B00A8E9ED /* kml_parser.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = kml_parser.hpp; sourceTree = "<group>"; };
+ 670E7BA91EF9812B00A8E9ED /* metalines_builder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = metalines_builder.cpp; sourceTree = "<group>"; };
+ 670E7BAA1EF9812B00A8E9ED /* metalines_builder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = metalines_builder.hpp; sourceTree = "<group>"; };
+ 670E7BAB1EF9812B00A8E9ED /* road_access_generator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = road_access_generator.cpp; sourceTree = "<group>"; };
+ 670E7BAC1EF9812B00A8E9ED /* road_access_generator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = road_access_generator.hpp; sourceTree = "<group>"; };
+ 670E7BAD1EF9812B00A8E9ED /* routing_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = routing_helpers.cpp; sourceTree = "<group>"; };
+ 670E7BAE1EF9812B00A8E9ED /* routing_helpers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = routing_helpers.hpp; sourceTree = "<group>"; };
+ 670E7BAF1EF9812B00A8E9ED /* ugc_db.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_db.cpp; sourceTree = "<group>"; };
+ 670E7BB01EF9812B00A8E9ED /* ugc_db.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ugc_db.hpp; sourceTree = "<group>"; };
+ 670E7BC81EF9C29A00A8E9ED /* ugc_translator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_translator.cpp; sourceTree = "<group>"; };
+ 670E7BC91EF9C29A00A8E9ED /* ugc_translator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ugc_translator.hpp; sourceTree = "<group>"; };
6726C1D31A4AFEF4005EEA39 /* osm2meta.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm2meta.cpp; sourceTree = "<group>"; };
6726C1D41A4AFEF4005EEA39 /* osm2meta.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm2meta.hpp; sourceTree = "<group>"; };
6753401B1A3F2A1B00A0A8C3 /* libgenerator.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgenerator.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -286,6 +308,10 @@
675340411A3F2A7400A0A8C3 /* generate_info.hpp */,
675340311A3F2A7400A0A8C3 /* intermediate_data.hpp */,
675340451A3F2A7400A0A8C3 /* intermediate_elements.hpp */,
+ 670E7BA71EF9812B00A8E9ED /* kml_parser.cpp */,
+ 670E7BA81EF9812B00A8E9ED /* kml_parser.hpp */,
+ 670E7BA91EF9812B00A8E9ED /* metalines_builder.cpp */,
+ 670E7BAA1EF9812B00A8E9ED /* metalines_builder.hpp */,
34F5587E1DBF4C9600A4FC11 /* opentable_dataset.cpp */,
34F5587F1DBF4C9600A4FC11 /* opentable_dataset.hpp */,
34F558801DBF4C9600A4FC11 /* opentable_scoring.cpp */,
@@ -306,8 +332,18 @@
3D51BC4E1D5E512500F1FA8D /* region_meta.cpp */,
3D51BC4F1D5E512500F1FA8D /* region_meta.hpp */,
34F5588E1DBF4C9F00A4FC11 /* restaurants_info.cpp */,
+ 67C79BA71E2CEEAB00C40034 /* restriction_collector.cpp */,
+ 67C79BA81E2CEEAB00C40034 /* restriction_collector.hpp */,
+ 67C79BA91E2CEEAB00C40034 /* restriction_generator.cpp */,
+ 67C79BAA1E2CEEAB00C40034 /* restriction_generator.hpp */,
+ 67C79BAB1E2CEEAB00C40034 /* restriction_writer.cpp */,
+ 67C79BAC1E2CEEAB00C40034 /* restriction_writer.hpp */,
+ 670E7BAB1EF9812B00A8E9ED /* road_access_generator.cpp */,
+ 670E7BAC1EF9812B00A8E9ED /* road_access_generator.hpp */,
6753404E1A3F2A7400A0A8C3 /* routing_generator.cpp */,
6753404F1A3F2A7400A0A8C3 /* routing_generator.hpp */,
+ 670E7BAD1EF9812B00A8E9ED /* routing_helpers.cpp */,
+ 670E7BAE1EF9812B00A8E9ED /* routing_helpers.hpp */,
0C5FEC6E1DDE19E50017688C /* routing_index_generator.cpp */,
0C5FEC6F1DDE19E50017688C /* routing_index_generator.hpp */,
675340911C5231BA002CF0D9 /* search_index_builder.cpp */,
@@ -326,6 +362,12 @@
675340531A3F2A7400A0A8C3 /* tesselator.hpp */,
677E2A121CAACC5F001DC42A /* towns_dumper.cpp */,
677E2A131CAACC5F001DC42A /* towns_dumper.hpp */,
+ 67C79BAD1E2CEEAB00C40034 /* traffic_generator.cpp */,
+ 67C79BAE1E2CEEAB00C40034 /* traffic_generator.hpp */,
+ 670E7BAF1EF9812B00A8E9ED /* ugc_db.cpp */,
+ 670E7BB01EF9812B00A8E9ED /* ugc_db.hpp */,
+ 670E7BC81EF9C29A00A8E9ED /* ugc_translator.cpp */,
+ 670E7BC91EF9C29A00A8E9ED /* ugc_translator.hpp */,
675340541A3F2A7400A0A8C3 /* unpack_mwm.cpp */,
675340551A3F2A7400A0A8C3 /* unpack_mwm.hpp */,
675340581A3F2A7400A0A8C3 /* ways_merger.hpp */,
@@ -355,6 +397,7 @@
buildActionMask = 2147483647;
files = (
34F558881DBF4C9600A4FC11 /* opentable_dataset.hpp in Headers */,
+ 670E7BCB1EF9C29A00A8E9ED /* ugc_translator.hpp in Headers */,
675340881A3F2A7400A0A8C3 /* unpack_mwm.hpp in Headers */,
6753405D1A3F2A7400A0A8C3 /* borders_generator.hpp in Headers */,
6753408B1A3F2A7400A0A8C3 /* ways_merger.hpp in Headers */,
@@ -379,6 +422,8 @@
34F5588B1DBF4C9600A4FC11 /* sponsored_dataset.hpp in Headers */,
6753405F1A3F2A7400A0A8C3 /* borders_loader.hpp in Headers */,
675340801A3F2A7400A0A8C3 /* polygonizer.hpp in Headers */,
+ 670E7BB41EF9812B00A8E9ED /* metalines_builder.hpp in Headers */,
+ 670E7BBA1EF9812B00A8E9ED /* ugc_db.hpp in Headers */,
0C5FEC711DDE19E50017688C /* routing_index_generator.hpp in Headers */,
67C79BB01E2CEEAB00C40034 /* restriction_collector.hpp in Headers */,
3DFEBF801EF2D58900317D5C /* viator_dataset.hpp in Headers */,
@@ -390,6 +435,7 @@
3DFEBF821EF423FB00317D5C /* sponsored_object_storage.hpp in Headers */,
6753406D1A3F2A7400A0A8C3 /* feature_generator.hpp in Headers */,
675340681A3F2A7400A0A8C3 /* dumper.hpp in Headers */,
+ 670E7BB81EF9812B00A8E9ED /* routing_helpers.hpp in Headers */,
675340791A3F2A7400A0A8C3 /* osm_translator.hpp in Headers */,
675340711A3F2A7400A0A8C3 /* feature_sorter.hpp in Headers */,
34F5588A1DBF4C9600A4FC11 /* sponsored_dataset_inl.hpp in Headers */,
@@ -399,6 +445,7 @@
34F5588D1DBF4C9600A4FC11 /* sponsored_scoring.hpp in Headers */,
3D51BC491D5E50F700F1FA8D /* centers_table_builder.hpp in Headers */,
6753407B1A3F2A7400A0A8C3 /* osm_id.hpp in Headers */,
+ 670E7BB61EF9812B00A8E9ED /* road_access_generator.hpp in Headers */,
3D51BC531D5E512500F1FA8D /* altitude_generator.hpp in Headers */,
675340731A3F2A7400A0A8C3 /* gen_mwm_info.hpp in Headers */,
);
@@ -490,18 +537,20 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 670E7BCA1EF9C29A00A8E9ED /* ugc_translator.cpp in Sources */,
6753406C1A3F2A7400A0A8C3 /* feature_generator.cpp in Sources */,
67C79BB51E2CEEAB00C40034 /* traffic_generator.cpp in Sources */,
0C5FEC701DDE19E50017688C /* routing_index_generator.cpp in Sources */,
67C79BB11E2CEEAB00C40034 /* restriction_generator.cpp in Sources */,
- 3D51BC561D5E512500F1FA8D /* region_meta.cpp in Sources */,
3D51BC521D5E512500F1FA8D /* altitude_generator.cpp in Sources */,
+ 670E7BB31EF9812B00A8E9ED /* metalines_builder.cpp in Sources */,
3D51BC581D5E512500F1FA8D /* srtm_parser.cpp in Sources */,
6753407A1A3F2A7400A0A8C3 /* osm_id.cpp in Sources */,
675340871A3F2A7400A0A8C3 /* unpack_mwm.cpp in Sources */,
670B84BC1A8CDB0000CE4492 /* osm_source.cpp in Sources */,
675340701A3F2A7400A0A8C3 /* feature_sorter.cpp in Sources */,
675340621A3F2A7400A0A8C3 /* coastlines_generator.cpp in Sources */,
+ 670E7BC11EF983E600A8E9ED /* region_meta.cpp in Sources */,
675340811A3F2A7400A0A8C3 /* routing_generator.cpp in Sources */,
3DFEBF7F1EF2D58900317D5C /* viator_dataset.cpp in Sources */,
675340931C5231BA002CF0D9 /* search_index_builder.cpp in Sources */,
@@ -517,6 +566,7 @@
6753405E1A3F2A7400A0A8C3 /* borders_loader.cpp in Sources */,
675340691A3F2A7400A0A8C3 /* feature_builder.cpp in Sources */,
677E2A171CAACC5F001DC42A /* towns_dumper.cpp in Sources */,
+ 670E7BB71EF9812B00A8E9ED /* routing_helpers.cpp in Sources */,
34F558891DBF4C9600A4FC11 /* opentable_scoring.cpp in Sources */,
34F5588F1DBF4C9F00A4FC11 /* restaurants_info.cpp in Sources */,
6753405C1A3F2A7400A0A8C3 /* borders_generator.cpp in Sources */,
@@ -524,7 +574,9 @@
3D51BC481D5E50F700F1FA8D /* centers_table_builder.cpp in Sources */,
675340671A3F2A7400A0A8C3 /* dumper.cpp in Sources */,
E9502E331D34012200CAB86B /* booking_scoring.cpp in Sources */,
+ 670E7BB91EF9812B00A8E9ED /* ugc_db.cpp in Sources */,
675340831A3F2A7400A0A8C3 /* statistics.cpp in Sources */,
+ 670E7BB51EF9812B00A8E9ED /* road_access_generator.cpp in Sources */,
34F558871DBF4C9600A4FC11 /* opentable_dataset.cpp in Sources */,
34F558791DBF4C7800A4FC11 /* booking_quality_check.cpp in Sources */,
6753407E1A3F2A7400A0A8C3 /* osm2type.cpp in Sources */,
diff --git a/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj b/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj
index 13223abdba..3b42b3ce89 100644
--- a/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj
+++ b/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj
@@ -27,6 +27,13 @@
3462FDAA1DC1E32C00906FD7 /* libsearch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3462FD9E1DC1E28D00906FD7 /* libsearch.a */; };
3462FDAB1DC1E33400906FD7 /* libsuccinct.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3462FDA01DC1E29E00906FD7 /* libsuccinct.a */; };
34F558571DBF3CD800A4FC11 /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 34F558561DBF3CD800A4FC11 /* libstdc++.tbd */; };
+ 670E7BBC1EF9832200A8E9ED /* libicu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BBB1EF9832200A8E9ED /* libicu.a */; };
+ 670E7BBE1EF9839C00A8E9ED /* librouting_common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BBD1EF9839C00A8E9ED /* librouting_common.a */; };
+ 670E7BC01EF983A400A8E9ED /* libtraffic.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BBF1EF983A400A8E9ED /* libtraffic.a */; };
+ 670E7BC21EF9853500A8E9ED /* libicu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BBB1EF9832200A8E9ED /* libicu.a */; };
+ 670E7BC31EF9853C00A8E9ED /* librouting_common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BBD1EF9839C00A8E9ED /* librouting_common.a */; };
+ 670E7BC51EF9860100A8E9ED /* ugc_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7BC41EF9860100A8E9ED /* ugc_test.cpp */; };
+ 670E7BC71EF992F600A8E9ED /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BC61EF992F600A8E9ED /* libsqlite3.tbd */; };
670F291B1BA6CE4F00F2ABF4 /* check_mwms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1E31A4C28D5005EEA39 /* check_mwms.cpp */; };
670F291C1BA6CEE400F2ABF4 /* libmap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 67AB92C61B73D03500AB5194 /* libmap.a */; };
670F88791CE4CA81003F68BA /* libopening_hours.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670F88781CE4CA81003F68BA /* libopening_hours.a */; };
@@ -104,7 +111,6 @@
6796247D1D1012F500AE4E3C /* libopening_hours.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6796247C1D1012F500AE4E3C /* libopening_hours.a */; };
6796247E1D10130A00AE4E3C /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 677E2A091CAAC771001DC42A /* libz.tbd */; };
6796249F1D1013AD00AE4E3C /* libsearch_tests_support.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6796249E1D1013AD00AE4E3C /* libsearch_tests_support.a */; };
- 679624B41D102D3300AE4E3C /* booking_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624B31D102D3300AE4E3C /* booking_test.cpp */; };
679624B51D11773A00AE4E3C /* libmap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 67AB92C61B73D03500AB5194 /* libmap.a */; };
679624C01D11775300AE4E3C /* libapi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B61D11775300AE4E3C /* libapi.a */; };
679624C11D11775300AE4E3C /* libdrape_frontend.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B71D11775300AE4E3C /* libdrape_frontend.a */; };
@@ -193,6 +199,11 @@
34F558531DBF3ACC00A4FC11 /* common-debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-debug.xcconfig"; path = "../common-debug.xcconfig"; sourceTree = "<group>"; };
34F558541DBF3ACC00A4FC11 /* common-release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = "<group>"; };
34F558561DBF3CD800A4FC11 /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; };
+ 670E7BBB1EF9832200A8E9ED /* libicu.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicu.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libicu.a"; sourceTree = "<group>"; };
+ 670E7BBD1EF9839C00A8E9ED /* librouting_common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = librouting_common.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/librouting_common.a"; sourceTree = "<group>"; };
+ 670E7BBF1EF983A400A8E9ED /* libtraffic.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtraffic.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libtraffic.a"; sourceTree = "<group>"; };
+ 670E7BC41EF9860100A8E9ED /* ugc_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_test.cpp; sourceTree = "<group>"; };
+ 670E7BC61EF992F600A8E9ED /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; };
670F88781CE4CA81003F68BA /* libopening_hours.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopening_hours.a; path = "../../../omim-xcode-build/Release/libopening_hours.a"; sourceTree = "<group>"; };
6719DD5D1B95AB0F0018166F /* libtess2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtess2.a; path = "../../../omim-xcode-build/Debug/libtess2.a"; sourceTree = "<group>"; };
671F58B71B86109B0032311E /* intermediate_data_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intermediate_data_test.cpp; sourceTree = "<group>"; };
@@ -263,6 +274,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 670E7BC71EF992F600A8E9ED /* libsqlite3.tbd in Frameworks */,
+ 670E7BC31EF9853C00A8E9ED /* librouting_common.a in Frameworks */,
+ 670E7BC21EF9853500A8E9ED /* libicu.a in Frameworks */,
3462FDA11DC1E29E00906FD7 /* libsuccinct.a in Frameworks */,
3462FD9F1DC1E28D00906FD7 /* libsearch.a in Frameworks */,
3462FD9A1DC1E24400906FD7 /* libjansson.a in Frameworks */,
@@ -322,6 +336,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 670E7BC01EF983A400A8E9ED /* libtraffic.a in Frameworks */,
+ 670E7BBE1EF9839C00A8E9ED /* librouting_common.a in Frameworks */,
+ 670E7BBC1EF9832200A8E9ED /* libicu.a in Frameworks */,
3462FD971DC1E1FC00906FD7 /* liboauthcpp.a in Frameworks */,
3462FD951DC1E1EF00906FD7 /* libpugixml.a in Frameworks */,
3462FD931DC1E1DD00906FD7 /* libeditor.a in Frameworks */,
@@ -405,6 +422,10 @@
34F558551DBF3CD800A4FC11 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 670E7BC61EF992F600A8E9ED /* libsqlite3.tbd */,
+ 670E7BBF1EF983A400A8E9ED /* libtraffic.a */,
+ 670E7BBD1EF9839C00A8E9ED /* librouting_common.a */,
+ 670E7BBB1EF9832200A8E9ED /* libicu.a */,
3462FDA81DC1E31E00906FD7 /* libprotobuf.a */,
3462FDA61DC1E30B00906FD7 /* libopening_hours.a */,
3462FDA01DC1E29E00906FD7 /* libsuccinct.a */,
@@ -440,6 +461,7 @@
67AB92B41B738DE800AB5194 /* source_data.hpp */,
671F58B71B86109B0032311E /* intermediate_data_test.cpp */,
679624B31D102D3300AE4E3C /* booking_test.cpp */,
+ 670E7BC41EF9860100A8E9ED /* ugc_test.cpp */,
);
name = generator_tests;
path = ../../generator/generator_tests;
@@ -658,13 +680,13 @@
67AB92D91B75158300AB5194 /* osm_o5m_source_test.cpp in Sources */,
67AB92D61B75157700AB5194 /* tesselator_test.cpp in Sources */,
6726C2411A4C2D9F005EEA39 /* testingmain.cpp in Sources */,
+ 670E7BC51EF9860100A8E9ED /* ugc_test.cpp in Sources */,
67AB92D21B75156B00AB5194 /* feature_merger_test.cpp in Sources */,
67AB92C31B73C29000AB5194 /* source_to_element_test.cpp in Sources */,
67AB92D31B75156E00AB5194 /* osm_id_test.cpp in Sources */,
677792521C1B2E9700EC9499 /* metadata_parser_test.cpp in Sources */,
67AB92D11B75156700AB5194 /* feature_builder_test.cpp in Sources */,
67AB92C21B73C27300AB5194 /* source_data.cpp in Sources */,
- 679624B41D102D3300AE4E3C /* booking_test.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/xcode/ugc/ugc.xcodeproj/project.pbxproj b/xcode/ugc/ugc.xcodeproj/project.pbxproj
index 7816ff5fd2..f0c2fb0bbd 100644
--- a/xcode/ugc/ugc.xcodeproj/project.pbxproj
+++ b/xcode/ugc/ugc.xcodeproj/project.pbxproj
@@ -7,6 +7,14 @@
objects = {
/* Begin PBXBuildFile section */
+ 670E7B981EF97D1000A8E9ED /* serdes_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7B941EF97CE700A8E9ED /* serdes_tests.cpp */; };
+ 670E7B991EF97D1600A8E9ED /* testingmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670E7B961EF97D0E00A8E9ED /* testingmain.cpp */; };
+ 670E7B9B1EF9803C00A8E9ED /* libbase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7B9A1EF9803C00A8E9ED /* libbase.a */; };
+ 670E7B9D1EF9805700A8E9ED /* libplatform.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7B9C1EF9805700A8E9ED /* libplatform.a */; };
+ 670E7BA01EF9807700A8E9ED /* libalohalitics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7B9E1EF9807700A8E9ED /* libalohalitics.a */; };
+ 670E7BA11EF9807700A8E9ED /* libindexer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7B9F1EF9807700A8E9ED /* libindexer.a */; };
+ 670E7BA31EF980A600A8E9ED /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BA21EF980A600A8E9ED /* libz.tbd */; };
+ 670E7BA51EF980B300A8E9ED /* libcoding.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BA41EF980B300A8E9ED /* libcoding.a */; };
F6150E221EF90040000B955D /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F6150E1F1EF90040000B955D /* api.cpp */; };
/* End PBXBuildFile section */
@@ -23,6 +31,16 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 670E7B7C1EF97C1000A8E9ED /* ugc_tests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ugc_tests.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 670E7B941EF97CE700A8E9ED /* serdes_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = serdes_tests.cpp; sourceTree = "<group>"; };
+ 670E7B961EF97D0E00A8E9ED /* testingmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testingmain.cpp; path = ../../testing/testingmain.cpp; sourceTree = "<group>"; };
+ 670E7B9A1EF9803C00A8E9ED /* libbase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbase.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libbase.a"; sourceTree = "<group>"; };
+ 670E7B9C1EF9805700A8E9ED /* libplatform.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libplatform.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libplatform.a"; sourceTree = "<group>"; };
+ 670E7B9E1EF9807700A8E9ED /* libalohalitics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libalohalitics.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libalohalitics.a"; sourceTree = "<group>"; };
+ 670E7B9F1EF9807700A8E9ED /* libindexer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libindexer.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libindexer.a"; sourceTree = "<group>"; };
+ 670E7BA21EF980A600A8E9ED /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+ 670E7BA41EF980B300A8E9ED /* libcoding.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcoding.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libcoding.a"; sourceTree = "<group>"; };
+ 670E7BA61EF980E900A8E9ED /* serdes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = serdes.hpp; sourceTree = "<group>"; };
F6150E1F1EF90040000B955D /* api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = api.cpp; sourceTree = "<group>"; };
F6150E201EF90040000B955D /* api.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = api.hpp; sourceTree = "<group>"; };
F6150E211EF90040000B955D /* types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = types.hpp; sourceTree = "<group>"; };
@@ -32,6 +50,19 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 670E7B791EF97C1000A8E9ED /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 670E7BA51EF980B300A8E9ED /* libcoding.a in Frameworks */,
+ 670E7BA31EF980A600A8E9ED /* libz.tbd in Frameworks */,
+ 670E7BA01EF9807700A8E9ED /* libalohalitics.a in Frameworks */,
+ 670E7BA11EF9807700A8E9ED /* libindexer.a in Frameworks */,
+ 670E7B9D1EF9805700A8E9ED /* libplatform.a in Frameworks */,
+ 670E7B9B1EF9803C00A8E9ED /* libbase.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
F6F8E3A11EF83D7600F2DE8F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -42,12 +73,23 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 670E7B931EF97CBA00A8E9ED /* ugc_tests */ = {
+ isa = PBXGroup;
+ children = (
+ 670E7B961EF97D0E00A8E9ED /* testingmain.cpp */,
+ 670E7B941EF97CE700A8E9ED /* serdes_tests.cpp */,
+ );
+ name = ugc_tests;
+ path = ../../ugc/ugc_tests;
+ sourceTree = "<group>";
+ };
F6F8E39B1EF83D7600F2DE8F = {
isa = PBXGroup;
children = (
F6F8E3B81EF83DF200F2DE8F /* common-debug.xcconfig */,
F6F8E3B91EF83DF200F2DE8F /* common-release.xcconfig */,
F6F8E3A61EF83D7600F2DE8F /* ugc */,
+ 670E7B931EF97CBA00A8E9ED /* ugc_tests */,
F6F8E3A51EF83D7600F2DE8F /* Products */,
F6F8E3B31EF83DB600F2DE8F /* Frameworks */,
);
@@ -57,6 +99,7 @@
isa = PBXGroup;
children = (
F6F8E3A41EF83D7600F2DE8F /* libugc.a */,
+ 670E7B7C1EF97C1000A8E9ED /* ugc_tests.app */,
);
name = Products;
sourceTree = "<group>";
@@ -64,6 +107,7 @@
F6F8E3A61EF83D7600F2DE8F /* ugc */ = {
isa = PBXGroup;
children = (
+ 670E7BA61EF980E900A8E9ED /* serdes.hpp */,
F6150E1F1EF90040000B955D /* api.cpp */,
F6150E201EF90040000B955D /* api.hpp */,
F6150E211EF90040000B955D /* types.hpp */,
@@ -75,6 +119,12 @@
F6F8E3B31EF83DB600F2DE8F /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 670E7BA41EF980B300A8E9ED /* libcoding.a */,
+ 670E7BA21EF980A600A8E9ED /* libz.tbd */,
+ 670E7B9E1EF9807700A8E9ED /* libalohalitics.a */,
+ 670E7B9F1EF9807700A8E9ED /* libindexer.a */,
+ 670E7B9C1EF9805700A8E9ED /* libplatform.a */,
+ 670E7B9A1EF9803C00A8E9ED /* libbase.a */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -82,6 +132,23 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 670E7B7B1EF97C1000A8E9ED /* ugc_tests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 670E7B921EF97C1000A8E9ED /* Build configuration list for PBXNativeTarget "ugc_tests" */;
+ buildPhases = (
+ 670E7B781EF97C1000A8E9ED /* Sources */,
+ 670E7B791EF97C1000A8E9ED /* Frameworks */,
+ 670E7B7A1EF97C1000A8E9ED /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ugc_tests;
+ productName = ugc_tests;
+ productReference = 670E7B7C1EF97C1000A8E9ED /* ugc_tests.app */;
+ productType = "com.apple.product-type.application";
+ };
F6F8E3A31EF83D7600F2DE8F /* ugc */ = {
isa = PBXNativeTarget;
buildConfigurationList = F6F8E3AD1EF83D7600F2DE8F /* Build configuration list for PBXNativeTarget "ugc" */;
@@ -108,6 +175,10 @@
LastUpgradeCheck = 0830;
ORGANIZATIONNAME = v.mikhaylenko;
TargetAttributes = {
+ 670E7B7B1EF97C1000A8E9ED = {
+ CreatedOnToolsVersion = 8.2.1;
+ ProvisioningStyle = Automatic;
+ };
F6F8E3A31EF83D7600F2DE8F = {
CreatedOnToolsVersion = 8.3.3;
ProvisioningStyle = Automatic;
@@ -120,6 +191,7 @@
hasScannedForEncodings = 0;
knownRegions = (
en,
+ Base,
);
mainGroup = F6F8E39B1EF83D7600F2DE8F;
productRefGroup = F6F8E3A51EF83D7600F2DE8F /* Products */;
@@ -127,11 +199,31 @@
projectRoot = "";
targets = (
F6F8E3A31EF83D7600F2DE8F /* ugc */,
+ 670E7B7B1EF97C1000A8E9ED /* ugc_tests */,
);
};
/* End PBXProject section */
+/* Begin PBXResourcesBuildPhase section */
+ 670E7B7A1EF97C1000A8E9ED /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
+ 670E7B781EF97C1000A8E9ED /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 670E7B981EF97D1000A8E9ED /* serdes_tests.cpp in Sources */,
+ 670E7B991EF97D1600A8E9ED /* testingmain.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
F6F8E3A01EF83D7600F2DE8F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -143,21 +235,40 @@
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
+ 670E7B901EF97C1000A8E9ED /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ INFOPLIST_FILE = "$(OMIM_ROOT)/iphone/Maps/MAPSME.plist";
+ PRODUCT_BUNDLE_IDENTIFIER = "mail.ru.ugc-tests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ 670E7B911EF97C1000A8E9ED /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ INFOPLIST_FILE = "$(OMIM_ROOT)/iphone/Maps/MAPSME.plist";
+ PRODUCT_BUNDLE_IDENTIFIER = "mail.ru.ugc-tests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
F6F8E3AB1EF83D7600F2DE8F /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = F6F8E3B81EF83DF200F2DE8F /* common-debug.xcconfig */;
buildSettings = {
};
name = Debug;
};
F6F8E3AC1EF83D7600F2DE8F /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = F6F8E3B91EF83DF200F2DE8F /* common-release.xcconfig */;
buildSettings = {
};
name = Release;
};
F6F8E3AE1EF83D7600F2DE8F /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = F6F8E3B81EF83DF200F2DE8F /* common-debug.xcconfig */;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -165,7 +276,6 @@
};
F6F8E3AF1EF83D7600F2DE8F /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = F6F8E3B91EF83DF200F2DE8F /* common-release.xcconfig */;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -174,6 +284,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 670E7B921EF97C1000A8E9ED /* Build configuration list for PBXNativeTarget "ugc_tests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 670E7B901EF97C1000A8E9ED /* Debug */,
+ 670E7B911EF97C1000A8E9ED /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
F6F8E39F1EF83D7600F2DE8F /* Build configuration list for PBXProject "ugc" */ = {
isa = XCConfigurationList;
buildConfigurations = (