Merge commit '72633df91f3f28c70185790efc52f4788bba81dd' into beta

This commit is contained in:
Ali 2021-01-24 11:28:16 +04:00
commit 271c7d39e0
4 changed files with 80 additions and 15 deletions

View File

@ -17,7 +17,7 @@ There are several things we require from **all developers** for the moment.
2. Clone the project from GitHub: 2. Clone the project from GitHub:
``` ```
git clone --recursive https://github.com/TelegramMessenger/Telegram-iOS.git git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
``` ```
3. Download Bazel 3.7.0 3. Download Bazel 3.7.0
@ -75,7 +75,19 @@ python3 build-system/Make/Make.py \
--disableExtensions --disableExtensions
``` ```
Tip: use `--disableExtensions` when developing to speed up development by not building application extensions. It is possible to generate a project that does not require any codesigning certificates to be installed: add `--disableProvisioningProfiles` flag:
```
python3 build-system/Make/Make.py \
--bazel="$HOME/bazel-dist/bazel" \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath="$HOME/telegram-configuration" \
--disableExtensions \
--disableProvisioningProfiles
```
Tip: use `--disableExtensions` when developing to speed up development by not building application extensions and the WatchOS app.
# Tips # Tips

View File

@ -41,6 +41,12 @@ bool_flag(
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
) )
bool_flag(
name = "disableProvisioningProfiles",
build_setting_default = False,
visibility = ["//visibility:public"],
)
config_setting( config_setting(
name = "disableExtensionsSetting", name = "disableExtensionsSetting",
flag_values = { flag_values = {
@ -48,6 +54,13 @@ config_setting(
}, },
) )
config_setting(
name = "disableProvisioningProfilesSetting",
flag_values = {
":disableProvisioningProfiles": "True",
},
)
genrule( genrule(
name = "empty", name = "empty",
outs = ["empty.swift"], outs = ["empty.swift"],
@ -492,7 +505,10 @@ watchos_extension(
":WatchExtensionNSExtensionInfoPlist", ":WatchExtensionNSExtensionInfoPlist",
], ],
minimum_os_version = "5.0", minimum_os_version = "5.0",
provisioning_profile = "@build_configuration//provisioning:WatchExtension.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:WatchExtension.mobileprovision",
}),
resources = [ resources = [
":TelegramWatchExtensionResources", ":TelegramWatchExtensionResources",
], ],
@ -520,7 +536,10 @@ watchos_application(
":WatchAppCompanionInfoPlist", ":WatchAppCompanionInfoPlist",
], ],
minimum_os_version = "5.0", minimum_os_version = "5.0",
provisioning_profile = "@build_configuration//provisioning:WatchApp.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:WatchApp.mobileprovision",
}),
resources = [ resources = [
":TelegramWatchAppResources", ":TelegramWatchAppResources",
":TelegramWatchAppAssets", ":TelegramWatchAppAssets",
@ -1029,7 +1048,10 @@ ios_extension(
":AppNameInfoPlist", ":AppNameInfoPlist",
], ],
minimum_os_version = "9.0", minimum_os_version = "9.0",
provisioning_profile = "@build_configuration//provisioning:Share.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Share.mobileprovision",
}),
deps = [":ShareExtensionLib"], deps = [":ShareExtensionLib"],
frameworks = [ frameworks = [
":TelegramUIFramework" ":TelegramUIFramework"
@ -1098,7 +1120,10 @@ ios_extension(
":AppNameInfoPlist", ":AppNameInfoPlist",
], ],
minimum_os_version = "10.0", minimum_os_version = "10.0",
provisioning_profile = "@build_configuration//provisioning:NotificationContent.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:NotificationContent.mobileprovision",
}),
deps = [":NotificationContentExtensionLib"], deps = [":NotificationContentExtensionLib"],
frameworks = [ frameworks = [
":TelegramUIFramework" ":TelegramUIFramework"
@ -1181,7 +1206,10 @@ ios_extension(
], ],
minimum_os_version = "14.0", minimum_os_version = "14.0",
provides_main = True, provides_main = True,
provisioning_profile = "@build_configuration//provisioning:Widget.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Widget.mobileprovision",
}),
deps = [":WidgetExtensionLib"], deps = [":WidgetExtensionLib"],
frameworks = [ frameworks = [
":SwiftSignalKitFramework", ":SwiftSignalKitFramework",
@ -1270,7 +1298,10 @@ ios_extension(
":AppNameInfoPlist", ":AppNameInfoPlist",
], ],
minimum_os_version = "10.0", minimum_os_version = "10.0",
provisioning_profile = "@build_configuration//provisioning:Intents.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Intents.mobileprovision",
}),
deps = [":IntentsExtensionLib"], deps = [":IntentsExtensionLib"],
frameworks = [ frameworks = [
":SwiftSignalKitFramework", ":SwiftSignalKitFramework",
@ -1321,7 +1352,10 @@ ios_extension(
":AppNameInfoPlist", ":AppNameInfoPlist",
], ],
minimum_os_version = "10.0", minimum_os_version = "10.0",
provisioning_profile = "@build_configuration//provisioning:NotificationService.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:NotificationService.mobileprovision",
}),
deps = ["//Telegram/NotificationService:NotificationServiceExtensionLib"], deps = ["//Telegram/NotificationService:NotificationServiceExtensionLib"],
frameworks = [ frameworks = [
":MtProtoKitFramework", ":MtProtoKitFramework",
@ -1507,7 +1541,10 @@ ios_application(
), ),
families = ["iphone", "ipad"], families = ["iphone", "ipad"],
minimum_os_version = "9.0", minimum_os_version = "9.0",
provisioning_profile = "@build_configuration//provisioning:Telegram.mobileprovision", provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Telegram.mobileprovision",
}),
entitlements = ":TelegramEntitlements.entitlements", entitlements = ":TelegramEntitlements.entitlements",
infoplists = [ infoplists = [
":TelegramInfoPlist", ":TelegramInfoPlist",
@ -1544,7 +1581,10 @@ ios_application(
# ":WidgetExtension", # ":WidgetExtension",
], ],
}), }),
watch_application = ":TelegramWatchApp", watch_application = select({
":disableExtensionsSetting": None,
"//conditions:default": ":TelegramWatchApp",
}),
deps = [ deps = [
":Main", ":Main",
":Lib", ":Lib",

View File

@ -297,12 +297,15 @@ def generate_project(arguments):
disable_extensions = False disable_extensions = False
if arguments.disableExtensions is not None: if arguments.disableExtensions is not None:
disable_extensions = arguments.disableExtensions disable_extensions = arguments.disableExtensions
if arguments.disableProvisioningProfiles is not None:
disable_provisioning_profiles = arguments.disableProvisioningProfiles
call_executable(['killall', 'Xcode'], check_result=False) call_executable(['killall', 'Xcode'], check_result=False)
generate( generate(
build_environment=bazel_command_line.build_environment, build_environment=bazel_command_line.build_environment,
disable_extensions=disable_extensions, disable_extensions=disable_extensions,
disable_provisioning_profiles=disable_provisioning_profiles,
configuration_path=bazel_command_line.configuration_path, configuration_path=bazel_command_line.configuration_path,
bazel_app_arguments=bazel_command_line.get_project_generation_arguments() bazel_app_arguments=bazel_command_line.get_project_generation_arguments()
) )
@ -439,6 +442,16 @@ if __name__ == '__main__':
''' '''
) )
generateProjectParser.add_argument(
'--disableProvisioningProfiles',
action='store_true',
default=False,
help='''
This allows to build the project for simulator without having any codesigning identities installed.
Building for an actual device will fail.
'''
)
buildParser = subparsers.add_parser('build', help='Build the app') buildParser = subparsers.add_parser('build', help='Build the app')
buildParser.add_argument( buildParser.add_argument(
'--buildNumber', '--buildNumber',

View File

@ -10,7 +10,7 @@ def remove_directory(path):
shutil.rmtree(path) shutil.rmtree(path)
def generate(build_environment: BuildEnvironment, disable_extensions, configuration_path, bazel_app_arguments): def generate(build_environment: BuildEnvironment, disable_extensions, disable_provisioning_profiles, configuration_path, bazel_app_arguments):
project_path = os.path.join(build_environment.base_path, 'build-input/gen/project') project_path = os.path.join(build_environment.base_path, 'build-input/gen/project')
app_target = 'Telegram' app_target = 'Telegram'
@ -43,8 +43,6 @@ def generate(build_environment: BuildEnvironment, disable_extensions, configurat
bazel_wrapper_arguments = [] bazel_wrapper_arguments = []
bazel_wrapper_arguments += ['--override_repository=build_configuration={}'.format(configuration_path)] bazel_wrapper_arguments += ['--override_repository=build_configuration={}'.format(configuration_path)]
if disable_extensions and False:
bazel_wrapper_arguments += ['--//Telegram:disableExtensions']
with open(bazel_wrapper_path, 'wb') as bazel_wrapper: with open(bazel_wrapper_path, 'wb') as bazel_wrapper:
bazel_wrapper.write('''#!/bin/sh bazel_wrapper.write('''#!/bin/sh
@ -82,6 +80,8 @@ def generate(build_environment: BuildEnvironment, disable_extensions, configurat
bazel_build_arguments += ['--override_repository=build_configuration={}'.format(configuration_path)] bazel_build_arguments += ['--override_repository=build_configuration={}'.format(configuration_path)]
if disable_extensions: if disable_extensions:
bazel_build_arguments += ['--//Telegram:disableExtensions'] bazel_build_arguments += ['--//Telegram:disableExtensions']
if disable_provisioning_profiles:
bazel_build_arguments += ['--//Telegram:disableProvisioningProfiles']
call_executable([ call_executable([
tulsi_path, tulsi_path,