From 2e7431948be3071d401affc15b99a1a751595ab3 Mon Sep 17 00:00:00 2001 From: Sergey Yershov Date: Wed, 21 Jun 2017 02:00:32 +0300 Subject: [PATCH] Implementation of loading UGC data for generator --- 3party/jansson/myjansson.hpp | 2 + generator/CMakeLists.txt | 2 + generator/generator.pro | 2 + generator/generator_tests/CMakeLists.txt | 1 + generator/generator_tests/generator_tests.pro | 1 + generator/generator_tests/ugc_test.cpp | 54 ++++++++ generator/ugc_db.cpp | 93 ++++++++++++- generator/ugc_db.hpp | 10 ++ generator/ugc_translator.cpp | 77 +++++++++++ generator/ugc_translator.hpp | 28 ++++ .../generator.xcodeproj/project.pbxproj | 56 +++++++- .../generator_tool.xcodeproj/project.pbxproj | 26 +++- xcode/ugc/ugc.xcodeproj/project.pbxproj | 123 +++++++++++++++++- 13 files changed, 464 insertions(+), 11 deletions(-) create mode 100644 generator/generator_tests/ugc_test.cpp create mode 100644 generator/ugc_translator.cpp create mode 100644 generator/ugc_translator.hpp 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 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 + +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_ptr); + for(size_t i=0; i & /* blob */) -{ // TODO (@syershov): implement this - return false; +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 & 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 & 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 #include +#include + 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 & blob); + WARN_UNUSED_RESULT bool Exec(std::string const & statement); +private: + bool ValueToBlob(std::string const & src, std::vector & 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 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(ratingValue)); + } + + return true; +} + + +bool UGCTranslator::TranslateReview(UGCDB & db, osm::Id const id, std::vector & 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 & 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 = ""; }; 670B84BA1A8CDB0000CE4492 /* osm_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm_source.cpp; sourceTree = ""; }; 670B84BB1A8CDB0000CE4492 /* osm_source.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_source.hpp; sourceTree = ""; }; + 670E7BA71EF9812B00A8E9ED /* kml_parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kml_parser.cpp; sourceTree = ""; }; + 670E7BA81EF9812B00A8E9ED /* kml_parser.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = kml_parser.hpp; sourceTree = ""; }; + 670E7BA91EF9812B00A8E9ED /* metalines_builder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = metalines_builder.cpp; sourceTree = ""; }; + 670E7BAA1EF9812B00A8E9ED /* metalines_builder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = metalines_builder.hpp; sourceTree = ""; }; + 670E7BAB1EF9812B00A8E9ED /* road_access_generator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = road_access_generator.cpp; sourceTree = ""; }; + 670E7BAC1EF9812B00A8E9ED /* road_access_generator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = road_access_generator.hpp; sourceTree = ""; }; + 670E7BAD1EF9812B00A8E9ED /* routing_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = routing_helpers.cpp; sourceTree = ""; }; + 670E7BAE1EF9812B00A8E9ED /* routing_helpers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = routing_helpers.hpp; sourceTree = ""; }; + 670E7BAF1EF9812B00A8E9ED /* ugc_db.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_db.cpp; sourceTree = ""; }; + 670E7BB01EF9812B00A8E9ED /* ugc_db.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ugc_db.hpp; sourceTree = ""; }; + 670E7BC81EF9C29A00A8E9ED /* ugc_translator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_translator.cpp; sourceTree = ""; }; + 670E7BC91EF9C29A00A8E9ED /* ugc_translator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ugc_translator.hpp; sourceTree = ""; }; 6726C1D31A4AFEF4005EEA39 /* osm2meta.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm2meta.cpp; sourceTree = ""; }; 6726C1D41A4AFEF4005EEA39 /* osm2meta.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm2meta.hpp; sourceTree = ""; }; 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 = ""; }; 34F558541DBF3ACC00A4FC11 /* common-release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = ""; }; 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 = ""; }; + 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 = ""; }; + 670E7BBF1EF983A400A8E9ED /* libtraffic.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtraffic.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libtraffic.a"; sourceTree = ""; }; + 670E7BC41EF9860100A8E9ED /* ugc_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ugc_test.cpp; sourceTree = ""; }; + 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 = ""; }; 6719DD5D1B95AB0F0018166F /* libtess2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtess2.a; path = "../../../omim-xcode-build/Debug/libtess2.a"; sourceTree = ""; }; 671F58B71B86109B0032311E /* intermediate_data_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intermediate_data_test.cpp; sourceTree = ""; }; @@ -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 = ""; }; + 670E7B961EF97D0E00A8E9ED /* testingmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testingmain.cpp; path = ../../testing/testingmain.cpp; sourceTree = ""; }; + 670E7B9A1EF9803C00A8E9ED /* libbase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbase.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libbase.a"; sourceTree = ""; }; + 670E7B9C1EF9805700A8E9ED /* libplatform.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libplatform.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libplatform.a"; sourceTree = ""; }; + 670E7B9E1EF9807700A8E9ED /* libalohalitics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libalohalitics.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libalohalitics.a"; sourceTree = ""; }; + 670E7B9F1EF9807700A8E9ED /* libindexer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libindexer.a; path = "../../../../Library/Developer/Xcode/DerivedData/omim-gzleizqujktwggdwiejzkgjrsgvp/Build/Products/Debug/libindexer.a"; sourceTree = ""; }; + 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 = ""; }; + 670E7BA61EF980E900A8E9ED /* serdes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = serdes.hpp; sourceTree = ""; }; F6150E1F1EF90040000B955D /* api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = api.cpp; sourceTree = ""; }; F6150E201EF90040000B955D /* api.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = api.hpp; sourceTree = ""; }; F6150E211EF90040000B955D /* types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = types.hpp; sourceTree = ""; }; @@ -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 = ""; + }; 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 = ""; @@ -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 = ""; @@ -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 = (