From 3d7ece927d96a86d285c939df133fda961532d02 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sun, 18 Aug 2019 23:07:18 +0300 Subject: [PATCH] Temp --- .buckconfig | 25 +- .gitignore | 1 + App/App.xcodeproj/project.pbxproj | 672 ++++++++++++++++++ .../xcshareddata/xcschemes/App.xcscheme | 1 + App/App.xcworkspace/buck-project.meta.json | 1 + App/App.xcworkspace/contents.xcworkspacedata | 1 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/App.xcscheme | 1 + App/BUCK | 91 +++ BUCK => App/BUCK_old | 54 +- App/Info.plist | 52 ++ App/Sources/Empty.swift | 1 + App/Sources/Temp.swift | 11 + App/Sources/TempMain.m | 6 + App/SupportFiles/Empty.swift | 1 + Config/BUCK | 10 + Config/BuckSupportFiles/TestInfo.plist | 22 + Config/buck_rule_macros.bzl | 232 ++++++ Config/configs.bzl | 104 +++ Config/utils.bzl | 35 + Makefile | 35 + clean.sh | 4 + log.txt | 0 submodules/Emoji/BUCK | 14 + submodules/Emoji/Emoji.d | 4 + submodules/Emoji/Emoji.o | Bin 0 -> 66784 bytes .../Emoji/Emoji.xcodeproj/project.pbxproj | 327 +++++++++ .../xcshareddata/xcschemes/Emoji.xcscheme | 1 + submodules/MtProtoKit/BUCK | 178 +++-- submodules/MtProtoKit/Info.plist | 26 + .../MtProtoKit/MTDiscoverConnectionSignals.m | 39 +- .../MtProtoKit/MTProtoKit/MTTcpConnection.m | 13 +- submodules/MtProtoKit/MTProxyConnectivity.m | 37 +- submodules/MtProtoKit/MTSignal.m | 12 +- .../project.pbxproj | 4 +- .../AFNetworking/AFURLConnectionOperation.m | 2 - tools/buck_defs.bzl | 18 - tools/defs.bzl | 13 + tools/targets.bzl | 0 tools/{buck_utils.bzl => utils.bzl} | 26 +- 41 files changed, 1871 insertions(+), 219 deletions(-) create mode 100644 App/App.xcodeproj/project.pbxproj create mode 100644 App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme create mode 100644 App/App.xcworkspace/buck-project.meta.json create mode 100644 App/App.xcworkspace/contents.xcworkspacedata create mode 100644 App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme create mode 100644 App/BUCK rename BUCK => App/BUCK_old (80%) create mode 100644 App/Info.plist create mode 100644 App/Sources/Empty.swift create mode 100644 App/Sources/Temp.swift create mode 100644 App/Sources/TempMain.m create mode 100644 App/SupportFiles/Empty.swift create mode 100644 Config/BUCK create mode 100644 Config/BuckSupportFiles/TestInfo.plist create mode 100644 Config/buck_rule_macros.bzl create mode 100644 Config/configs.bzl create mode 100644 Config/utils.bzl create mode 100644 Makefile create mode 100644 clean.sh create mode 100644 log.txt create mode 100644 submodules/Emoji/BUCK create mode 100644 submodules/Emoji/Emoji.d create mode 100644 submodules/Emoji/Emoji.o create mode 100644 submodules/Emoji/Emoji.xcodeproj/project.pbxproj create mode 100644 submodules/Emoji/Emoji.xcodeproj/xcshareddata/xcschemes/Emoji.xcscheme create mode 100644 submodules/MtProtoKit/Info.plist delete mode 100644 tools/buck_defs.bzl create mode 100644 tools/defs.bzl create mode 100644 tools/targets.bzl rename tools/{buck_utils.bzl => utils.bzl} (75%) diff --git a/.buckconfig b/.buckconfig index 0323a3127b..5c472b0f9e 100644 --- a/.buckconfig +++ b/.buckconfig @@ -1,14 +1,14 @@ [cxx] - default_platform = iphoneos-armv7 - cflags = -fmodules -fobjc-arc -D BUCK -D DEBUG -w -fno-optimize-sibling-calls $(config custom.other_cflags) - cxxflags = -fobjc-arc -std=c++14 -D BUCK -D DEBUG -w -fno-optimize-sibling-calls $(config custom.other_cxxflags) + default_platform = iphonesimulator-x86_64 + cflags = -g -fmodules -fobjc-arc -D BUCK -w $(config custom.other_cflags) + cxxflags = -fobjc-arc -std=c++14 -D DEBUG -g $(config custom.other_cxxflags) combined_preprocess_and_compile = true pch_enabled = false - ldflags = -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -dead_strip -Xlinker -no_deduplicate $(config custom.other_cxxflags) + ldflags = -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime $(config custom.other_cxxflags) [swift] version = 5 - compiler_flags = -DBUCK -enable-testing -O -whole-module-optimization -suppress-warnings -Xcc -fno-optimize-sibling-calls $(config custom.other_swift_compiler_flags) + compiler_flags = -DBUCK $(config custom.optimization) $(config custom.config_swift_compiler_flags) $(config custom.other_swift_compiler_flags) use_filelist = true [apple] @@ -19,8 +19,7 @@ iphoneos_target_sdk_version = 8.0 provisioning_profile_read_command = security cms -Di xctool_default_destination_specifier = platform=iOS Simulator,OS=latest - ;provisioning_profile_search_path = ./ - ;xctool_path = tools/xctool/bin/xctool + xctool_path = tools/xctool/bin/xctool [parser] polyglot_parsing_enabled = true @@ -35,4 +34,14 @@ .git, \ [build] - thread_core_ratio = 2.0 + threads = 12 + +[custom] + config = debug + optimization = -Onone + config_swift_compiler_flags = -DDEBUG -enable-testing -g + code_coverage_cflags = -fprofile-instr-generate -fcoverage-mapping + code_coverage_cxxflags = -fprofile-instr-generate -fcoverage-mapping + code_coverage_ldflags = -fprofile-instr-generate + code_coverage_swift_compiler_flags = -profile-generate -profile-coverage-mapping + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 51c2c450ed..2294d1d1bc 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ AppBinary.xcworkspace/* Project.xcodeproj/* Watch/Watch.xcodeproj/* AppBundle.xcworkspace/* +tools/buck diff --git a/App/App.xcodeproj/project.pbxproj b/App/App.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..d63822a561 --- /dev/null +++ b/App/App.xcodeproj/project.pbxproj @@ -0,0 +1,672 @@ + + + + + archiveVersion + 1 + classes + + + objectVersion + 46 + objects + + 1DD70E29001F47FB00000000 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E296ABF6A1200000000 + + isa + PBXFileReference + name + Empty.swift + path + SupportFiles/Empty.swift + sourceTree + SOURCE_ROOT + + 1DD70E2906C06BEE00000000 + + isa + PBXFileReference + name + Info.plist + path + Info.plist + sourceTree + ]]> + explicitFileType + text.plist + + B401C979EAB5339800000000 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E296ABF6A1200000000 + 1DD70E2906C06BEE00000000 + + + B401C9790001020100000000 + + isa + PBXGroup + name + App + sourceTree + ]]> + children + + 1DD70E29001F47FB00000000 + B401C979EAB5339800000000 + + + 1DD70E29001F47FB00000001 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E295BBE1B9900000000 + + isa + PBXFileReference + name + Temp.swift + path + Sources/Temp.swift + sourceTree + SOURCE_ROOT + + 1DD70E298FA05E8C00000000 + + isa + PBXFileReference + name + TempMain.m + path + Sources/TempMain.m + sourceTree + SOURCE_ROOT + lastKnownFileType + sourcecode.c.objc + + B401C979EAB5339800000001 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E295BBE1B9900000000 + 1DD70E298FA05E8C00000000 + + + B401C979C43AA77A00000000 + + isa + PBXGroup + name + AppLibrary + sourceTree + ]]> + children + + 1DD70E29001F47FB00000001 + B401C979EAB5339800000001 + + + 1DD70E29898E549400000000 + + isa + PBXFileReference + name + App-Debug.xcconfig + path + ../buck-out/gen/App/App-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29446E16FE00000000 + + isa + PBXFileReference + name + App-Profile.xcconfig + path + ../buck-out/gen/App/App-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29B804C26000000000 + + isa + PBXFileReference + name + App-Release.xcconfig + path + ../buck-out/gen/App/App-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E294E27EDFB00000000 + + isa + PBXFileReference + name + AppLibrary-Debug.xcconfig + path + ../buck-out/gen/App/AppLibrary-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E294906F2A500000000 + + isa + PBXFileReference + name + AppLibrary-Profile.xcconfig + path + ../buck-out/gen/App/AppLibrary-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29BC9D9E0700000000 + + isa + PBXFileReference + name + AppLibrary-Release.xcconfig + path + ../buck-out/gen/App/AppLibrary-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + B401C9792F7F325000000000 + + isa + PBXGroup + name + Buck (Do Not Modify) + sourceTree + ]]> + children + + 1DD70E29898E549400000000 + 1DD70E29446E16FE00000000 + 1DD70E29B804C26000000000 + 1DD70E294E27EDFB00000000 + 1DD70E294906F2A500000000 + 1DD70E29BC9D9E0700000000 + + + B401C979B781F65D00000000 + + isa + PBXGroup + name + Configurations + sourceTree + ]]> + children + + B401C9792F7F325000000000 + + + 1DD70E297ADFB9F200000000 + + isa + PBXFileReference + name + libAppLibrary.a + path + libAppLibrary.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29A59C927400000000 + + isa + PBXFileReference + name + libEmoji.a + path + libEmoji.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29C4DF1A6D00000000 + + isa + PBXFileReference + name + libMtProtoKit.a + path + libMtProtoKit.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C97968022A5500000000 + + isa + PBXGroup + name + Frameworks + sourceTree + ]]> + children + + 1DD70E297ADFB9F200000000 + 1DD70E29A59C927400000000 + 1DD70E29C4DF1A6D00000000 + + + 1DD70E2933D47CB400000000 + + isa + PBXFileReference + name + App.app + path + App.app + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + wrapper.application + + 1DD70E297ADFB9F200000001 + + isa + PBXFileReference + name + libAppLibrary.a + path + libAppLibrary.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C979C806358400000000 + + isa + PBXGroup + name + Products + sourceTree + ]]> + children + + 1DD70E2933D47CB400000000 + 1DD70E297ADFB9F200000001 + + + B401C979EFB6AC4600000000 + + isa + PBXGroup + name + mainGroup + sourceTree + ]]> + children + + B401C9790001020100000000 + B401C979C43AA77A00000000 + B401C979B781F65D00000000 + B401C97968022A5500000000 + B401C979C806358400000000 + + + E7A30F046ABF6A1200000000 + + isa + PBXBuildFile + fileRef + 1DD70E296ABF6A1200000000 + + 1870857F0000000000000000 + + isa + PBXSourcesBuildPhase + files + + E7A30F046ABF6A1200000000 + + + E7A30F047ADFB9F200000000 + + isa + PBXBuildFile + fileRef + 1DD70E297ADFB9F200000000 + + E7A30F04A59C927400000000 + + isa + PBXBuildFile + fileRef + 1DD70E29A59C927400000000 + + E7A30F04C4DF1A6D00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29C4DF1A6D00000000 + + 4F426D880000000000000000 + + isa + PBXFrameworksBuildPhase + files + + E7A30F047ADFB9F200000000 + E7A30F04A59C927400000000 + E7A30F04C4DF1A6D00000000 + + + 4952437303EDA63300000000 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E29898E549400000000 + + 4952437350C7218900000000 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E29446E16FE00000000 + + 49524373A439BFE700000000 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E29B804C26000000000 + + 218C37090000000000000000 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000000 + 4952437350C7218900000000 + 49524373A439BFE700000000 + + defaultConfigurationIsVisible + + + E66DC04E0001020100000000 + + isa + PBXNativeTarget + name + App + productName + App + productReference + 1DD70E2933D47CB400000000 + productType + com.apple.product-type.application + dependencies + + + buildPhases + + 1870857F0000000000000000 + 4F426D880000000000000000 + + buildConfigurationList + 218C37090000000000000000 + + E7A30F045BBE1B9900000000 + + isa + PBXBuildFile + fileRef + 1DD70E295BBE1B9900000000 + + E7A30F048FA05E8C00000000 + + isa + PBXBuildFile + fileRef + 1DD70E298FA05E8C00000000 + + 1870857F0000000000000001 + + isa + PBXSourcesBuildPhase + files + + E7A30F045BBE1B9900000000 + E7A30F048FA05E8C00000000 + + + E7A30F04A59C927400000001 + + isa + PBXBuildFile + fileRef + 1DD70E29A59C927400000000 + + FAF5FAC90000000000000000 + + isa + PBXCopyFilesBuildPhase + files + + E7A30F04A59C927400000001 + + name + Fake Swift Dependencies (Copy Files Phase) + runOnlyForDeploymentPostprocessing + 1 + dstSubfolderSpec + 16 + dstPath + + + 4952437303EDA63300000001 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E294E27EDFB00000000 + + 4952437350C7218900000001 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E294906F2A500000000 + + 49524373A439BFE700000001 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E29BC9D9E0700000000 + + 218C37090000000000000001 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000001 + 4952437350C7218900000001 + 49524373A439BFE700000001 + + defaultConfigurationIsVisible + + + E66DC04EC43AA77A00000000 + + isa + PBXNativeTarget + name + AppLibrary + productName + AppLibrary + productReference + 1DD70E297ADFB9F200000001 + productType + com.apple.product-type.library.static + dependencies + + + buildPhases + + 1870857F0000000000000001 + FAF5FAC90000000000000000 + + buildConfigurationList + 218C37090000000000000001 + + 4952437303EDA63300000002 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + + 4952437350C7218900000002 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + + 49524373A439BFE700000002 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + + 218C37090000000000000002 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000002 + 4952437350C7218900000002 + 49524373A439BFE700000002 + + defaultConfigurationIsVisible + + + 96C847930001020100000000 + + isa + PBXProject + mainGroup + B401C979EFB6AC4600000000 + targets + + E66DC04E0001020100000000 + E66DC04EC43AA77A00000000 + + buildConfigurationList + 218C37090000000000000002 + compatibilityVersion + Xcode 3.2 + attributes + + LastUpgradeCheck + 9999 + + + + rootObject + 96C847930001020100000000 + + \ No newline at end of file diff --git a/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme b/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme new file mode 100644 index 0000000000..6ca885fee6 --- /dev/null +++ b/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/App/App.xcworkspace/buck-project.meta.json b/App/App.xcworkspace/buck-project.meta.json new file mode 100644 index 0000000000..d321a6041c --- /dev/null +++ b/App/App.xcworkspace/buck-project.meta.json @@ -0,0 +1 @@ +{"required-targets":["//submodules/MtProtoKit:openssl_libs"],"xcconfig-paths":["buck-out/gen/App/App-Debug.xcconfig","buck-out/gen/App/App-Profile.xcconfig","buck-out/gen/App/App-Release.xcconfig","buck-out/gen/App/AppLibrary-Debug.xcconfig","buck-out/gen/App/AppLibrary-Profile.xcconfig","buck-out/gen/App/AppLibrary-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Release.xcconfig"],"copy-in-xcode":[]} \ No newline at end of file diff --git a/App/App.xcworkspace/contents.xcworkspacedata b/App/App.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..9d9843e511 --- /dev/null +++ b/App/App.xcworkspace/contents.xcworkspacedata @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000..115f338bb5 --- /dev/null +++ b/App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + \ No newline at end of file diff --git a/App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme b/App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme new file mode 100644 index 0000000000..ca1f27f58a --- /dev/null +++ b/App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/App/BUCK b/App/BUCK new file mode 100644 index 0000000000..a1929143a4 --- /dev/null +++ b/App/BUCK @@ -0,0 +1,91 @@ +load("//Config:configs.bzl", "app_binary_configs", "library_configs", "pretty", "info_plist_substitutions", "bundle_identifier", "DEVELOPMENT_LANGUAGE") +load("//Config:buck_rule_macros.bzl", "apple_lib", "framework_binary_dependencies", "framework_bundle_dependencies") + +'''apple_asset_catalog( + name = "ExampleAppAssets", + visibility = ["//App:"], + app_icon = "AppIcon", + dirs = ["Assets.xcassets"], +) + +app_tests = [ + ":UnitTests", + ":UnitTestsWithHostApp", +] + +ui_tests = [ + ":XCUITests", +]''' + +static_library_dependencies = [ +] +framework_dependencies = [ + '//submodules/MtProtoKit:MtProtoKit', + '//submodules/Emoji:Emoji', +] + +# Build Phase scripts need to be added as dependencies. +# These only get executed when building with Xcode, not Buck. +build_phase_scripts = [ +] + +apple_library( + name = "AppLibrary", + visibility = [ + "//App:", + "//App/...", + ], + configs = library_configs(), + swift_version = native.read_config('swift', 'version'), + srcs = [ + "Sources/TempMain.m", + "Sources/Temp.swift" + ], + deps = [ + ] + + static_library_dependencies + + framework_binary_dependencies(framework_dependencies), +) + +apple_binary( + name = "AppBinary", + visibility = [ + "//App:", + "//App/...", + ], + configs = app_binary_configs("App"), + swift_version = native.read_config('swift', 'version'), + srcs = [ + "SupportFiles/Empty.swift", + ], + deps = [ + ":AppLibrary", + ], +) + +xcode_workspace_config( + name = "workspace", + workspace_name = "App", + src_target = ":App", +) + +apple_bundle( + name = "App", + visibility = [ + "//App:", + ], + extension = "app", + binary = ":AppBinary", + product_name = "App", + info_plist = "Info.plist", + info_plist_substitutions = info_plist_substitutions("App"), + deps = [ + ] + + framework_bundle_dependencies(framework_dependencies), +) + +apple_package( + name = "AppPackage", + bundle = ":App", +) + diff --git a/BUCK b/App/BUCK_old similarity index 80% rename from BUCK rename to App/BUCK_old index b1443dbcae..e654b0b13c 100644 --- a/BUCK +++ b/App/BUCK_old @@ -1,4 +1,54 @@ -load('//tools:buck_utils.bzl', 'config_with_updated_linker_flags', 'configs_with_config', 'combined_config') +load('//tools:targets.bzl', 'app_target') + +BUILD_NUMBER = '2000' +info_plist_substitutions = { + 'DEVELOPMENT_LANGUAGE': 'en-us', + 'APP_NAME': 'Telegram', + 'EXECUTABLE_NAME': 'Telegram', + 'PRODUCT_BUNDLE_IDENTIFIER': 'org.telegram.Telegram-iOS', + 'PRODUCT_NAME': 'Telegram', + 'APP_SPECIFIC_URL_SCHEME': 'tgapp', + 'VERSION': '5.11', + 'BUILD_NUMBER': BUILD_NUMBER, +} + +app_target( + name = 'App', + srcs = ['TempMain.m', 'Temp.swift'], + deps = [ + '//submodules/MtProtoKit:MtProtoKit', + #'//submodules/Emoji:Emoji', + #'//submodules/MtProtoKit:MtProtoKitFramework', + #'//submodules/Emoji:EmojiFramework', + ], +) + +apple_bundle( + name = 'AppBundle', + visibility = [ + 'PUBLIC', + ], + extension = 'app', + binary = ':AppBinary', + product_name = 'Telegram', + info_plist = 'Info.plist', + #info_plist_substitutions = info_plist_substitutions, + deps = [ + ] +) + +apple_package( + name = 'AppPackage', + bundle = ':AppBundle', +) + +xcode_workspace_config( + name = "workspace", + workspace_name = "App", + src_target = ":AppBundle", +) + +'''load('//tools:buck_utils.bzl', 'config_with_updated_linker_flags', 'configs_with_config', 'combined_config') load('//tools:buck_defs.bzl', 'SHARED_CONFIGS') # Adding `-all_load` to our binaries works around https://bugs.swift.org/browse/SR-6004. See the @@ -180,3 +230,5 @@ apple_package( name = 'AppPackage', bundle = ':AppBundle', ) +''' + diff --git a/App/Info.plist b/App/Info.plist new file mode 100644 index 0000000000..64ef73c0b6 --- /dev/null +++ b/App/Info.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIconFiles + + Icon.png + Icon@2x.png + Icon-72.png + Icon-72@2x.png + Icon-Small-50.png + Icon-Small-50@2x.png + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/App/Sources/Empty.swift b/App/Sources/Empty.swift new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/App/Sources/Empty.swift @@ -0,0 +1 @@ + diff --git a/App/Sources/Temp.swift b/App/Sources/Temp.swift new file mode 100644 index 0000000000..8d02a25460 --- /dev/null +++ b/App/Sources/Temp.swift @@ -0,0 +1,11 @@ +import Foundation +import Emoji + +@objc(AppDelegate) +public final class AppDelegate: NSObject { + override init() { + super.init() + + print("OK".isSingleEmoji) + } +} diff --git a/App/Sources/TempMain.m b/App/Sources/TempMain.m new file mode 100644 index 0000000000..1a5dcd2485 --- /dev/null +++ b/App/Sources/TempMain.m @@ -0,0 +1,6 @@ +//#import + +int main(int argc, const char **argv) { + //MTProto *mtProto = [[MTProto alloc] init]; + return 0; +} diff --git a/App/SupportFiles/Empty.swift b/App/SupportFiles/Empty.swift new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/App/SupportFiles/Empty.swift @@ -0,0 +1 @@ + diff --git a/Config/BUCK b/Config/BUCK new file mode 100644 index 0000000000..babd7d22cd --- /dev/null +++ b/Config/BUCK @@ -0,0 +1,10 @@ +# This file can be depended upon for any apple_test_lib rules. +genrule( + name = "test_info_plist", + visibility = ["PUBLIC"], + srcs = [ + "BuckSupportFiles/TestInfo.plist", + ], + out = 'TestInfo.plist', + cmd = 'cp $SRCDIR/BuckSupportFiles/TestInfo.plist $OUT', +) diff --git a/Config/BuckSupportFiles/TestInfo.plist b/Config/BuckSupportFiles/TestInfo.plist new file mode 100644 index 0000000000..6c40a6cd0c --- /dev/null +++ b/Config/BuckSupportFiles/TestInfo.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Config/buck_rule_macros.bzl b/Config/buck_rule_macros.bzl new file mode 100644 index 0000000000..9567d6f76d --- /dev/null +++ b/Config/buck_rule_macros.bzl @@ -0,0 +1,232 @@ +load("//Config:configs.bzl", "library_configs", "framework_library_configs", "info_plist_substitutions") + +def apple_third_party_lib(**kwargs): + apple_lib( + warning_as_error = False, + suppress_warnings = True, + **kwargs + ) + +def apple_lib( + name, + visibility = ["PUBLIC"], + srcs = [], + headers = [], + exported_headers = [], + extra_xcode_files = [], + deps = [], + frameworks = [], + swift_version = None, + modular = True, + compiler_flags = None, + swift_compiler_flags = None, + warning_as_error = False, + suppress_warnings = False, + framework = False): + swift_version = swift_version or native.read_config('swift', 'version') + compiler_flags = compiler_flags or [] + swift_compiler_flags = swift_compiler_flags or [] + + if native.read_config("xcode", "beta") == "True": + warning_as_error = False + + if warning_as_error: + compiler_flags.append("-Werror") + swift_compiler_flags.append("-warnings-as-errors") + elif suppress_warnings: + compiler_flags.append("-w") + swift_compiler_flags.append("-suppress-warnings") + + if framework: + if native.read_config("custom", "mode") == "project": + native.apple_library( + name = name, + srcs = srcs, + header_namespace = name, + headers = headers, + exported_headers = exported_headers, + deps = deps, + extra_xcode_files = extra_xcode_files, + frameworks = frameworks, + visibility = visibility, + swift_version = swift_version, + configs = framework_library_configs(name), + modular = modular, + compiler_flags = compiler_flags, + swift_compiler_flags = swift_compiler_flags, + preferred_linkage = "shared", + link_style = "static", + linker_flags = ["-Wl,-install_name,@rpath/lib%s.dylib" % (name)], + ) + '''native.apple_bundle( + name = name + "Framework", + visibility = visibility, + binary = ":" + name + "#shared", + extension = "framework", + info_plist = "Info.plist", + info_plist_substitutions = info_plist_substitutions(name), + )''' + else: + native.apple_library( + name = name, + srcs = srcs, + header_namespace = name, + headers = headers, + exported_headers = exported_headers, + deps = deps, + extra_xcode_files = extra_xcode_files, + frameworks = frameworks, + visibility = visibility, + swift_version = swift_version, + configs = framework_library_configs(name), + modular = modular, + compiler_flags = compiler_flags, + swift_compiler_flags = swift_compiler_flags, + #preferred_linkage = "shared", + #link_style = "static", + #linker_flags = ["-Wl,-install_name,@rpath/%sFramework.framework/%sFramework" % (name, name)], + ) + native.apple_bundle( + name = name + "Framework", + visibility = visibility, + binary = ":" + name + "#shared", + extension = "framework", + info_plist = "Info.plist", + info_plist_substitutions = info_plist_substitutions(name), + ) + else: + native.apple_library( + name = name, + srcs = srcs, + headers = headers, + exported_headers = exported_headers, + deps = deps, + visibility = visibility, + swift_version = swift_version, + configs = library_configs(), + modular = modular, + compiler_flags = compiler_flags, + swift_compiler_flags = swift_compiler_flags, + ) + +def static_library( + name, + visibility = ["PUBLIC"], + has_cpp = False, + srcs = [], + headers = [], + exported_headers = [], + extra_xcode_files = [], + deps = [], + frameworks = [], + info_plist = None, + info_plist_substitutions = {}, + modular = True, + compiler_flags = None, + swift_compiler_flags = None, + warning_as_error = False, + suppress_warnings = True): + lib = apple_cxx_lib if has_cpp else apple_lib + lib( + name = name, + srcs = srcs, + exported_headers = exported_headers, + headers = headers, + modular = modular, + compiler_flags = compiler_flags, + swift_compiler_flags = swift_compiler_flags, + extra_xcode_files = extra_xcode_files, + deps = deps, + frameworks = frameworks, + warning_as_error = warning_as_error, + suppress_warnings = suppress_warnings + ) + +def framework( + name, + visibility = ["PUBLIC"], + has_cpp = False, + srcs = [], + headers = [], + exported_headers = [], + extra_xcode_files = [], + deps = [], + frameworks = [], + info_plist = None, + info_plist_substitutions = {}, + modular = True, + compiler_flags = None, + swift_compiler_flags = None, + warning_as_error = False, + suppress_warnings = True): + lib = apple_cxx_lib if has_cpp else apple_lib + lib( + name = name, + srcs = srcs, + exported_headers = exported_headers, + headers = headers, + modular = modular, + compiler_flags = compiler_flags, + swift_compiler_flags = swift_compiler_flags, + extra_xcode_files = extra_xcode_files, + deps = deps, + frameworks = frameworks, + warning_as_error = warning_as_error, + suppress_warnings = suppress_warnings, + framework = True + ) + + +CXX_SRC_EXT = ["mm", "cpp", "S"] +def apple_cxx_lib( + srcs = [], + additional_exported_linker_flags = [], + **kwargs): + c_srcs, cxx_srcs = [], [] + + cxx_compile_flags = native.read_config("cxx", "cxxflags").split(" ") + cxx_compile_flags.append("-w") + + for file_ in srcs: + if file_.split(".")[-1] in CXX_SRC_EXT: + cxx_srcs.append((file_, cxx_compile_flags)) + else: + c_srcs.append(file_) + apple_lib( + srcs = c_srcs + cxx_srcs, + exported_linker_flags = [ + "-lc++", + "-lz" + ] + additional_exported_linker_flags, + **kwargs + ) + +def apple_cxx_third_party_library( + **kwargs): + apple_cxx_lib( + warning_as_error = False, + suppress_warnings = True, + **kwargs + ) + +def framework_binary_dependencies(names): + result = [] + if native.read_config("custom", "mode") == "project": + for name in names: + result.append(name + "#shared") + else: + for name in names: + result.append(name + "") + return result + +def framework_bundle_dependencies(names): + result = [] + if native.read_config("custom", "mode") == "project": + for name in names: + #result.append(name + "Framework") + pass + else: + for name in names: + #result.append(name + "Framework") + pass + return result diff --git a/Config/configs.bzl b/Config/configs.bzl new file mode 100644 index 0000000000..db751cd97c --- /dev/null +++ b/Config/configs.bzl @@ -0,0 +1,104 @@ +load("//Config:utils.bzl", "config_with_updated_linker_flags", "configs_with_config") + +DEVELOPMENT_LANGUAGE = "en" + +def merge_dict(a, b): + d = {} + d.update(a) + d.update(b) + return d + +def pretty(dict, current = ""): + current = "\n" + indent = 0 + for key, value in dict.items(): + current = current + str(key) + ": " + if type(value) == type({}): + current = current + "\n" + indent = 1 + for key2, value2 in value.items(): + current = current + "\t" * indent + str(key2) + current = current + ": " + str(value2) + "\n" + else: + current = current + "\t" * (indent + 1) + str(value) + "\n" + + return current + +SHARED_CONFIGS = { + "IPHONEOS_DEPLOYMENT_TARGET": "8.0", + "SDKROOT": "iphoneos", + "GCC_OPTIMIZATION_LEVEL": "0", + "SWIFT_WHOLE_MODULE_OPTIMIZATION": "NO", + "ONLY_ACTIVE_ARCH": "YES", + "LD_RUNPATH_SEARCH_PATHS": "@executable_path/Frameworks", +} + +def optimization_config(): + return {"SWIFT_OPTIMIZATION_LEVEL": native.read_config('custom', 'optimization')} + +# Adding `-all_load` to our binaries works around https://bugs.swift.org/browse/SR-6004. See the +# longer comment in `ViewController.swift` for more details. +ALL_LOAD_LINKER_FLAG = "-all_load" + +def bundle_identifier(name): + return "org.Telegram.%s" % name + +def library_configs(): + lib_specific_config = { + "SWIFT_WHOLE_MODULE_OPTIMIZATION": "NO", + + # Setting SKIP_INSTALL to NO for static library configs would create + # create a generic xcode archive which can not be uploaded the app store + # https://developer.apple.com/library/archive/technotes/tn2215/_index.html + "SKIP_INSTALL": "YES", + } + library_config = merge_dict(SHARED_CONFIGS, lib_specific_config) + library_config = merge_dict(library_config, optimization_config()) + configs = { + "Debug": library_config, + "Profile": library_config, + "Release": lib_specific_config, + } + return configs + +def framework_library_configs(name): + lib_specific_config = { + "SWIFT_WHOLE_MODULE_OPTIMIZATION": "NO", + + # Setting SKIP_INSTALL to NO for static library configs would create + # create a generic xcode archive which can not be uploaded the app store + # https://developer.apple.com/library/archive/technotes/tn2215/_index.html + "SKIP_INSTALL": "YES", + "MACH_O_TYPE": "mh_dylib", + "PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(name), + } + + library_config = merge_dict(SHARED_CONFIGS, lib_specific_config) + library_config = merge_dict(library_config, optimization_config()) + configs = { + "Debug": library_config, + "Profile": library_config, + "Release": lib_specific_config, + } + return configs + +def app_binary_configs(name): + binary_specific_config = { + "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "YES", + "DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE, + "PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(name), + } + binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config) + binary_config = merge_dict(binary_config, optimization_config()) + binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG) + return configs_with_config(binary_config) + +def info_plist_substitutions(name): + substitutions = { + "DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE, + "EXECUTABLE_NAME": name, + "PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(name), + "PRODUCT_NAME": name, + "CURRENT_PROJECT_VERSION": "1", + } + return substitutions diff --git a/Config/utils.bzl b/Config/utils.bzl new file mode 100644 index 0000000000..bb2b6c70f4 --- /dev/null +++ b/Config/utils.bzl @@ -0,0 +1,35 @@ +OTHER_LINKER_FLAGS_KEY = 'OTHER_LDFLAGS' + +def configs_with_config(config): + return { + "Debug": config, + "Profile": config, + "Release": config, + } + +def configs_with_updated_linker_flags(configs, other_linker_flags): + if other_linker_flags == None: + return configs + else: + updated_configs = { } + for build_configuration in configs: + updated_configs[build_configuration] = config_with_updated_linker_flags( + configs[build_configuration], + other_linker_flags) + return updated_configs + +def config_with_updated_linker_flags(config, other_linker_flags, config_key=OTHER_LINKER_FLAGS_KEY): + new_config = { } + config_key_found = False + for key in config: + if key == config_key: + new_config[key] = config[key] + (" %s" % other_linker_flags) + config_key_found = True + else: + new_config[key] = config[key] + + if config_key_found == False: + # If `config` does not currently contain `config_key`, add it. Inherit for good measure. + new_config[config_key] = '$(inherited) ' + other_linker_flags + + return new_config diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..b7bb196560 --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ + +.PHONY : install_buck build targets audit project clean + +# Use local version of Buck +BUCK=tools/buck + +log: + echo "Make" + +install_buck: + curl https://jitpack.io/com/github/airbnb/buck/457ebb73fcd8f86be0112dc74948d022b6969dbd/buck-457ebb73fcd8f86be0112dc74948d022b6969dbd.pex --output tools/buck + chmod u+x tools/buck + +build: + $(BUCK) build //App:AppPackage + +build_verbose: + $(BUCK) build //App:AppPackage --verbose 8 + +targets: + $(BUCK) targets //... + +audit: + $(BUCK) audit rules BUCK > Config/Gen/App-BUCK.py + +kill_xcode: + killall Xcode || true + killall Simulator || true + +clean: kill_xcode + sh clean.sh + +project: clean + $(BUCK) project //App:workspace --config custom.mode=project + open App/App.xcworkspace diff --git a/clean.sh b/clean.sh new file mode 100644 index 0000000000..ff128a66ba --- /dev/null +++ b/clean.sh @@ -0,0 +1,4 @@ +rm -rf App/App.xcodeproj App/App.xcworkspace +rm -rf submodules/MtProtoKit/MtProtoKit.xcodeproj +rm -rf submodules/Emoji/Emoji.xcodeproj +rm -rf buck-out \ No newline at end of file diff --git a/log.txt b/log.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/submodules/Emoji/BUCK b/submodules/Emoji/BUCK new file mode 100644 index 0000000000..06e08005ea --- /dev/null +++ b/submodules/Emoji/BUCK @@ -0,0 +1,14 @@ +load("//Config:buck_rule_macros.bzl", "static_library", "framework") + +framework( + name = "Emoji", + srcs = glob([ + "Sources/*.swift", + ]), + deps = [ + ], + frameworks = [ + "$SDKROOT/System/Library/Frameworks/Foundation.framework", + "$SDKROOT/System/Library/Frameworks/CoreText.framework", + ], +) diff --git a/submodules/Emoji/Emoji.d b/submodules/Emoji/Emoji.d new file mode 100644 index 0000000000..4d85181083 --- /dev/null +++ b/submodules/Emoji/Emoji.d @@ -0,0 +1,4 @@ +/Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/Emoji.o : /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/Sources/EmojiUtils.swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/ObjectiveC.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Darwin.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Foundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreFoundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreGraphics.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Swift.swiftmodule /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/../../buck-out/gen/_p/dSOeJSgEqx-pub/Emoji/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/objc/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/Darwin.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes +/Users/peter/Library/Developer/Xcode/DerivedData/AppBundle-eiyupsfslxdyqrgylgpylqedpick/Build/Intermediates.noindex/Emoji.build/Debug-iphonesimulator/EmojiFramework.build/Objects-normal/x86_64/Emoji.swiftmodule : /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/Sources/EmojiUtils.swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/ObjectiveC.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Darwin.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Foundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreFoundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreGraphics.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Swift.swiftmodule /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/../../buck-out/gen/_p/dSOeJSgEqx-pub/Emoji/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/objc/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/Darwin.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes +/Users/peter/Library/Developer/Xcode/DerivedData/AppBundle-eiyupsfslxdyqrgylgpylqedpick/Build/Intermediates.noindex/Emoji.build/Debug-iphonesimulator/EmojiFramework.build/Objects-normal/x86_64/Emoji.swiftdoc : /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/Sources/EmojiUtils.swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/ObjectiveC.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Darwin.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Foundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreFoundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreGraphics.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Swift.swiftmodule /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/../../buck-out/gen/_p/dSOeJSgEqx-pub/Emoji/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/objc/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/Darwin.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes +/Users/peter/Library/Developer/Xcode/DerivedData/AppBundle-eiyupsfslxdyqrgylgpylqedpick/Build/Intermediates.noindex/Emoji.build/Debug-iphonesimulator/EmojiFramework.build/Objects-normal/x86_64/EmojiFramework-Swift.h : /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/Sources/EmojiUtils.swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/ObjectiveC.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Darwin.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Foundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreFoundation.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/CoreGraphics.swiftmodule /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Swift.swiftmodule /Users/peter/build/telegram-temp/telegram-ios/submodules/Emoji/../../buck-out/gen/_p/dSOeJSgEqx-pub/Emoji/module.modulemap /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/objc/ObjectiveC.apinotes /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator/x86_64/Dispatch.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/usr/include/Darwin.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.apinotes /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.4.sdk/System/Library/Frameworks/Security.framework/Headers/Security.apinotes diff --git a/submodules/Emoji/Emoji.o b/submodules/Emoji/Emoji.o new file mode 100644 index 0000000000000000000000000000000000000000..ae870d4386fb840b0cc19c923e045ec4eeb27504 GIT binary patch literal 66784 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

uQ5x!50yg7L=_J@M3m=_j%7kb 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 h=S>c*CnF~GS`iKL+q5~QiW}nxz{{hTYM?(Mr literal 0 HcmV?d00001 diff --git a/submodules/Emoji/Emoji.xcodeproj/project.pbxproj b/submodules/Emoji/Emoji.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..b9c4156b4b --- /dev/null +++ b/submodules/Emoji/Emoji.xcodeproj/project.pbxproj @@ -0,0 +1,327 @@ + + + + + archiveVersion + 1 + classes + + + objectVersion + 46 + objects + + 1DD70E29CCF717CF00000000 + + isa + PBXFileReference + name + Emoji-Debug.xcconfig + path + ../../buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E2950B2F77900000000 + + isa + PBXFileReference + name + Emoji-Profile.xcconfig + path + ../../buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29C449A2DB00000000 + + isa + PBXFileReference + name + Emoji-Release.xcconfig + path + ../../buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + B401C9792F7F325000000000 + + isa + PBXGroup + name + Buck (Do Not Modify) + sourceTree + ]]> + children + + 1DD70E29CCF717CF00000000 + 1DD70E2950B2F77900000000 + 1DD70E29C449A2DB00000000 + + + B401C979B781F65D00000000 + + isa + PBXGroup + name + Configurations + sourceTree + ]]> + children + + B401C9792F7F325000000000 + + + 1DD70E29001F47FB00000000 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E29C4C3D69000000000 + + isa + PBXFileReference + name + EmojiUtils.swift + path + Sources/EmojiUtils.swift + sourceTree + SOURCE_ROOT + + B401C979EAB5339800000000 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E29C4C3D69000000000 + + + B401C97903FF902600000000 + + isa + PBXGroup + name + Emoji + sourceTree + ]]> + children + + 1DD70E29001F47FB00000000 + B401C979EAB5339800000000 + + + 1DD70E29A59C927400000000 + + isa + PBXFileReference + name + libEmoji.a + path + libEmoji.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C979C806358400000000 + + isa + PBXGroup + name + Products + sourceTree + ]]> + children + + 1DD70E29A59C927400000000 + + + B401C979EFB6AC4600000000 + + isa + PBXGroup + name + mainGroup + sourceTree + ]]> + children + + B401C979B781F65D00000000 + B401C97903FF902600000000 + B401C979C806358400000000 + + + E7A30F04C4C3D69000000000 + + isa + PBXBuildFile + fileRef + 1DD70E29C4C3D69000000000 + + 1870857F0000000000000000 + + isa + PBXSourcesBuildPhase + files + + E7A30F04C4C3D69000000000 + + + 4952437303EDA63300000000 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E29CCF717CF00000000 + + 4952437350C7218900000000 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E2950B2F77900000000 + + 49524373A439BFE700000000 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E29C449A2DB00000000 + + 218C37090000000000000000 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000000 + 4952437350C7218900000000 + 49524373A439BFE700000000 + + defaultConfigurationIsVisible + + + E66DC04E03FF902600000000 + + isa + PBXNativeTarget + name + Emoji + productName + Emoji + productReference + 1DD70E29A59C927400000000 + productType + com.apple.product-type.library.static + dependencies + + + buildPhases + + 1870857F0000000000000000 + + buildConfigurationList + 218C37090000000000000000 + + 4952437303EDA63300000001 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + + 4952437350C7218900000001 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + + 49524373A439BFE700000001 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + + 218C37090000000000000001 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000001 + 4952437350C7218900000001 + 49524373A439BFE700000001 + + defaultConfigurationIsVisible + + + 96C8479303FF902600000000 + + isa + PBXProject + mainGroup + B401C979EFB6AC4600000000 + targets + + E66DC04E03FF902600000000 + + buildConfigurationList + 218C37090000000000000001 + compatibilityVersion + Xcode 3.2 + attributes + + LastUpgradeCheck + 9999 + + + + rootObject + 96C8479303FF902600000000 + + \ No newline at end of file diff --git a/submodules/Emoji/Emoji.xcodeproj/xcshareddata/xcschemes/Emoji.xcscheme b/submodules/Emoji/Emoji.xcodeproj/xcshareddata/xcschemes/Emoji.xcscheme new file mode 100644 index 0000000000..c4eb6b0a83 --- /dev/null +++ b/submodules/Emoji/Emoji.xcodeproj/xcshareddata/xcschemes/Emoji.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/submodules/MtProtoKit/BUCK b/submodules/MtProtoKit/BUCK index 2b928eddb2..9d5d6ad159 100644 --- a/submodules/MtProtoKit/BUCK +++ b/submodules/MtProtoKit/BUCK @@ -1,119 +1,111 @@ -load('//tools:buck_utils.bzl', 'config_with_updated_linker_flags', 'combined_config', 'configs_with_config') -load('//tools:buck_defs.bzl', 'SHARED_CONFIGS', 'EXTENSION_LIB_SPECIFIC_CONFIG') +load("//Config:buck_rule_macros.bzl", "static_library", "framework") genrule( - name = 'openssl_libs', + name = "openssl_libs", srcs = [ - 'openssl/iOS/libcrypto.a', + "openssl/iOS/libcrypto.a", ], - bash = 'mkdir -p $OUT; cp $SRCS $OUT/', - out = 'openssl_libs', - visibility = [ - '//submodules/MtProtoKit:...', - ] + bash = "mkdir -p $OUT; cp $SRCS $OUT/", + out = "openssl_libs", + visibility = ["PUBLIC"] ) apple_library( - name = 'openssl', + name = "openssl", visibility = [ - '//submodules/MtProtoKit:MtProtoKit' + "//submodules/MtProtoKit:MtProtoKit" ], - header_namespace = 'openssl', + header_namespace = "openssl", exported_headers = glob([ - 'openssl/**/*.h', + "openssl/**/*.h", ]), exported_linker_flags = [ - '-lcrypto', - '-L$(location :openssl_libs)', + "-lcrypto", + "-L$(location :openssl_libs)", ], ) -apple_library( - name = 'MtProtoKit', +framework( + name = "MtProtoKit", srcs = glob([ - '*.m', - 'MtProtoKit/*.m', - 'thirdparty/AFNetworking/*.m', - 'thirdparty/AsyncSocket/*.m', + "*.m", + "MtProtoKit/*.m", + "thirdparty/AFNetworking/*.m", + "thirdparty/AsyncSocket/*.m", ]), - configs = configs_with_config(combined_config([SHARED_CONFIGS, EXTENSION_LIB_SPECIFIC_CONFIG])), headers = glob([ - '*.h', - 'MtProtoKit/*.h', - 'thirdparty/AFNetworking/*.h', - 'thirdparty/AsyncSocket/*.h', + "*.h", + "MtProtoKit/*.h", + "thirdparty/AFNetworking/*.h", + "thirdparty/AsyncSocket/*.h", ]), - header_namespace = 'MtProtoKit', exported_headers = [ - 'MtProtoKit/MTTime.h', - 'MtProtoKit/MTTimer.h', - 'MtProtoKit/MTLogging.h', - 'MtProtoKit/MTEncryption.h', - 'MtProtoKit/MTInternalId.h', - 'MtProtoKit/MTQueue.h', - 'MtProtoKit/MTOutputStream.h', - 'MtProtoKit/MTInputStream.h', - 'MtProtoKit/MTSerialization.h', - 'MtProtoKit/MTExportedAuthorizationData.h', - 'MtProtoKit/MTRpcError.h', - 'MtProtoKit/MTKeychain.h', - 'MtProtoKit/MTFileBasedKeychain.h', - 'MtProtoKit/MTContext.h', - 'MtProtoKit/MTTransportScheme.h', - 'MtProtoKit/MTDatacenterTransferAuthAction.h', - 'MtProtoKit/MTDatacenterAuthAction.h', - 'MtProtoKit/MTDatacenterAuthMessageService.h', - 'MtProtoKit/MTDatacenterAddress.h', - 'MtProtoKit/MTDatacenterAddressSet.h', - 'MtProtoKit/MTDatacenterAuthInfo.h', - 'MtProtoKit/MTDatacenterSaltInfo.h', - 'MtProtoKit/MTDatacenterAddressListData.h', - 'MtProtoKit/MTProto.h', - 'MtProtoKit/MTSessionInfo.h', - 'MtProtoKit/MTTimeFixContext.h', - 'MtProtoKit/MTPreparedMessage.h', - 'MtProtoKit/MTOutgoingMessage.h', - 'MtProtoKit/MTIncomingMessage.h', - 'MtProtoKit/MTMessageEncryptionKey.h', - 'MtProtoKit/MTMessageService.h', - 'MtProtoKit/MTMessageTransaction.h', - 'MtProtoKit/MTTimeSyncMessageService.h', - 'MtProtoKit/MTRequestMessageService.h', - 'MtProtoKit/MTRequest.h', - 'MtProtoKit/MTRequestContext.h', - 'MtProtoKit/MTRequestErrorContext.h', - 'MtProtoKit/MTDropResponseContext.h', - 'MtProtoKit/MTApiEnvironment.h', - 'MtProtoKit/MTResendMessageService.h', - 'MtProtoKit/MTNetworkAvailability.h', - 'MtProtoKit/MTTransport.h', - 'MtProtoKit/MTTransportTransaction.h', - 'MtProtoKit/MTTcpTransport.h', - 'MtProtoKit/MTHttpRequestOperation.h', - 'MTAtomic.h', - 'MTBag.h', - 'MTDisposable.h', - 'MTSubscriber.h', - 'MTSignal.h', - 'MTNetworkUsageCalculationInfo.h', - 'MTNetworkUsageManager.h', - 'MTBackupAddressSignals.h', - 'thirdparty/AFNetworking/AFURLConnectionOperation.h', - 'thirdparty/AFNetworking/AFHTTPRequestOperation.h', - 'MTProxyConnectivity.h', - 'MTGzip.h', - 'MTDatacenterVerificationData.h', - 'MTPKCS.h', + "MtProtoKit/MTTime.h", + "MtProtoKit/MTTimer.h", + "MtProtoKit/MTLogging.h", + "MtProtoKit/MTEncryption.h", + "MtProtoKit/MTInternalId.h", + "MtProtoKit/MTQueue.h", + "MtProtoKit/MTOutputStream.h", + "MtProtoKit/MTInputStream.h", + "MtProtoKit/MTSerialization.h", + "MtProtoKit/MTExportedAuthorizationData.h", + "MtProtoKit/MTRpcError.h", + "MtProtoKit/MTKeychain.h", + "MtProtoKit/MTFileBasedKeychain.h", + "MtProtoKit/MTContext.h", + "MtProtoKit/MTTransportScheme.h", + "MtProtoKit/MTDatacenterTransferAuthAction.h", + "MtProtoKit/MTDatacenterAuthAction.h", + "MtProtoKit/MTDatacenterAuthMessageService.h", + "MtProtoKit/MTDatacenterAddress.h", + "MtProtoKit/MTDatacenterAddressSet.h", + "MtProtoKit/MTDatacenterAuthInfo.h", + "MtProtoKit/MTDatacenterSaltInfo.h", + "MtProtoKit/MTDatacenterAddressListData.h", + "MtProtoKit/MTProto.h", + "MtProtoKit/MTSessionInfo.h", + "MtProtoKit/MTTimeFixContext.h", + "MtProtoKit/MTPreparedMessage.h", + "MtProtoKit/MTOutgoingMessage.h", + "MtProtoKit/MTIncomingMessage.h", + "MtProtoKit/MTMessageEncryptionKey.h", + "MtProtoKit/MTMessageService.h", + "MtProtoKit/MTMessageTransaction.h", + "MtProtoKit/MTTimeSyncMessageService.h", + "MtProtoKit/MTRequestMessageService.h", + "MtProtoKit/MTRequest.h", + "MtProtoKit/MTRequestContext.h", + "MtProtoKit/MTRequestErrorContext.h", + "MtProtoKit/MTDropResponseContext.h", + "MtProtoKit/MTApiEnvironment.h", + "MtProtoKit/MTResendMessageService.h", + "MtProtoKit/MTNetworkAvailability.h", + "MtProtoKit/MTTransport.h", + "MtProtoKit/MTTransportTransaction.h", + "MtProtoKit/MTTcpTransport.h", + "MtProtoKit/MTHttpRequestOperation.h", + "MTAtomic.h", + "MTBag.h", + "MTDisposable.h", + "MTSubscriber.h", + "MTSignal.h", + "MTNetworkUsageCalculationInfo.h", + "MTNetworkUsageManager.h", + "MTBackupAddressSignals.h", + "thirdparty/AFNetworking/AFURLConnectionOperation.h", + "thirdparty/AFNetworking/AFHTTPRequestOperation.h", + "MTProxyConnectivity.h", + "MTGzip.h", + "MTDatacenterVerificationData.h", + "MTPKCS.h", ], - modular = True, - compiler_flags = ['-w'], - preprocessor_flags = ['-fobjc-arc'], - visibility = ['PUBLIC'], + visibility = ["PUBLIC"], deps = [ - ':openssl', + ":openssl", ], frameworks = [ - '$SDKROOT/System/Library/Frameworks/Foundation.framework', - '$SDKROOT/System/Library/Frameworks/Security.framework', + "$SDKROOT/System/Library/Frameworks/Foundation.framework", + "$SDKROOT/System/Library/Frameworks/Security.framework", ], ) diff --git a/submodules/MtProtoKit/Info.plist b/submodules/MtProtoKit/Info.plist new file mode 100644 index 0000000000..d3de8eefb6 --- /dev/null +++ b/submodules/MtProtoKit/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/submodules/MtProtoKit/MTDiscoverConnectionSignals.m b/submodules/MtProtoKit/MTDiscoverConnectionSignals.m index a426fdb822..dd4b304e12 100644 --- a/submodules/MtProtoKit/MTDiscoverConnectionSignals.m +++ b/submodules/MtProtoKit/MTDiscoverConnectionSignals.m @@ -1,39 +1,18 @@ #import "MTDiscoverConnectionSignals.h" #import "MTTcpConnection.h" - -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -#else -# import -# import -# import -# import -#endif +#import "MTTransportScheme.h" +#import "MTTcpTransport.h" +#import "MTQueue.h" #import "MTDatacenterAddress.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -#else -# import -# import -# import -#endif +#import "MTDisposable.h" +#import "MTSignal.h" +#import "MTAtomic.h" +#import "MTContext.h" +#import "MTApiEnvironment.h" +#import "MTLogging.h" #import #import diff --git a/submodules/MtProtoKit/MTProtoKit/MTTcpConnection.m b/submodules/MtProtoKit/MTProtoKit/MTTcpConnection.m index 677be9ee00..51342ef6b0 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTTcpConnection.m +++ b/submodules/MtProtoKit/MTProtoKit/MTTcpConnection.m @@ -20,17 +20,8 @@ #import "MTAes.h" #import "MTEncryption.h" - -#if defined(MtProtoKitDynamicFramework) -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -#else -# import -# import -#endif +#import "MTSignal.h" +#import "MTDNS.h" @interface MTTcpConnectionData : NSObject diff --git a/submodules/MtProtoKit/MTProxyConnectivity.m b/submodules/MtProtoKit/MTProxyConnectivity.m index 72bb7358b5..4db36644b7 100644 --- a/submodules/MtProtoKit/MTProxyConnectivity.m +++ b/submodules/MtProtoKit/MTProxyConnectivity.m @@ -1,34 +1,13 @@ #import "MTProxyConnectivity.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -# import -# import -# import -# import -#else -# import -# import -# import -# import -# import -# import -# import -# import -#endif - +#import "MTSignal.h" +#import "MTQueue.h" +#import "MTContext.h" +#import "MTApiEnvironment.h" +#import "MTDatacenterAddressSet.h" +#import "MTDatacenterAddress.h" +#import "MTTcpConnection.h" +#import "MTTransportScheme.h" #import "MTDiscoverConnectionSignals.h" @implementation MTProxyConnectivityStatus diff --git a/submodules/MtProtoKit/MTSignal.m b/submodules/MtProtoKit/MTSignal.m index 40b909bd91..3f273bf34b 100644 --- a/submodules/MtProtoKit/MTSignal.m +++ b/submodules/MtProtoKit/MTSignal.m @@ -1,14 +1,10 @@ #import "MTSignal.h" -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif - #import +#import "MTTimer.h" +#import "MTQueue.h" +#import "MTAtomic.h" +#import "MTBag.h" @interface MTSubscriberDisposable : NSObject { diff --git a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj index 60b6cfeae6..c9e52125fe 100644 --- a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj +++ b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj @@ -463,8 +463,8 @@ D0CD98CD1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; }; D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D0CD98E21D74BAEB00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D0CD98E31D74BAEB00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + D0CD98E21D74BAEB00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; }; + D0CD98E31D74BAEB00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; }; D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; D0CD98E51D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; diff --git a/submodules/MtProtoKit/thirdparty/AFNetworking/AFURLConnectionOperation.m b/submodules/MtProtoKit/thirdparty/AFNetworking/AFURLConnectionOperation.m index 59d5fa4058..c7a03d6126 100644 --- a/submodules/MtProtoKit/thirdparty/AFNetworking/AFURLConnectionOperation.m +++ b/submodules/MtProtoKit/thirdparty/AFNetworking/AFURLConnectionOperation.m @@ -187,8 +187,6 @@ static inline BOOL AFStateTransitionIsValid(AFOperationState fromState, AFOperat if (_outputStream) { [_outputStream close]; } - - [super dealloc]; } diff --git a/tools/buck_defs.bzl b/tools/buck_defs.bzl deleted file mode 100644 index d6db55ef19..0000000000 --- a/tools/buck_defs.bzl +++ /dev/null @@ -1,18 +0,0 @@ -SHARED_CONFIGS = { - 'IPHONEOS_DEPLOYMENT_TARGET': '8.0', # common target version - 'SDKROOT': 'iphoneos', # platform - 'GCC_OPTIMIZATION_LEVEL': '0', # clang optimization - 'SWIFT_OPTIMIZATION_LEVEL': '-Onone', # swiftc optimization - 'SWIFT_WHOLE_MODULE_OPTIMIZATION': 'NO', # for build performance - 'ONLY_ACTIVE_ARCH': 'YES', - 'LD_RUNPATH_SEARCH_PATHS': '@executable_path/Frameworks', # To allow source files in binary -} - -LIB_SPECIFIC_CONFIG = { - 'SKIP_INSTALL': 'YES', -} - -EXTENSION_LIB_SPECIFIC_CONFIG = { - 'SKIP_INSTALL': 'YES', - 'APPLICATION_EXTENSION_API_ONLY': 'YES', -} diff --git a/tools/defs.bzl b/tools/defs.bzl new file mode 100644 index 0000000000..ad459ba6dc --- /dev/null +++ b/tools/defs.bzl @@ -0,0 +1,13 @@ +XCODE_BINARY_CONFIG = { + 'IPHONEOS_DEPLOYMENT_TARGET': '8.0', + 'SDKROOT': 'iphoneos', + 'GCC_OPTIMIZATION_LEVEL': '0', + 'SWIFT_OPTIMIZATION_LEVEL': '-Onone', + 'SWIFT_WHOLE_MODULE_OPTIMIZATION': 'NO', + 'ONLY_ACTIVE_ARCH': 'YES', + 'LD_RUNPATH_SEARCH_PATHS': '@executable_path/Frameworks', +} + +XCODE_STATIC_LIBRARY_CONFIG = { + 'SKIP_INSTALL': 'YES', +} diff --git a/tools/targets.bzl b/tools/targets.bzl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/buck_utils.bzl b/tools/utils.bzl similarity index 75% rename from tools/buck_utils.bzl rename to tools/utils.bzl index ca933c023e..f443f03983 100644 --- a/tools/buck_utils.bzl +++ b/tools/utils.bzl @@ -1,10 +1,5 @@ OTHER_LINKER_FLAGS_KEY = 'OTHER_LDFLAGS' -# Either appends or assigns `other_linker_flags` to `config` under `config_key`. -# Params: -# - config: A dictionary of config names and their values -# - additional_linker_flags: A string-representable value of additional linker flags -# - config_key: The key to which to append or assign the additional linker flags def config_with_updated_linker_flags(config, other_linker_flags, config_key=OTHER_LINKER_FLAGS_KEY): new_config = { } config_key_found = False @@ -21,8 +16,8 @@ def config_with_updated_linker_flags(config, other_linker_flags, config_key=OTHE return new_config -# Creates a dictionary where the top level keys are the supported build configurations and the value of each key is `config`. -def configs_with_config(config): + +def xcode_configs(config): return { "Debug": config, "Profile": config, @@ -42,19 +37,11 @@ def merge_maps(dicts): result.update(d) return result + def basename(p): - """Returns the basename (i.e., the file portion) of a path. - Note that if `p` ends with a slash, this function returns an empty string. - This matches the behavior of Python's `os.path.basename`, but differs from - the Unix `basename` command (which would return the path segment preceding - the final slash). - Args: - p: The path whose basename should be returned. - Returns: - The basename of the path, which includes the extension. - """ return p.rpartition("/")[-1] + def glob_map(glob_results): result = dict() for path in glob_results: @@ -64,6 +51,7 @@ def glob_map(glob_results): result[file_name] = path return result + def glob_sub_map(prefix, glob_specs): result = dict() for path in native.glob(glob_specs): @@ -75,6 +63,7 @@ def glob_sub_map(prefix, glob_specs): result[file_key] = path return result + def gen_header_targets(header_paths, prefix, flavor, source_rule, source_path): result = dict() for header_path in header_paths: @@ -87,6 +76,7 @@ def gen_header_targets(header_paths, prefix, flavor, source_rule, source_path): result[header_path] = ':' + name + flavor return result + def lib_basename(name): result = name if result.startswith('lib'): @@ -95,12 +85,14 @@ def lib_basename(name): result = result[:-2] return result + def combined_config(dicts): result = dict() for d in dicts: result.update(d) return result + valid_build_variants = ['project', 'release'] def get_build_variant():