From cfe43e4cf63397c34cca2b60b6b7cbc6d78645b6 Mon Sep 17 00:00:00 2001 From: Sergey Yershov Date: Tue, 21 Jun 2016 12:12:34 +0300 Subject: [PATCH] Add booking addresses via geocoder --- generator/booking_dataset.cpp | 106 +++++++-- generator/booking_dataset.hpp | 8 +- .../booking_addr_match.cpp | 135 +++++++++++ generator/generate_info.hpp | 1 + generator/generator_tests/booking_test.cpp | 35 +++ generator/generator_tests/generator_tests.pro | 9 +- generator/generator_tool/generator_tool.cpp | 2 + generator/generator_tool/generator_tool.pro | 18 +- generator/osm_source.cpp | 2 +- .../generator.xcodeproj/project.pbxproj | 2 + .../generator_tool.xcodeproj/project.pbxproj | 225 ++++++++++++++++++ xcode/map/map.xcodeproj/project.pbxproj | 24 ++ xcode/search/search.xcodeproj/project.pbxproj | 116 +++++++++ 13 files changed, 657 insertions(+), 26 deletions(-) create mode 100644 generator/booking_quality_check/booking_addr_match.cpp create mode 100644 generator/generator_tests/booking_test.cpp diff --git a/generator/booking_dataset.cpp b/generator/booking_dataset.cpp index b6328d10e2..899c0fc71b 100644 --- a/generator/booking_dataset.cpp +++ b/generator/booking_dataset.cpp @@ -1,5 +1,9 @@ #include "generator/booking_dataset.hpp" +#include "map/framework.hpp" + +#include "platform/platform.hpp" + #include "indexer/search_delimiters.hpp" #include "indexer/search_string_utils.hpp" @@ -26,6 +30,34 @@ bool CheckForValues(string const & value) } return false; } + +// Unlike strings::Tokenize, this function allows for empty tokens. +void Split(string const & s, char delim, vector & parts) +{ + stringstream ss; + + // Workaround for empty last field. + ss << s; + if (!s.empty() && s.back() == delim) + ss << delim; + + string part; + while (getline(ss, part, delim)) + parts.emplace_back(part); +} + +string TabbedString(string const & str) +{ + stringstream ss; + for (char c : str) + { + if (c == '\t') + ss << "\\t"; + else + ss << c; + } + return ss.str(); +} } // namespace BookingDataset::Hotel::Hotel(string const & src) @@ -55,21 +87,29 @@ BookingDataset::Hotel::Hotel(string const & src) ostream & operator<<(ostream & s, BookingDataset::Hotel const & h) { + s << fixed << setprecision(7); return s << "Name: " << h.name << "\t Address: " << h.address << "\t lat: " << h.lat << " lon: " << h.lon; } -BookingDataset::BookingDataset(string const & dataPath) +BookingDataset::BookingDataset(string const & dataPath, string const & addressReferencePath) { - LoadHotels(dataPath); + if (dataPath.empty()) + return; - size_t counter = 0; - for (auto const & hotel : m_hotels) + ifstream dataSource(dataPath); + if (!dataSource.is_open()) { - TBox b(TPoint(hotel.lat, hotel.lon), TPoint(hotel.lat, hotel.lon)); - m_rtree.insert(std::make_pair(b, counter)); - ++counter; + LOG(LERROR, ("Error while opening", dataPath, ":", strerror(errno))); + return; } + + LoadHotels(dataSource, addressReferencePath); +} + +BookingDataset::BookingDataset(istream & dataSource, string const & addressReferencePath) +{ + LoadHotels(dataSource, addressReferencePath); } bool BookingDataset::BookingFilter(OsmElement const & e) const @@ -184,6 +224,12 @@ void BookingDataset::BuildFeatures(function const & fn) cons } } + if (!hotel.street.empty()) + e.AddTag("addr:street", hotel.street); + + if(!hotel.houseNumber.empty()) + e.AddTag("addr:housenumber", hotel.houseNumber); + switch (hotel.type) { case 19: @@ -244,22 +290,46 @@ double BookingDataset::ScoreByLinearNormDistance(double distance) return 1.0 - distance / kDistanceLimitInMeters; } -void BookingDataset::LoadHotels(string const & path) +void BookingDataset::LoadHotels(istream & src, string const & addressReferencePath) { m_hotels.clear(); - if (path.empty()) - return; - - ifstream src(path); - if (!src.is_open()) - { - LOG(LERROR, ("Error while opening", path, ":", strerror(errno))); - return; - } - for (string line; getline(src, line);) m_hotels.emplace_back(line); + + if(!addressReferencePath.empty()) + { + LOG(LINFO, ("Match addresses for booking objects",addressReferencePath)); + Platform & platform = GetPlatform(); + string backupPath = platform.WritableDir(); + platform.SetWritableDirForTests(addressReferencePath); + + Framework f; + + size_t matchedNum = 0; + size_t emptyAddr = 0; + for (Hotel & hotel : m_hotels) + { + search::AddressInfo info = f.GetAddressInfoAtPoint(MercatorBounds::FromLatLon(hotel.lat, hotel.lon)); + hotel.street = info.m_street; + hotel.houseNumber = info.m_house; + + if (hotel.address.empty()) + ++emptyAddr; + if(!info.FormatAddress().empty()) + ++matchedNum; + } + LOG(LINFO, ("Num of hotels:", m_hotels.size(), "matched:", matchedNum, "Empty addresses:", emptyAddr)); + platform.SetWritableDirForTests(backupPath); + } + + size_t counter = 0; + for (auto const & hotel : m_hotels) + { + TBox b(TPoint(hotel.lat, hotel.lon), TPoint(hotel.lat, hotel.lon)); + m_rtree.insert(std::make_pair(b, counter)); + ++counter; + } } bool BookingDataset::MatchWithBooking(OsmElement const & e) const diff --git a/generator/booking_dataset.hpp b/generator/booking_dataset.hpp index cac294db30..09956be10d 100644 --- a/generator/booking_dataset.hpp +++ b/generator/booking_dataset.hpp @@ -46,6 +46,8 @@ public: double lon = 0.0; string name; string address; + string street; + string houseNumber; uint32_t stars = 0; uint32_t priceCategory = 0; double ratingBooking = 0.0; @@ -59,11 +61,13 @@ public: explicit Hotel(string const & src); }; - explicit BookingDataset(string const & dataPath); + explicit BookingDataset(string const & dataPath, string const & addressReferencePath = string()); + explicit BookingDataset(istream & dataSource, string const & addressReferencePath = string()); bool BookingFilter(OsmElement const & e) const; bool TourismFilter(OsmElement const & e) const; + inline size_t Size() const { return m_hotels.size(); } Hotel const & GetHotel(size_t index) const; vector GetNearestHotels(double lat, double lon, size_t limit, double maxDistance = 0.0) const; @@ -83,7 +87,7 @@ protected: boost::geometry::index::rtree> m_rtree; - void LoadHotels(string const & path); + void LoadHotels(istream & path, string const & addressReferencePath); bool MatchWithBooking(OsmElement const & e) const; bool Filter(OsmElement const & e, function const & fn) const; }; diff --git a/generator/booking_quality_check/booking_addr_match.cpp b/generator/booking_quality_check/booking_addr_match.cpp new file mode 100644 index 0000000000..9d063be0bb --- /dev/null +++ b/generator/booking_quality_check/booking_addr_match.cpp @@ -0,0 +1,135 @@ +#include "generator/booking_dataset.hpp" +#include "generator/osm_source.hpp" + +#include "map/framework.hpp" + +#include "indexer/classificator_loader.hpp" +#include "indexer/data_header.hpp" +#include "indexer/index.hpp" +#include "indexer/mwm_set.hpp" + +#include "platform/country_file.hpp" +#include "platform/local_country_file.hpp" +#include "platform/local_country_file_utils.hpp" +#include "platform/platform.hpp" + +#include "geometry/distance_on_sphere.hpp" + +#include "search/processor_factory.hpp" +#include "search/ranking_info.hpp" +#include "search/result.hpp" +#include "search/search_quality/helpers.hpp" +#include "search/search_tests_support/test_search_engine.hpp" +#include "search/search_tests_support/test_search_request.hpp" + +#include "storage/country_info_getter.hpp" +#include "storage/index.hpp" +#include "storage/storage.hpp" + +#include "coding/reader_wrapper.hpp" + +#include "std/fstream.hpp" +#include "std/iostream.hpp" +#include "std/numeric.hpp" +#include "std/shared_ptr.hpp" + +#include "3party/gflags/src/gflags/gflags.h" + +using namespace generator; +using namespace storage; +using namespace search; +using namespace search::tests_support; + +void DidDownload(TCountryId const & /* countryId */, + shared_ptr const & /* localFile */) +{ +} + +bool WillDelete(TCountryId const & /* countryId */, + shared_ptr const & /* localFile */) +{ + return false; +} + +uint64_t ReadVersionFromHeader(platform::LocalCountryFile const & mwm) +{ + vector specialFiles = { + WORLD_FILE_NAME, + WORLD_COASTS_FILE_NAME, + WORLD_COASTS_OBSOLETE_FILE_NAME + }; + for (auto const & name : specialFiles) + { + if (mwm.GetCountryName() == name) + return mwm.GetVersion(); + } + + ModelReaderPtr reader = FilesContainerR(mwm.GetPath(MapOptions::Map)).GetReader(VERSION_FILE_TAG); + ReaderSrc src(reader.GetPtr()); + + version::MwmVersion version; + version::ReadVersion(src, version); + return version.GetVersion(); +} + +DEFINE_string(booking_data, "", "Path to booking data in .tsv format"); +DEFINE_string(user_resource_path, "", "Path to data directory (resources dir)"); +DEFINE_string(data_path, "", "Path to mwm files (writable dir)"); +DEFINE_string(locale, "en", "Locale of all the search queries"); +DEFINE_int32(num_threads, 1, "Number of search engine threads"); + + +int main(int argc, char * argv[]) +{ + google::SetUsageMessage("Takes OSM XML data from stdin and creates" + " data and index files in several passes."); + google::ParseCommandLineFlags(&argc, &argv, true); + + Platform & platform = GetPlatform(); + + string countriesFile = COUNTRIES_FILE; + if (!FLAGS_user_resource_path.empty()) + { + platform.SetResourceDir(FLAGS_user_resource_path); + countriesFile = my::JoinFoldersToPath(FLAGS_user_resource_path, COUNTRIES_FILE); + } + + if (!FLAGS_data_path.empty()) + { + platform.SetSettingsDirForTests(FLAGS_data_path); + platform.SetWritableDirForTests(FLAGS_data_path); + } + + LOG(LINFO, ("writable dir =", platform.WritableDir())); + LOG(LINFO, ("resources dir =", platform.ResourcesDir())); + + LOG_SHORT(LINFO, ("Booking data:", FLAGS_booking_data)); + + BookingDataset bookingDataset(FLAGS_booking_data); + + + Framework f; + + size_t matchedNum = 0; + size_t emptyAddr = 0; + for (size_t i = 0; i < bookingDataset.Size(); ++i) + { + BookingDataset::Hotel const & hotel = bookingDataset.GetHotel(i); + + search::AddressInfo info = f.GetAddressInfoAtPoint(MercatorBounds::FromLatLon(hotel.lat, hotel.lon)); + + if (hotel.address.empty()) + ++emptyAddr; + + if(!info.FormatAddress().empty()) + { + ++matchedNum; + cout << "[" << i << "/" << bookingDataset.Size() << "] Hotel: " << hotel.address + << " AddLoc: " << hotel.addressLoc << " --> " << info.FormatAddress() << endl; + } + } + + cout << "Num of hotels: " << bookingDataset.Size() << " matched: " << matchedNum << " Empty addresses: " << emptyAddr << endl; + + return 0; +} diff --git a/generator/generate_info.hpp b/generator/generate_info.hpp index 6acca8fa80..94198d93f0 100644 --- a/generator/generate_info.hpp +++ b/generator/generate_info.hpp @@ -43,6 +43,7 @@ struct GenerateInfo string m_osmFileName; string m_bookingDatafileName; + string m_bookingReferenceDir; uint32_t m_versionDate = 0; diff --git a/generator/generator_tests/booking_test.cpp b/generator/generator_tests/booking_test.cpp new file mode 100644 index 0000000000..f7ed68feed --- /dev/null +++ b/generator/generator_tests/booking_test.cpp @@ -0,0 +1,35 @@ +#include "testing/testing.hpp" + +#include "generator/booking_dataset.hpp" + +UNIT_TEST(BookingDataset_SmokeTest) +{ + stringstream ss; + generator::BookingDataset data(ss); + TEST_EQUAL(data.Size(), 0, ()); +} + +UNIT_TEST(BookingDataset_ParseTest) +{ + stringstream ss("1485988\t36.75818960879561\t3.053177244180233\tAppartement Alger Centre\t50 Avenue Ahmed Ghermoul\t0\t0\tNone\tNone\thttp://www.booking.com/hotel/dz/appartement-alger-centre-alger.html\t201\t\t\t"); + generator::BookingDataset data(ss); + TEST_EQUAL(data.Size(), 1, ()); +} + +UNIT_TEST(BookingDataset_ParseTest2) +{ + stringstream ss( + "1485988\t36.75818960879561\t3.053177244180233\tAppartement Alger Centre\t50 Avenue Ahmed Ghermoul\t0\t0\tNone\tNone\thttp://www.booking.com/hotel/dz/appartement-alger-centre-alger.html\t201\t\t\t\n" + "357811\t34.86737239675703\t-1.31686270236969\tRenaissance Tlemcen Hotel\tRenaissance Tlemcen Hotel\t5\t2\tNone\tNone\thttp://www.booking.com/hotel/dz/renaissance-tlemcen.html\t204\t\t\t\n" \ + "1500820\t36.72847621708523\t3.0645270245369147\tMazghana Apartment\tCite Garidi 1 Tours 3 N 53, Kouba\t0\t0\tNone\tNone\thttp://www.booking.com/hotel/dz/mazghana-apartment.html\t201\t\t\t\n" \ + "1318991\t35.692865978372666\t-0.6278949570083796\tBest Western Hotel Colombe\t6 Bd Zabour Larbi Hai Khaldia Delmonte\t4\t2\tNone\tNone\thttp://www.booking.com/hotel/dz/best-western-colombe.html\t204\t\t\t\n" \ + "1495828\t36.33835943\t6.626214981\tConstantine Marriott Hotel\tOued Rhumel Street, Cites des Arcades Romaines,\t5\t2\tNone\tNone\thttp://www.booking.com/hotel/dz/constantine-marriott.html\t204\t\t\t\n" \ + "1411999\t35.73994643933386\t-0.757756233215332\tResidence Nadra\tBoulevard de la plage, Niche 1236 Paradis plage\t0\t1\tNone\tNone\thttp://www.booking.com/hotel/dz/residence-nadra.html\t201\t\t\t\n" \ + "1497769\t36.80667121575615\t3.231203541069817\tApartment La Pérouse\tLa Pérouse Ain Taya\t0\t0\tNone\tNone\thttp://www.booking.com/hotel/dz/apartment-la-perouse.html\t220\t\t\t\n" \ + "1668244\t36.715150622433804\t2.8442734479904175\tAZ Hotel Zeralda\t09 Rue de Mahelma - Zeralda - ALGER\t4\t2\tNone\tNone\thttp://www.booking.com/hotel/dz/el-aziz-zeralda.html\t204\t\t\t\n" \ + "1486823\t36.73432645678891\t3.0335435271263123\tGuest House Marhaba\tResidence Soumam - Bloc B - Appt 17- Said Hamdine\t0\t0\tNone\tNone\thttp://www.booking.com/hotel/dz/marhaba.html\t208\t\t\t\n" \ + "1759799\t35.73832476589291\t-0.7553583383560181\tHotel la brise\tAngle boulevard de la plage et route nationale niche 1159 paradis plage\t2\t2\tNone\tNone\thttp://www.booking.com/hotel/dz/la-brise.html\t204\t\t\t\n" + ); + generator::BookingDataset data(ss); + TEST_EQUAL(data.Size(), 10, ()); +} \ No newline at end of file diff --git a/generator/generator_tests/generator_tests.pro b/generator/generator_tests/generator_tests.pro index c55a55bf38..f3b4141758 100644 --- a/generator/generator_tests/generator_tests.pro +++ b/generator/generator_tests/generator_tests.pro @@ -4,8 +4,13 @@ CONFIG -= app_bundle TEMPLATE = app ROOT_DIR = ../.. -DEPENDENCIES = generator map routing indexer platform geometry coding base \ - expat tess2 protobuf tomcrypt osrm succinct +#DEPENDENCIES = generator map routing indexer platform geometry coding base \ +# expat tess2 protobuf tomcrypt osrm succinct + +DEPENDENCIES = drape_frontend routing search storage indexer drape map platform editor geometry \ + coding base freetype expat fribidi tomcrypt jansson protobuf osrm stats_client \ + minizip succinct pugixml tess2 gflags oauthcpp generator + include($$ROOT_DIR/common.pri) diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp index 9c884917a4..0aff559f45 100644 --- a/generator/generator_tool/generator_tool.cpp +++ b/generator/generator_tool/generator_tool.cpp @@ -68,6 +68,7 @@ DEFINE_string(osm_file_name, "", "Input osm area file"); DEFINE_string(osm_file_type, "xml", "Input osm area file type [xml, o5m]"); DEFINE_string(user_resource_path, "", "User defined resource path for classificator.txt and etc."); DEFINE_string(booking_data, "", "Path to booking data in .tsv format"); +DEFINE_string(booking_reference_path, "", "Path to mwm dataset for match booking addresses"); DEFINE_uint64(planet_version, my::SecondsSinceEpoch(), "Version as seconds since epoch, by default - now"); int main(int argc, char ** argv) @@ -102,6 +103,7 @@ int main(int argc, char ** argv) genInfo.m_failOnCoasts = FLAGS_fail_on_coasts; genInfo.m_preloadCache = FLAGS_preload_cache; genInfo.m_bookingDatafileName = FLAGS_booking_data; + genInfo.m_bookingReferenceDir = FLAGS_booking_reference_path; genInfo.m_versionDate = static_cast(FLAGS_planet_version); diff --git a/generator/generator_tool/generator_tool.pro b/generator/generator_tool/generator_tool.pro index b0a0c3c6b5..9e332c77e3 100644 --- a/generator/generator_tool/generator_tool.pro +++ b/generator/generator_tool/generator_tool.pro @@ -1,9 +1,17 @@ # Generator binary ROOT_DIR = ../.. -DEPENDENCIES = generator search routing storage indexer platform editor geometry coding base \ - osrm gflags expat tess2 jansson protobuf tomcrypt \ - succinct stats_client pugixml +#DEPENDENCIES = generator map search routing storage indexer platform editor geometry coding base \ +# osrm gflags expat tess2 jansson protobuf tomcrypt \ +# succinct stats_client pugixml + +#DEPENDENCIES = generator drape map drape_frontend routing search storage indexer platform editor geometry \ +# coding base freetype gflags expat tess2 fribidi tomcrypt jansson protobuf osrm stats_client \ +# minizip succinct pugixml oauthcpp + +DEPENDENCIES = drape_frontend routing search storage indexer drape map platform editor geometry \ + coding base freetype expat fribidi tomcrypt jansson protobuf osrm stats_client \ + minizip succinct pugixml tess2 gflags oauthcpp generator include($$ROOT_DIR/common.pri) @@ -16,6 +24,10 @@ TEMPLATE = app # needed for Platform::WorkingDir() and unicode combining QT *= core +macx-* { + LIBS *= "-framework IOKit" "-framework SystemConfiguration" +} + SOURCES += \ generator_tool.cpp \ diff --git a/generator/osm_source.cpp b/generator/osm_source.cpp index 3992b9016f..2ef84e5dc8 100644 --- a/generator/osm_source.cpp +++ b/generator/osm_source.cpp @@ -515,7 +515,7 @@ bool GenerateFeaturesImpl(feature::GenerateInfo & info) TagReplacer tagReplacer(GetPlatform().ResourcesDir() + REPLACED_TAGS_FILE); // If info.m_bookingDatafileName is empty then no data will be loaded. - generator::BookingDataset bookingDataset(info.m_bookingDatafileName); + generator::BookingDataset bookingDataset(info.m_bookingDatafileName, info.m_bookingReferenceDir); stringstream skippedElements; diff --git a/xcode/generator/generator.xcodeproj/project.pbxproj b/xcode/generator/generator.xcodeproj/project.pbxproj index f2959cb590..d95c9fb035 100644 --- a/xcode/generator/generator.xcodeproj/project.pbxproj +++ b/xcode/generator/generator.xcodeproj/project.pbxproj @@ -442,6 +442,7 @@ "$(OMIM_ROOT)/3party/gflags/src", "$(OMIM_ROOT)/3party/osrm/osrm-backend/include", "$(QT_PATH)/include", + "$(OMIM_ROOT)/3party/glm", ); MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; @@ -484,6 +485,7 @@ "$(OMIM_ROOT)/3party/gflags/src", "$(OMIM_ROOT)/3party/osrm/osrm-backend/include", "$(QT_PATH)/include", + "$(OMIM_ROOT)/3party/glm", ); MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; diff --git a/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj b/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj index d8445bd6f5..4b8eb4c9be 100644 --- a/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj +++ b/xcode/generator_tool/generator_tool.xcodeproj/project.pbxproj @@ -77,6 +77,47 @@ 677E2A0D1CAAC7CB001DC42A /* osm2meta_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 677E2A0B1CAAC7CB001DC42A /* osm2meta_test.cpp */; }; 677E2A0E1CAAC7CB001DC42A /* tag_admixer_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 677E2A0C1CAAC7CB001DC42A /* tag_admixer_test.cpp */; }; 677E2A191CAACCB3001DC42A /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 677E2A091CAAC771001DC42A /* libz.tbd */; }; + 679624641D100F3900AE4E3C /* booking_addr_match.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624571D100EE300AE4E3C /* booking_addr_match.cpp */; }; + 679624651D100F7C00AE4E3C /* libalohalitics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6753408F1C5230ED002CF0D9 /* libalohalitics.a */; }; + 679624661D100F7C00AE4E3C /* libbase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28D71B1C800D001A525C /* libbase.a */; }; + 679624671D100F7C00AE4E3C /* libcoding.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28C91B1C7FED001A525C /* libcoding.a */; }; + 679624681D100F7C00AE4E3C /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28C71B1C7FC9001A525C /* libexpat.a */; }; + 679624691D100F7C00AE4E3C /* libgenerator.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28CA1B1C7FED001A525C /* libgenerator.a */; }; + 6796246A1D100F7C00AE4E3C /* libgeometry.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28CB1B1C7FED001A525C /* libgeometry.a */; }; + 6796246B1D100F7C00AE4E3C /* libgflags.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28CC1B1C7FED001A525C /* libgflags.a */; }; + 6796246C1D100F7C00AE4E3C /* libindexer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28CD1B1C7FED001A525C /* libindexer.a */; }; + 6796246D1D100F7C00AE4E3C /* libjansson.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28ED1B1C80FB001A525C /* libjansson.a */; }; + 6796246E1D100F7C00AE4E3C /* libplatform.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28D31B1C8001001A525C /* libplatform.a */; }; + 6796246F1D100F7C00AE4E3C /* libsearch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28EF1B1C8104001A525C /* libsearch.a */; }; + 679624701D100F7C00AE4E3C /* libstorage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28EB1B1C80F4001A525C /* libstorage.a */; }; + 679624711D100F7C00AE4E3C /* libsuccinct.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28F11B1C8119001A525C /* libsuccinct.a */; }; + 679624721D100F7C00AE4E3C /* libtomcrypt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28DD1B1C8027001A525C /* libtomcrypt.a */; }; + 679624741D1012B700AE4E3C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624731D1012B700AE4E3C /* Foundation.framework */; }; + 679624751D1012BD00AE4E3C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 675343E01A3F600D00A0A8C3 /* IOKit.framework */; }; + 679624771D1012C700AE4E3C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624761D1012C700AE4E3C /* SystemConfiguration.framework */; }; + 679624781D1012D500AE4E3C /* libpugixml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6753408A1C523054002CF0D9 /* libpugixml.a */; }; + 679624791D1012E000AE4E3C /* libeditor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 675340891C523054002CF0D9 /* libeditor.a */; }; + 6796247A1D1012E900AE4E3C /* liboauthcpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6753408D1C5230DE002CF0D9 /* liboauthcpp.a */; }; + 6796247B1D1012F500AE4E3C /* libprotobuf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28DB1B1C801D001A525C /* libprotobuf.a */; }; + 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 */; }; + 679624C21D11775300AE4E3C /* libdrape.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B81D11775300AE4E3C /* libdrape.a */; }; + 679624C31D11775300AE4E3C /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B91D11775300AE4E3C /* libfreetype.a */; }; + 679624C41D11775300AE4E3C /* libfribidi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BA1D11775300AE4E3C /* libfribidi.a */; }; + 679624C51D11775300AE4E3C /* liblodepng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BB1D11775300AE4E3C /* liblodepng.a */; }; + 679624C61D11775300AE4E3C /* libminizip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BC1D11775300AE4E3C /* libminizip.a */; }; + 679624C71D11775300AE4E3C /* libplatform_tests_support.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BD1D11775300AE4E3C /* libplatform_tests_support.a */; }; + 679624C81D11775300AE4E3C /* libsdf_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BE1D11775300AE4E3C /* libsdf_image.a */; }; + 679624C91D11775300AE4E3C /* libstb_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BF1D11775300AE4E3C /* libstb_image.a */; }; + 679624CA1D11775F00AE4E3C /* libosrm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28F31B1C8125001A525C /* libosrm.a */; }; + 679624CB1D11775F00AE4E3C /* librouting.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674A28D41B1C8001001A525C /* librouting.a */; }; + 679624CD1D11775F00AE4E3C /* libagg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624CC1D11775F00AE4E3C /* libagg.a */; }; + 679624CF1D11779700AE4E3C /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624CE1D11779700AE4E3C /* OpenGL.framework */; }; 67AB92C21B73C27300AB5194 /* source_data.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67AB92B31B738DE800AB5194 /* source_data.cpp */; }; 67AB92C31B73C29000AB5194 /* source_to_element_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 674A39D21B727589001DDB91 /* source_to_element_test.cpp */; }; 67AB92D01B75156400AB5194 /* coasts_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1E51A4C28D5005EEA39 /* coasts_test.cpp */; }; @@ -87,6 +128,18 @@ 67AB92D61B75157700AB5194 /* tesselator_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1EB1A4C28D5005EEA39 /* tesselator_test.cpp */; }; 67AB92D71B75157A00AB5194 /* triangles_tree_coding_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1EC1A4C28D5005EEA39 /* triangles_tree_coding_test.cpp */; }; 67AB92D91B75158300AB5194 /* osm_o5m_source_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6764B8931ADD6FC100DD8B15 /* osm_o5m_source_test.cpp */; }; + 67BC92BC1D17FD5800A4A378 /* libagg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624CC1D11775F00AE4E3C /* libagg.a */; }; + 67BC92BD1D17FD5800A4A378 /* libdrape_frontend.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B71D11775300AE4E3C /* libdrape_frontend.a */; }; + 67BC92BE1D17FD5800A4A378 /* libdrape.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B81D11775300AE4E3C /* libdrape.a */; }; + 67BC92BF1D17FD5800A4A378 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B91D11775300AE4E3C /* libfreetype.a */; }; + 67BC92C01D17FD5800A4A378 /* libfribidi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BA1D11775300AE4E3C /* libfribidi.a */; }; + 67BC92C11D17FD5800A4A378 /* liblodepng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BB1D11775300AE4E3C /* liblodepng.a */; }; + 67BC92C21D17FD5800A4A378 /* libmap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 67AB92C61B73D03500AB5194 /* libmap.a */; }; + 67BC92C31D17FD5800A4A378 /* libminizip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BC1D11775300AE4E3C /* libminizip.a */; }; + 67BC92C41D17FD5800A4A378 /* libsdf_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BE1D11775300AE4E3C /* libsdf_image.a */; }; + 67BC92C51D17FD5800A4A378 /* libstb_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624BF1D11775300AE4E3C /* libstb_image.a */; }; + 67BC92C61D17FDE600A4A378 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624CE1D11779700AE4E3C /* OpenGL.framework */; }; + 67BC92C71D17FDF800A4A378 /* libapi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 679624B61D11775300AE4E3C /* libapi.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -117,6 +170,15 @@ ); runOnlyForDeploymentPostprocessing = 1; }; + 6796245B1D100F2500AE4E3C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -221,6 +283,25 @@ 677E2A091CAAC771001DC42A /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 677E2A0B1CAAC7CB001DC42A /* osm2meta_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm2meta_test.cpp; sourceTree = ""; }; 677E2A0C1CAAC7CB001DC42A /* tag_admixer_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tag_admixer_test.cpp; sourceTree = ""; }; + 679624571D100EE300AE4E3C /* booking_addr_match.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = booking_addr_match.cpp; sourceTree = ""; }; + 6796245D1D100F2500AE4E3C /* booking_addr_match */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = booking_addr_match; sourceTree = BUILT_PRODUCTS_DIR; }; + 679624731D1012B700AE4E3C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 679624761D1012C700AE4E3C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 6796247C1D1012F500AE4E3C /* libopening_hours.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopening_hours.a; path = "../../../omim-xcode-build/Debug/libopening_hours.a"; sourceTree = ""; }; + 6796249E1D1013AD00AE4E3C /* libsearch_tests_support.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsearch_tests_support.a; path = "../../../omim-xcode-build/Debug/libsearch_tests_support.a"; sourceTree = ""; }; + 679624B31D102D3300AE4E3C /* booking_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = booking_test.cpp; sourceTree = ""; }; + 679624B61D11775300AE4E3C /* libapi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libapi.a; path = "../../../omim-xcode-build/Debug/libapi.a"; sourceTree = ""; }; + 679624B71D11775300AE4E3C /* libdrape_frontend.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libdrape_frontend.a; path = "../../../omim-xcode-build/Debug/libdrape_frontend.a"; sourceTree = ""; }; + 679624B81D11775300AE4E3C /* libdrape.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libdrape.a; path = "../../../omim-xcode-build/Debug/libdrape.a"; sourceTree = ""; }; + 679624B91D11775300AE4E3C /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreetype.a; path = "../../../omim-xcode-build/Debug/libfreetype.a"; sourceTree = ""; }; + 679624BA1D11775300AE4E3C /* libfribidi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfribidi.a; path = "../../../omim-xcode-build/Debug/libfribidi.a"; sourceTree = ""; }; + 679624BB1D11775300AE4E3C /* liblodepng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblodepng.a; path = "../../../omim-xcode-build/Debug/liblodepng.a"; sourceTree = ""; }; + 679624BC1D11775300AE4E3C /* libminizip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libminizip.a; path = "../../../omim-xcode-build/Debug/libminizip.a"; sourceTree = ""; }; + 679624BD1D11775300AE4E3C /* libplatform_tests_support.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libplatform_tests_support.a; path = "../../../omim-xcode-build/Debug/libplatform_tests_support.a"; sourceTree = ""; }; + 679624BE1D11775300AE4E3C /* libsdf_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdf_image.a; path = "../../../omim-xcode-build/Debug/libsdf_image.a"; sourceTree = ""; }; + 679624BF1D11775300AE4E3C /* libstb_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libstb_image.a; path = "../../../omim-xcode-build/Debug/libstb_image.a"; sourceTree = ""; }; + 679624CC1D11775F00AE4E3C /* libagg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libagg.a; path = "../../../omim-xcode-build/Debug/libagg.a"; sourceTree = ""; }; + 679624CE1D11779700AE4E3C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; 67AB92B31B738DE800AB5194 /* source_data.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = source_data.cpp; sourceTree = ""; }; 67AB92B41B738DE800AB5194 /* source_data.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = source_data.hpp; sourceTree = ""; }; 67AB92C61B73D03500AB5194 /* libmap.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmap.a; path = "../../../omim-xcode-build/Debug/libmap.a"; sourceTree = ""; }; @@ -284,6 +365,18 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 67BC92C71D17FDF800A4A378 /* libapi.a in Frameworks */, + 67BC92C61D17FDE600A4A378 /* OpenGL.framework in Frameworks */, + 67BC92BC1D17FD5800A4A378 /* libagg.a in Frameworks */, + 67BC92BD1D17FD5800A4A378 /* libdrape_frontend.a in Frameworks */, + 67BC92BE1D17FD5800A4A378 /* libdrape.a in Frameworks */, + 67BC92BF1D17FD5800A4A378 /* libfreetype.a in Frameworks */, + 67BC92C01D17FD5800A4A378 /* libfribidi.a in Frameworks */, + 67BC92C11D17FD5800A4A378 /* liblodepng.a in Frameworks */, + 67BC92C21D17FD5800A4A378 /* libmap.a in Frameworks */, + 67BC92C31D17FD5800A4A378 /* libminizip.a in Frameworks */, + 67BC92C41D17FD5800A4A378 /* libsdf_image.a in Frameworks */, + 67BC92C51D17FD5800A4A378 /* libstb_image.a in Frameworks */, 675340901C5230ED002CF0D9 /* libalohalitics.a in Frameworks */, 677E2A191CAACCB3001DC42A /* libz.tbd in Frameworks */, 6753408E1C5230DE002CF0D9 /* liboauthcpp.a in Frameworks */, @@ -312,6 +405,52 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6796245A1D100F2500AE4E3C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 679624CF1D11779700AE4E3C /* OpenGL.framework in Frameworks */, + 679624CD1D11775F00AE4E3C /* libagg.a in Frameworks */, + 679624CA1D11775F00AE4E3C /* libosrm.a in Frameworks */, + 679624CB1D11775F00AE4E3C /* librouting.a in Frameworks */, + 679624C01D11775300AE4E3C /* libapi.a in Frameworks */, + 679624C11D11775300AE4E3C /* libdrape_frontend.a in Frameworks */, + 679624C21D11775300AE4E3C /* libdrape.a in Frameworks */, + 679624C31D11775300AE4E3C /* libfreetype.a in Frameworks */, + 679624C41D11775300AE4E3C /* libfribidi.a in Frameworks */, + 679624C51D11775300AE4E3C /* liblodepng.a in Frameworks */, + 679624C61D11775300AE4E3C /* libminizip.a in Frameworks */, + 679624C71D11775300AE4E3C /* libplatform_tests_support.a in Frameworks */, + 679624C81D11775300AE4E3C /* libsdf_image.a in Frameworks */, + 679624C91D11775300AE4E3C /* libstb_image.a in Frameworks */, + 679624B51D11773A00AE4E3C /* libmap.a in Frameworks */, + 6796249F1D1013AD00AE4E3C /* libsearch_tests_support.a in Frameworks */, + 6796247E1D10130A00AE4E3C /* libz.tbd in Frameworks */, + 6796247D1D1012F500AE4E3C /* libopening_hours.a in Frameworks */, + 6796247B1D1012F500AE4E3C /* libprotobuf.a in Frameworks */, + 6796247A1D1012E900AE4E3C /* liboauthcpp.a in Frameworks */, + 679624791D1012E000AE4E3C /* libeditor.a in Frameworks */, + 679624781D1012D500AE4E3C /* libpugixml.a in Frameworks */, + 679624771D1012C700AE4E3C /* SystemConfiguration.framework in Frameworks */, + 679624751D1012BD00AE4E3C /* IOKit.framework in Frameworks */, + 679624741D1012B700AE4E3C /* Foundation.framework in Frameworks */, + 679624651D100F7C00AE4E3C /* libalohalitics.a in Frameworks */, + 679624661D100F7C00AE4E3C /* libbase.a in Frameworks */, + 679624671D100F7C00AE4E3C /* libcoding.a in Frameworks */, + 679624681D100F7C00AE4E3C /* libexpat.a in Frameworks */, + 679624691D100F7C00AE4E3C /* libgenerator.a in Frameworks */, + 6796246A1D100F7C00AE4E3C /* libgeometry.a in Frameworks */, + 6796246B1D100F7C00AE4E3C /* libgflags.a in Frameworks */, + 6796246C1D100F7C00AE4E3C /* libindexer.a in Frameworks */, + 6796246D1D100F7C00AE4E3C /* libjansson.a in Frameworks */, + 6796246E1D100F7C00AE4E3C /* libplatform.a in Frameworks */, + 6796246F1D100F7C00AE4E3C /* libsearch.a in Frameworks */, + 679624701D100F7C00AE4E3C /* libstorage.a in Frameworks */, + 679624711D100F7C00AE4E3C /* libsuccinct.a in Frameworks */, + 679624721D100F7C00AE4E3C /* libtomcrypt.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -397,6 +536,7 @@ 67AB92B31B738DE800AB5194 /* source_data.cpp */, 67AB92B41B738DE800AB5194 /* source_data.hpp */, 671F58B71B86109B0032311E /* intermediate_data_test.cpp */, + 679624B31D102D3300AE4E3C /* booking_test.cpp */, ); name = generator_tests; path = ../../generator/generator_tests; @@ -405,6 +545,7 @@ 6737465A1CF46324005E6D1F /* booking_quality_check */ = { isa = PBXGroup; children = ( + 679624571D100EE300AE4E3C /* booking_addr_match.cpp */, 673746661CF4641B005E6D1F /* booking_quality_check.cpp */, ); name = booking_quality_check; @@ -430,6 +571,7 @@ 675341581A3F54D800A0A8C3 /* generator_tool */, 6726C2351A4C2BBD005EEA39 /* generator_tests */, 6737465F1CF4639F005E6D1F /* booking_quality_check */, + 6796245D1D100F2500AE4E3C /* booking_addr_match */, ); name = Products; sourceTree = ""; @@ -446,6 +588,22 @@ 6753453F1A3F6FA600A0A8C3 /* libs */ = { isa = PBXGroup; children = ( + 679624CE1D11779700AE4E3C /* OpenGL.framework */, + 679624CC1D11775F00AE4E3C /* libagg.a */, + 679624B61D11775300AE4E3C /* libapi.a */, + 679624B71D11775300AE4E3C /* libdrape_frontend.a */, + 679624B81D11775300AE4E3C /* libdrape.a */, + 679624B91D11775300AE4E3C /* libfreetype.a */, + 679624BA1D11775300AE4E3C /* libfribidi.a */, + 679624BB1D11775300AE4E3C /* liblodepng.a */, + 679624BC1D11775300AE4E3C /* libminizip.a */, + 679624BD1D11775300AE4E3C /* libplatform_tests_support.a */, + 679624BE1D11775300AE4E3C /* libsdf_image.a */, + 679624BF1D11775300AE4E3C /* libstb_image.a */, + 6796249E1D1013AD00AE4E3C /* libsearch_tests_support.a */, + 6796247C1D1012F500AE4E3C /* libopening_hours.a */, + 679624761D1012C700AE4E3C /* SystemConfiguration.framework */, + 679624731D1012B700AE4E3C /* Foundation.framework */, 670F88781CE4CA81003F68BA /* libopening_hours.a */, 677E2A091CAAC771001DC42A /* libz.tbd */, 6753408F1C5230ED002CF0D9 /* libalohalitics.a */, @@ -533,6 +691,23 @@ productReference = 675341581A3F54D800A0A8C3 /* generator_tool */; productType = "com.apple.product-type.tool"; }; + 6796245C1D100F2500AE4E3C /* booking_addr_match */ = { + isa = PBXNativeTarget; + buildConfigurationList = 679624611D100F2500AE4E3C /* Build configuration list for PBXNativeTarget "booking_addr_match" */; + buildPhases = ( + 679624591D100F2500AE4E3C /* Sources */, + 6796245A1D100F2500AE4E3C /* Frameworks */, + 6796245B1D100F2500AE4E3C /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = booking_addr_match; + productName = booking_addr_match; + productReference = 6796245D1D100F2500AE4E3C /* booking_addr_match */; + productType = "com.apple.product-type.tool"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -548,6 +723,9 @@ 675341571A3F54D800A0A8C3 = { CreatedOnToolsVersion = 6.1; }; + 6796245C1D100F2500AE4E3C = { + CreatedOnToolsVersion = 7.3.1; + }; }; }; buildConfigurationList = 675341531A3F54D800A0A8C3 /* Build configuration list for PBXProject "generator_tool" */; @@ -565,6 +743,7 @@ 675341571A3F54D800A0A8C3 /* generator_tool */, 6726C21C1A4C2BBD005EEA39 /* generator_tests */, 6737465E1CF4639F005E6D1F /* booking_quality_check */, + 6796245C1D100F2500AE4E3C /* booking_addr_match */, ); }; /* End PBXProject section */ @@ -588,6 +767,7 @@ 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; }; @@ -609,6 +789,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 679624591D100F2500AE4E3C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 679624641D100F3900AE4E3C /* booking_addr_match.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -706,6 +894,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(OMIM_ROOT)/3party/gflags/src/", + "$(OMIM_ROOT)/3party/glm", ); LIBRARY_SEARCH_PATHS = "$(QT_PATH)/lib"; MACOSX_DEPLOYMENT_TARGET = 10.10; @@ -755,6 +944,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(OMIM_ROOT)/3party/gflags/src/", + "$(OMIM_ROOT)/3party/glm", ); LIBRARY_SEARCH_PATHS = "$(QT_PATH)/lib"; MACOSX_DEPLOYMENT_TARGET = 10.10; @@ -790,6 +980,32 @@ }; name = Release; }; + 679624621D100F2500AE4E3C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CODE_SIGN_IDENTITY = "-"; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_NO_COMMON_BLOCKS = YES; + HEADER_SEARCH_PATHS = "$(inherited)"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 679624631D100F2500AE4E3C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + GCC_NO_COMMON_BLOCKS = YES; + HEADER_SEARCH_PATHS = "$(inherited)"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -829,6 +1045,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 679624611D100F2500AE4E3C /* Build configuration list for PBXNativeTarget "booking_addr_match" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 679624621D100F2500AE4E3C /* Debug */, + 679624631D100F2500AE4E3C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 675341501A3F54D800A0A8C3 /* Project object */; diff --git a/xcode/map/map.xcodeproj/project.pbxproj b/xcode/map/map.xcodeproj/project.pbxproj index c74d5b84d5..45a6ffb81b 100644 --- a/xcode/map/map.xcodeproj/project.pbxproj +++ b/xcode/map/map.xcodeproj/project.pbxproj @@ -73,6 +73,12 @@ 6788508E1D071E34004201E1 /* libpugixml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 678850871D071E34004201E1 /* libpugixml.a */; }; 6788508F1D071E34004201E1 /* libsdf_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 678850881D071E34004201E1 /* libsdf_image.a */; }; 678850901D071E34004201E1 /* libstb_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 678850891D071E34004201E1 /* libstb_image.a */; }; + 679624AD1D1017DB00AE4E3C /* address_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A01D1017C200AE4E3C /* address_tests.cpp */; }; + 679624AE1D1017DB00AE4E3C /* feature_getters_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A11D1017C200AE4E3C /* feature_getters_tests.cpp */; }; + 679624AF1D1017DB00AE4E3C /* gps_track_collection_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A21D1017C200AE4E3C /* gps_track_collection_test.cpp */; }; + 679624B01D1017DB00AE4E3C /* gps_track_storage_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A31D1017C200AE4E3C /* gps_track_storage_test.cpp */; }; + 679624B11D1017DB00AE4E3C /* gps_track_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A41D1017C200AE4E3C /* gps_track_test.cpp */; }; + 679624B21D1017DB00AE4E3C /* mwm_set_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624A51D1017C200AE4E3C /* mwm_set_test.cpp */; }; 67F183751BD5041700AB1840 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 67F183741BD5041700AB1840 /* libz.tbd */; }; 67F183761BD5045700AB1840 /* bookmarks_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 674A29CB1B26FCFE001A525C /* bookmarks_test.cpp */; }; 67F183771BD5045700AB1840 /* ge0_parser_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 674A29CC1B26FCFE001A525C /* ge0_parser_tests.cpp */; }; @@ -183,6 +189,12 @@ 678850871D071E34004201E1 /* libpugixml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpugixml.a; path = "../../../omim-xcode-build/Debug/libpugixml.a"; sourceTree = ""; }; 678850881D071E34004201E1 /* libsdf_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdf_image.a; path = "../../../omim-xcode-build/Debug/libsdf_image.a"; sourceTree = ""; }; 678850891D071E34004201E1 /* libstb_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libstb_image.a; path = "../../../omim-xcode-build/Debug/libstb_image.a"; sourceTree = ""; }; + 679624A01D1017C200AE4E3C /* address_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = address_tests.cpp; sourceTree = ""; }; + 679624A11D1017C200AE4E3C /* feature_getters_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_getters_tests.cpp; sourceTree = ""; }; + 679624A21D1017C200AE4E3C /* gps_track_collection_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gps_track_collection_test.cpp; sourceTree = ""; }; + 679624A31D1017C200AE4E3C /* gps_track_storage_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gps_track_storage_test.cpp; sourceTree = ""; }; + 679624A41D1017C200AE4E3C /* gps_track_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gps_track_test.cpp; sourceTree = ""; }; + 679624A51D1017C200AE4E3C /* mwm_set_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mwm_set_test.cpp; sourceTree = ""; }; 67F183741BD5041700AB1840 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 67F1837D1BD5049500AB1840 /* libagg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libagg.a; path = "../../../omim-xcode-build/Debug/libagg.a"; sourceTree = ""; }; 67F1837E1BD5049500AB1840 /* liblodepng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblodepng.a; path = "../../../omim-xcode-build/Debug/liblodepng.a"; sourceTree = ""; }; @@ -260,6 +272,12 @@ 674A29CA1B26FCC0001A525C /* map_tests */ = { isa = PBXGroup; children = ( + 679624A01D1017C200AE4E3C /* address_tests.cpp */, + 679624A11D1017C200AE4E3C /* feature_getters_tests.cpp */, + 679624A21D1017C200AE4E3C /* gps_track_collection_test.cpp */, + 679624A31D1017C200AE4E3C /* gps_track_storage_test.cpp */, + 679624A41D1017C200AE4E3C /* gps_track_test.cpp */, + 679624A51D1017C200AE4E3C /* mwm_set_test.cpp */, 674A29EE1B26FD5F001A525C /* testingmain.cpp */, 674A29CB1B26FCFE001A525C /* bookmarks_test.cpp */, 674A29CC1B26FCFE001A525C /* ge0_parser_tests.cpp */, @@ -496,12 +514,18 @@ files = ( 67F183761BD5045700AB1840 /* bookmarks_test.cpp in Sources */, 67F183771BD5045700AB1840 /* ge0_parser_tests.cpp in Sources */, + 679624B21D1017DB00AE4E3C /* mwm_set_test.cpp in Sources */, 67F183781BD5045700AB1840 /* geourl_test.cpp in Sources */, + 679624AD1D1017DB00AE4E3C /* address_tests.cpp in Sources */, 67F183791BD5045700AB1840 /* kmz_unarchive_test.cpp in Sources */, + 679624AE1D1017DB00AE4E3C /* feature_getters_tests.cpp in Sources */, 67F1837A1BD5045700AB1840 /* mwm_url_tests.cpp in Sources */, + 679624AF1D1017DB00AE4E3C /* gps_track_collection_test.cpp in Sources */, + 679624B01D1017DB00AE4E3C /* gps_track_storage_test.cpp in Sources */, 678850811D06F588004201E1 /* booking_tests.cpp in Sources */, 674A29F01B26FD6F001A525C /* testingmain.cpp in Sources */, 674A2A361B27011A001A525C /* working_time_tests.cpp in Sources */, + 679624B11D1017DB00AE4E3C /* gps_track_test.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/xcode/search/search.xcodeproj/project.pbxproj b/xcode/search/search.xcodeproj/project.pbxproj index 15b1015832..d3a0e8b637 100644 --- a/xcode/search/search.xcodeproj/project.pbxproj +++ b/xcode/search/search.xcodeproj/project.pbxproj @@ -77,6 +77,12 @@ 675346F01A40560D00A0A8C3 /* params.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346D21A40560D00A0A8C3 /* params.hpp */; }; 675346F11A40560D00A0A8C3 /* result.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675346D31A40560D00A0A8C3 /* result.cpp */; }; 675346F21A40560D00A0A8C3 /* result.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346D41A40560D00A0A8C3 /* result.hpp */; }; + 679624961D10137D00AE4E3C /* test_results_matching.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 679624901D10137D00AE4E3C /* test_results_matching.hpp */; }; + 679624981D10137D00AE4E3C /* test_search_engine.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 679624921D10137D00AE4E3C /* test_search_engine.hpp */; }; + 6796249A1D10137D00AE4E3C /* test_search_request.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 679624941D10137D00AE4E3C /* test_search_request.hpp */; }; + 6796249B1D10138400AE4E3C /* test_results_matching.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6796248F1D10137D00AE4E3C /* test_results_matching.cpp */; }; + 6796249C1D10138400AE4E3C /* test_search_engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624911D10137D00AE4E3C /* test_search_engine.cpp */; }; + 6796249D1D10138400AE4E3C /* test_search_request.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 679624931D10137D00AE4E3C /* test_search_request.cpp */; }; A1347D511B8758C3009050FF /* query_saver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1347D4F1B8758C3009050FF /* query_saver.cpp */; }; A1347D521B8758C3009050FF /* query_saver.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A1347D501B8758C3009050FF /* query_saver.hpp */; }; A1347D551B8758E9009050FF /* query_saver_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1347D541B8758E9009050FF /* query_saver_tests.cpp */; }; @@ -215,6 +221,13 @@ 675346D21A40560D00A0A8C3 /* params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = params.hpp; sourceTree = ""; }; 675346D31A40560D00A0A8C3 /* result.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = result.cpp; sourceTree = ""; }; 675346D41A40560D00A0A8C3 /* result.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = result.hpp; sourceTree = ""; }; + 679624831D10133300AE4E3C /* libsearch_tests_support.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libsearch_tests_support.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 6796248F1D10137D00AE4E3C /* test_results_matching.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_results_matching.cpp; sourceTree = ""; }; + 679624901D10137D00AE4E3C /* test_results_matching.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = test_results_matching.hpp; sourceTree = ""; }; + 679624911D10137D00AE4E3C /* test_search_engine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_search_engine.cpp; sourceTree = ""; }; + 679624921D10137D00AE4E3C /* test_search_engine.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = test_search_engine.hpp; sourceTree = ""; }; + 679624931D10137D00AE4E3C /* test_search_request.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_search_request.cpp; sourceTree = ""; }; + 679624941D10137D00AE4E3C /* test_search_request.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = test_search_request.hpp; sourceTree = ""; }; A1347D4F1B8758C3009050FF /* query_saver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = query_saver.cpp; sourceTree = ""; }; A1347D501B8758C3009050FF /* query_saver.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = query_saver.hpp; sourceTree = ""; }; A1347D541B8758E9009050FF /* query_saver_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = query_saver_tests.cpp; sourceTree = ""; }; @@ -293,6 +306,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 679624801D10133300AE4E3C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -339,6 +359,7 @@ 670D05A31B0DF3C30013A7AC /* defaults.xcconfig */, 675346B21A4055CF00A0A8C3 /* search */, 671C620D1AE9225100076BD0 /* search_tests */, + 6796248E1D10134200AE4E3C /* search_tests_support */, 675346B11A4055CF00A0A8C3 /* Products */, ); sourceTree = ""; @@ -348,6 +369,7 @@ children = ( 675346B01A4055CF00A0A8C3 /* libsearch.a */, 671C620C1AE9225100076BD0 /* search_tests */, + 679624831D10133300AE4E3C /* libsearch_tests_support.a */, ); name = Products; sourceTree = ""; @@ -459,6 +481,20 @@ path = ../../search; sourceTree = ""; }; + 6796248E1D10134200AE4E3C /* search_tests_support */ = { + isa = PBXGroup; + children = ( + 6796248F1D10137D00AE4E3C /* test_results_matching.cpp */, + 679624901D10137D00AE4E3C /* test_results_matching.hpp */, + 679624911D10137D00AE4E3C /* test_search_engine.cpp */, + 679624921D10137D00AE4E3C /* test_search_engine.hpp */, + 679624931D10137D00AE4E3C /* test_search_request.cpp */, + 679624941D10137D00AE4E3C /* test_search_request.hpp */, + ); + name = search_tests_support; + path = ../../search/search_tests_support; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -480,6 +516,7 @@ 675346E11A40560D00A0A8C3 /* geometry_utils.hpp in Headers */, 675346E31A40560D00A0A8C3 /* house_detector.hpp in Headers */, F652D9071CFDE21900FC29A0 /* ranking_info.hpp in Headers */, + 679624981D10137D00AE4E3C /* test_search_engine.hpp in Headers */, F652D8BE1CFDE1E800FC29A0 /* common.hpp in Headers */, F652D8E91CFDE21900FC29A0 /* features_filter.hpp in Headers */, F652D90F1CFDE21900FC29A0 /* token_slice.hpp in Headers */, @@ -510,9 +547,11 @@ F652D90D1CFDE21900FC29A0 /* string_intersection.hpp in Headers */, F652D8C01CFDE1E800FC29A0 /* engine.hpp in Headers */, 675346DF1A40560D00A0A8C3 /* feature_offset_match.hpp in Headers */, + 6796249A1D10137D00AE4E3C /* test_search_request.hpp in Headers */, 347F331A1C4540A8009758CC /* dummy_rank_table.hpp in Headers */, 3441CE511CFC1D7000CF30D4 /* processor.hpp in Headers */, 3441CE531CFC1D7000CF30D4 /* query_params.hpp in Headers */, + 679624961D10137D00AE4E3C /* test_results_matching.hpp in Headers */, 675346DC1A40560D00A0A8C3 /* algos.hpp in Headers */, F652D8FD1CFDE21900FC29A0 /* model.hpp in Headers */, F652D8FF1CFDE21900FC29A0 /* mwm_context.hpp in Headers */, @@ -524,6 +563,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 679624811D10133300AE4E3C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -561,6 +607,23 @@ productReference = 675346B01A4055CF00A0A8C3 /* libsearch.a */; productType = "com.apple.product-type.library.static"; }; + 679624821D10133300AE4E3C /* search_tests_support */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6796248D1D10133300AE4E3C /* Build configuration list for PBXNativeTarget "search_tests_support" */; + buildPhases = ( + 6796247F1D10133300AE4E3C /* Sources */, + 679624801D10133300AE4E3C /* Frameworks */, + 679624811D10133300AE4E3C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = search_tests_support; + productName = search_tests_support; + productReference = 679624831D10133300AE4E3C /* libsearch_tests_support.a */; + productType = "com.apple.product-type.library.static"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -576,6 +639,9 @@ 675346AF1A4055CF00A0A8C3 = { CreatedOnToolsVersion = 6.1; }; + 679624821D10133300AE4E3C = { + CreatedOnToolsVersion = 7.3.1; + }; }; }; buildConfigurationList = 675346AB1A4055CF00A0A8C3 /* Build configuration list for PBXProject "search" */; @@ -592,6 +658,7 @@ targets = ( 675346AF1A4055CF00A0A8C3 /* search */, 671C620B1AE9225100076BD0 /* search_tests */, + 679624821D10133300AE4E3C /* search_tests_support */, ); }; /* End PBXProject section */ @@ -665,6 +732,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6796247F1D10133300AE4E3C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6796249B1D10138400AE4E3C /* test_results_matching.cpp in Sources */, + 6796249C1D10138400AE4E3C /* test_search_engine.cpp in Sources */, + 6796249D1D10138400AE4E3C /* test_search_request.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -812,6 +889,37 @@ }; name = Release; }; + 6796248B1D10133300AE4E3C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CODE_SIGN_IDENTITY = "-"; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_CPP_EXCEPTIONS = YES; + GCC_ENABLE_CPP_RTTI = YES; + GCC_NO_COMMON_BLOCKS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 6796248C1D10133300AE4E3C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_CPP_EXCEPTIONS = YES; + GCC_ENABLE_CPP_RTTI = YES; + GCC_NO_COMMON_BLOCKS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -842,6 +950,14 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 6796248D1D10133300AE4E3C /* Build configuration list for PBXNativeTarget "search_tests_support" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6796248B1D10133300AE4E3C /* Debug */, + 6796248C1D10133300AE4E3C /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; /* End XCConfigurationList section */ }; rootObject = 675346A81A4055CF00A0A8C3 /* Project object */;