diff --git a/.gitmodules b/.gitmodules index a221ebb907..b0b43c4caa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ [submodule "build-system/bazel-rules/apple_support"] path = build-system/bazel-rules/apple_support url = https://github.com/bazelbuild/apple_support.git +[submodule "build-system/bazel-rules/rules_apple_extras"] + path = build-system/bazel-rules/rules_apple_extras + url = https://github.com/thii/rules_apple_extras.git diff --git a/WORKSPACE b/WORKSPACE index 95027a82b6..e1631575ee 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -46,3 +46,10 @@ load( ) apple_support_dependencies() + +local_repository( + name = "rules_apple_extras", + path = "build-system/bazel-rules/rules_apple_extras", +) + + diff --git a/Wallet/BUILD b/Wallet/BUILD index a6e26e767f..395b474778 100644 --- a/Wallet/BUILD +++ b/Wallet/BUILD @@ -47,6 +47,7 @@ swift_library( "//submodules/OverlayStatusController:OverlayStatusController", "//submodules/openssl:openssl", "//submodules/OpenSSLEncryptionProvider:OpenSSLEncryptionProvider", + "//submodules/WalletCore:WalletCore", ], ) diff --git a/build-system/bazel-rules/rules_apple b/build-system/bazel-rules/rules_apple index 8dc8e519df..53282252b3 160000 --- a/build-system/bazel-rules/rules_apple +++ b/build-system/bazel-rules/rules_apple @@ -1 +1 @@ -Subproject commit 8dc8e519df3ab06c9842a9e6396edf592104c46b +Subproject commit 53282252b393e451634d4f410d555df3f295c00e diff --git a/build-system/bazel-rules/rules_apple_extras b/build-system/bazel-rules/rules_apple_extras new file mode 160000 index 0000000000..5d310fe7e5 --- /dev/null +++ b/build-system/bazel-rules/rules_apple_extras @@ -0,0 +1 @@ +Subproject commit 5d310fe7e51be6b488fe25e014ea5dfaf115a519 diff --git a/build-system/bazel-rules/rules_swift b/build-system/bazel-rules/rules_swift index 46d309a56e..657eda57a0 160000 --- a/build-system/bazel-rules/rules_swift +++ b/build-system/bazel-rules/rules_swift @@ -1 +1 @@ -Subproject commit 46d309a56e638830a9844e65d5531262a8afab99 +Subproject commit 657eda57a097980848dbb3c880b94faeddaa3cd1 diff --git a/submodules/OpenSSLEncryptionProvider/BUILD b/submodules/OpenSSLEncryptionProvider/BUILD index b6eca063e5..d4d99fcfe3 100644 --- a/submodules/OpenSSLEncryptionProvider/BUILD +++ b/submodules/OpenSSLEncryptionProvider/BUILD @@ -1,3 +1,8 @@ +load( + "@rules_apple_extras//apple:objc_library.bzl", + "objc_library", +) + objc_library( name = "OpenSSLEncryptionProvider", srcs = glob([ diff --git a/submodules/TonBinding/BUILD b/submodules/TonBinding/BUILD new file mode 100644 index 0000000000..b2cb6c1dd2 --- /dev/null +++ b/submodules/TonBinding/BUILD @@ -0,0 +1,23 @@ +load( + "@rules_apple_extras//apple:objc_library.bzl", + "objc_library", +) + +objc_library( + name = "TonBinding", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.mm", + ]), + hdrs = glob([ + "Sources/**/*.h", + ]), + deps = [ + "//submodules/SSignalKit/SSignalKit:SSignalKit", + "//submodules/openssl:openssl", + "//submodules/ton:ton", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WalletCore/BUILD b/submodules/WalletCore/BUILD new file mode 100644 index 0000000000..56b9d8ac32 --- /dev/null +++ b/submodules/WalletCore/BUILD @@ -0,0 +1,16 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "WalletCore", + module_name = "WalletCore", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/TonBinding:TonBinding", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/openssl/BUILD b/submodules/openssl/BUILD index 89e571933e..7ca85c49fd 100644 --- a/submodules/openssl/BUILD +++ b/submodules/openssl/BUILD @@ -1,6 +1,6 @@ load( - "//Config/objc_module_provider.bzl", - "objc_module", + "@rules_apple_extras//apple:objc_library.bzl", + "objc_library", ) openssl_headers = [ @@ -170,13 +170,9 @@ objc_library( module_name = "openssl", enable_modules = True, hdrs = ["Public/openssl/" + x for x in openssl_headers], - includes = [ - "Public/openssl", - ], deps = [ ":openssl_lib", ], - , visibility = [ "//visibility:public", ] diff --git a/submodules/ton/BUILD b/submodules/ton/BUILD new file mode 100644 index 0000000000..10fe8636eb --- /dev/null +++ b/submodules/ton/BUILD @@ -0,0 +1,93 @@ +load( + "@rules_apple_extras//apple:objc_library.bzl", + "objc_library", +) + +ton_headers = [ + "auto/tl/tonlib_api.h", + "tl/TlObject.h", + "tonlib/tonlib_client_json.h", + "tonlib/tonlibjson_export.h", + "tonlib/Client.h", + "td/utils/Slice-decl.h", + "td/utils/config.h", + "td/utils/SharedSlice.h", + "td/utils/Slice.h", + "td/utils/int_types.h", + "td/utils/common.h", + "td/utils/check.h", + "td/utils/unique_ptr.h", + "td/utils/port/platform.h", +] + +ton_lib_names = [ + "adnllite", + "crc32c", + "keys", + "lite-client-common", + "smc-envelope", + "tdactor", + "tddb", + "tdnet", + "tdutils", + "tl-lite-utils", + "tl-utils", + "tl_api", + "tl_lite_api", + "tl_tonlib_api", + "ton_block", + "ton_crypto", + "tonlib", +] + +genrule( + name = "", +) + +genrule( + name = "ton_build", + srcs = [ + "build-ton.sh", + "iOS.cmake", + "tonlib-src.zip", + "//submodules/openssl:openssl_include", + ], + cmd_bash = + """ + cp $(location :build-ton.sh) "$(RULEDIR)/" + cp $(location :iOS.cmake) "$(RULEDIR)/" + unzip + cp $(location :iOS.cmake) "$(RULEDIR)/" + "tonlib-src.zip", + + mkdir -p "$(RULEDIR)/openssl_headers/openssl" + for f in $(locations //submodules/openssl:openssl_include); do + cp -f "$$f" "$(RULEDIR)/openssl_headers/openssl/" + done + mkdir -p "$(RULEDIR)/Public/ton" + + sh $(RULEDIR)/build-ton.sh "$(RULEDIR)/Public/ton" $(RULEDIR) "$(RULEDIR)/openssl_headers" + """, + outs = ["Public/ton/" + x for x in ton_headers], + visibility = [ + "//visibility:public", + ] +) + +#ton_header_targets = gen_header_targets(ton_header_paths, "ton_header_", "", "ton_build", "build/out/include") + +cc_library( + name = "ton_lib", + srcs = [":lib" + x + ".a" for x in ton_lib_names], +) + +objc_library( + name = "ton", + hdrs = ["Public/ton/" + x for x in ton_headers], + deps = [ + ":ton_lib", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/ton/tonlib-src.zip b/submodules/ton/tonlib-src.zip new file mode 100644 index 0000000000..ece2d6ec65 Binary files /dev/null and b/submodules/ton/tonlib-src.zip differ