├── .bazelversion ├── examples ├── aws_sdk_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelignore │ ├── .bazelrc │ ├── Package.swift │ ├── Sources │ │ └── AwsSdkExample │ │ │ └── main.swift │ └── do_test ├── aws_crt_example │ ├── .bazelignore │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── README.md │ ├── .bazelrc │ ├── Package.swift │ ├── Tests │ │ └── AwsCrtTests │ │ │ └── AwsCrtTests.swift │ └── do_test ├── grpc_example │ ├── README.md │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── protos │ │ └── echo_service │ │ │ ├── responses │ │ │ ├── echo_response.proto │ │ │ └── BUILD.bazel │ │ │ ├── requests │ │ │ └── echo_request.proto │ │ │ └── echo_service.proto │ ├── do_test │ ├── BUILD.bazel │ ├── .bazelrc │ ├── Package.swift │ └── sources │ │ ├── client │ │ └── BUILD.bazel │ │ └── server │ │ └── BUILD.bazel ├── vapor_example │ ├── Sources │ │ ├── App │ │ │ ├── Controllers │ │ │ │ └── .gitkeep │ │ │ ├── Configuration │ │ │ │ └── configure.swift │ │ │ ├── Models │ │ │ │ └── Foo.swift │ │ │ ├── BUILD.bazel │ │ │ └── Migrations │ │ │ │ └── 20210819T1221_CreateFooTable.swift │ │ └── Run │ │ │ ├── main.swift │ │ │ └── BUILD.bazel │ ├── WORKSPACE │ ├── foo.sh │ ├── WORKSPACE.bzlmod │ ├── Tests │ │ └── AppTests │ │ │ ├── BUILD.bazel │ │ │ └── AppTests.swift │ ├── swift │ │ └── Package.swift │ ├── do_test │ └── .bazelrc ├── ios_sim │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── Sources │ │ └── Foo │ │ │ ├── BUILD.bazel │ │ │ └── Bar.swift │ ├── Tests │ │ └── FooTests │ │ │ └── MarkdownTests.swift │ └── Package.swift ├── objc_code │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── Package.swift │ ├── README.md │ ├── Package.resolved │ └── do_test ├── nimble_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── README.md │ ├── do_test │ └── Sources │ │ └── NimbleExample │ │ └── NimbleExampleTests │ │ └── CounterSpec.swift ├── soto_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── Package.swift │ ├── Tests │ │ └── SotoTests │ │ │ ├── BUILD.bazel │ │ │ └── SotoTests.swift │ ├── do_test │ ├── README.md │ └── .bazelrc ├── stripe_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── PaymentSheet │ │ ├── PaymentSheetExample │ │ │ └── Resources │ │ │ │ ├── da.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── de.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── es.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── fi.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── fil.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── fr.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── hr.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── hu.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── id.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── it.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ja.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ko.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── mt.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── nb.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── nl.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ru.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── sv.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── tr.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── vi.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── bg-BG.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ca-ES.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── cs-CZ.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── el-GR.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── en-GB.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── es-419.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── et-EE.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── fr-CA.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── lt-LT.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── lv-LV.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ms-MY.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── nn-NO.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── pl-PL.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── pt-BR.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── pt-PT.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── ro-RO.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── sk-SK.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── sl-SI.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── zh-HK.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── zh-Hans.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ ├── zh-Hant.lproj │ │ │ │ └── LaunchScreen.strings │ │ │ │ └── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ ├── paymentsheetexample-20.png │ │ │ │ ├── paymentsheetexample-29.png │ │ │ │ ├── paymentsheetexample-40.png │ │ │ │ ├── paymentsheetexample-41.png │ │ │ │ ├── paymentsheetexample-42.png │ │ │ │ ├── paymentsheetexample-58.png │ │ │ │ ├── paymentsheetexample-59.png │ │ │ │ ├── paymentsheetexample-60.png │ │ │ │ ├── paymentsheetexample-76.png │ │ │ │ ├── paymentsheetexample-80.png │ │ │ │ ├── paymentsheetexample-81.png │ │ │ │ ├── paymentsheetexample-87.png │ │ │ │ ├── paymentsheetexample-1024.png │ │ │ │ ├── paymentsheetexample-120.png │ │ │ │ ├── paymentsheetexample-121.png │ │ │ │ ├── paymentsheetexample-152.png │ │ │ │ ├── paymentsheetexample-167.png │ │ │ │ └── paymentsheetexample-180.png │ │ └── PaymentSheetUITest │ │ │ ├── CustomerSheetTestPlaygroundSettings.swift │ │ │ ├── PaymentSheetTestPlaygroundSettings.swift │ │ │ └── MockFiles │ │ │ ├── saved_payment_methods_200.json │ │ │ └── customers_200.json │ ├── .bazelrc │ ├── Package.swift │ ├── do_test │ └── Package.resolved ├── tca_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── README.md │ ├── Package.swift │ ├── .bazelrc │ ├── do_test │ └── Tests │ │ └── AppTests.swift ├── firebase_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── crashlytics │ │ ├── Shared │ │ │ └── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── AccentColor.colorset │ │ │ │ └── Contents.json │ │ ├── CrashlyticsSwiftUIExample │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── AppIconTopShelfImage.brandassets │ │ │ │ │ ├── AppIcon.imagestack │ │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Middle.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIconAppStore.imagestack │ │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Middle.imagestacklayer │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ └── Content.imageset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── TopShelfImage.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── TopShelfImageWide.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ └── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ └── PreviewContent │ │ │ │ └── PreviewAssets.xcassets │ │ │ │ └── Contents.json │ │ └── macOS │ │ │ └── macOS.entitlements │ ├── appdistribution │ │ ├── AppDistributionExample │ │ │ └── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ ├── AppIcon-76.png │ │ │ │ ├── AppIcon-60-2x.png │ │ │ │ ├── AppIcon-60-3x.png │ │ │ │ ├── AppIcon-76-2x.png │ │ │ │ ├── logo1024-ipad-29@1x.png │ │ │ │ ├── logo1024-ipad-29@2x.png │ │ │ │ ├── logo1024-ipad-40@1x.png │ │ │ │ ├── logo1024-ipad-40@2x.png │ │ │ │ ├── logo1024-ipad-83@2x.png │ │ │ │ ├── logo1024-iphone-29@2x.png │ │ │ │ ├── logo1024-iphone-29@3x.png │ │ │ │ ├── logo1024-iphone-40@2x.png │ │ │ │ └── logo1024-iphone-40@3x.png │ │ └── BUILD.bazel │ ├── README.md │ ├── analytics │ │ └── AnalyticsExample │ │ │ └── AnalyticsExample.entitlements │ ├── Package.swift │ └── abtesting │ │ └── BUILD.bazel ├── google_maps_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── third-party │ │ └── google-maps-ios-sdk │ │ │ └── BUILD │ ├── GoogleMapsExample │ │ └── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ ├── Maps-SDK-Demo-App_120.png │ │ │ ├── Maps-SDK-Demo-App_152.png │ │ │ ├── Maps-SDK-Demo-App_167.png │ │ │ ├── Maps-SDK-Demo-App_180.png │ │ │ └── Maps-SDK-Demo-App_76.png │ ├── .bazelrc │ ├── Package.swift │ ├── Package.resolved │ └── do_test ├── interesting_deps │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── ios │ │ └── ios_main.swift │ ├── .bazelrc │ └── objc_test.m ├── kscrash_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── README.md │ ├── .bazelrc │ ├── swift │ │ ├── Package.swift │ │ ├── BUILD.bazel │ │ └── Package.resolved │ └── do_test ├── lottie_ios_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── LottieExample │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── SceneDelegate.swift │ │ ├── Example-iOS.entitlements │ │ └── AppDelegate.swift │ ├── .bazelrc │ ├── Package.swift │ ├── Package.resolved │ ├── do_test │ └── README.md ├── messagekit_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── Package.swift │ ├── do_test │ ├── README.md │ ├── Sources │ │ └── Models │ │ │ └── BUILD.bazel │ └── Tests │ │ └── ModelTests │ │ └── BUILD.bazel ├── phone_number_kit │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── README.md │ ├── .bazelrc │ ├── Package.swift │ ├── Tests │ │ └── PhoneNumberKitTests │ │ │ └── ParseTests.swift │ ├── Package.resolved │ └── do_test ├── resources_example │ ├── WORKSPACE │ ├── third_party │ │ ├── implicit_resource_localization │ │ │ ├── Sources │ │ │ │ └── Stub.swift │ │ │ ├── README.md │ │ │ └── Package.swift │ │ ├── another_package_with_resources │ │ │ ├── Resources │ │ │ │ ├── Localization │ │ │ │ │ └── en.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ └── Assets.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── avatar.imageset │ │ │ │ │ ├── ai_chatbot_avatar.pdf │ │ │ │ │ └── Contents.json │ │ │ ├── MoreCoolStuff.swift │ │ │ └── Package.swift │ │ ├── package_with_resources │ │ │ └── Sources │ │ │ │ └── CoolUI │ │ │ │ ├── Resources │ │ │ │ ├── Localization │ │ │ │ │ └── en.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ └── Assets.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── avatar.imageset │ │ │ │ │ ├── ai_chatbot_avatar.pdf │ │ │ │ │ └── Contents.json │ │ │ │ └── CoolStuff.swift │ │ ├── package_with_resources_swift_6 │ │ │ └── Sources │ │ │ │ └── CoolUI │ │ │ │ ├── Resources │ │ │ │ ├── Localization │ │ │ │ │ └── en.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ └── Assets.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── avatar.imageset │ │ │ │ │ ├── ai_chatbot_avatar.pdf │ │ │ │ │ └── Contents.json │ │ │ │ └── CoolStuff.swift │ │ ├── app_lovin_sdk │ │ │ └── Sources │ │ │ │ ├── AppLovinSDKResources │ │ │ │ ├── AppLovinSDKResources.bundle │ │ │ │ │ ├── Assets.car │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── mute.aiff │ │ │ │ │ ├── MANativeAdMRecView.nib │ │ │ │ │ ├── MAHybridNativeAdView.nib │ │ │ │ │ ├── MANativeAdBannerView.nib │ │ │ │ │ ├── MANativeAdLeaderView.nib │ │ │ │ │ ├── ALDDetailTableViewCell.nib │ │ │ │ │ ├── MANativeAdSmallTemplate1.nib │ │ │ │ │ ├── _CodeSignature │ │ │ │ │ │ ├── CodeDirectory │ │ │ │ │ │ ├── CodeSignature │ │ │ │ │ │ ├── CodeRequirements │ │ │ │ │ │ └── CodeRequirements-1 │ │ │ │ │ ├── de.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── en.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── es.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── fr.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── ja.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── ko.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── Base.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── MANativeAdMediaBannerView.nib │ │ │ │ │ ├── MANativeAdMediumTemplate1.nib │ │ │ │ │ ├── ALDRightDetailTableViewCell.nib │ │ │ │ │ ├── MANativeAdVerticalBannerView.nib │ │ │ │ │ ├── MANativeAdVerticalLeaderView.nib │ │ │ │ │ ├── zh-Hans.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── zh-Hant.lproj │ │ │ │ │ │ └── Localizable.strings │ │ │ │ │ ├── MANativeAdVerticalMediaBannerView.nib │ │ │ │ │ ├── ALConsentFlowATT.json │ │ │ │ │ └── ALDMultiAdViewController.storyboardc │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── ALDMultiAdViewController.nib │ │ │ │ │ │ └── 3jf-B1-XNL-view-Iqa-CO-DFs.nib │ │ │ │ └── include │ │ │ │ │ └── ALResourceManager.h │ │ │ │ └── AppLovinSDK │ │ │ │ └── AppLovinSDK.h │ │ └── BUILD.bazel │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── swift │ │ └── BUILD.bazel │ ├── do_test │ └── README.md ├── shake_ios_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── ShakeIOSExample │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── ShakeIOSExampleApp.swift │ │ ├── Info.plist │ │ └── ContentView.swift │ ├── README.md │ ├── .bazelrc │ ├── Package.swift │ ├── Package.resolved │ └── do_test ├── snapkit_example │ ├── WORKSPACE │ ├── Assets.xcassets │ │ ├── Contents.json │ │ └── AccentColor.colorset │ │ │ └── Contents.json │ ├── Package.swift │ ├── Package.resolved │ └── do_test ├── sqlite_data_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── Package.swift │ └── do_test ├── symlink_example │ ├── WORKSPACE │ ├── third_party │ │ └── empty_framework │ │ │ ├── EmptyFramework.xcframework │ │ │ ├── Framework │ │ │ └── EmptyFramework.xcframework │ │ │ │ ├── ios-arm64 │ │ │ │ └── EmptyFramework.framework │ │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── EmptyFramework │ │ │ │ ├── macos-arm64_x86_64 │ │ │ │ └── EmptyFramework.framework │ │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── Versions │ │ │ │ │ ├── A │ │ │ │ │ │ ├── Modules │ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ │ └── EmptyFramework │ │ │ │ │ └── Current │ │ │ │ │ │ ├── Modules │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ │ └── EmptyFramework │ │ │ │ │ └── EmptyFramework │ │ │ │ └── ios-arm64_x86_64-simulator │ │ │ │ └── EmptyFramework.framework │ │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ │ ├── Info.plist │ │ │ │ └── EmptyFramework │ │ │ └── Package.swift │ ├── WORKSPACE.bzlmod │ ├── Sources │ │ └── ImportFramework │ │ │ ├── Import.swift │ │ │ └── BUILD.bazel │ ├── README.md │ ├── Package.swift │ ├── .bazelrc │ ├── Tests │ │ └── ImportFrameworkTests │ │ │ └── ImportFrameworkTests.swift │ └── do_test ├── xcmetrics_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── Package.swift │ ├── do_test │ └── .bazelrc ├── injectionnext_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── Tests │ │ └── EmptyTest.swift │ ├── README.md │ ├── .bazelrc │ ├── Package.resolved │ ├── do_test │ └── Package.swift ├── language_modes_example │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── third_party │ │ ├── swift_5_package │ │ │ ├── Sources │ │ │ │ └── Tools5 │ │ │ │ │ └── Content.swift │ │ │ └── Package.swift │ │ ├── swift_6_package │ │ │ └── Sources │ │ │ │ ├── Tools6 │ │ │ │ └── Content.swift │ │ │ │ └── Tools6_Mode5 │ │ │ │ └── Content.swift │ │ └── swift_5_package_v6 │ │ │ ├── Sources │ │ │ └── Tools5_Mode6 │ │ │ │ └── Content.swift │ │ │ └── Package.swift │ ├── .bazelrc │ ├── Package.resolved │ ├── README.md │ ├── do_test │ ├── Package.swift │ └── tests.swift ├── pkg_manifest_minimal │ ├── WORKSPACE │ ├── README.md │ ├── WORKSPACE.bzlmod │ ├── third_party │ │ ├── my_local_package │ │ │ ├── README.md │ │ │ ├── Sources │ │ │ │ ├── GreetingsFramework │ │ │ │ │ ├── NameProvider.swift │ │ │ │ │ ├── GreetingProvider.swift │ │ │ │ │ ├── WithName.swift │ │ │ │ │ ├── EveningGreeting.swift │ │ │ │ │ ├── MorningGreeting.swift │ │ │ │ │ └── NamedGreeting.swift │ │ │ │ └── PrintGreeting │ │ │ │ │ └── main.swift │ │ │ └── Tests │ │ │ │ └── GreetingsFrameworkTests │ │ │ │ ├── EveningGreetingTests.swift │ │ │ │ ├── MorningGreetingTests.swift │ │ │ │ ├── WithNameTests.swift │ │ │ │ └── NamedGreetingTests.swift │ │ ├── MyAmazingModule │ │ │ ├── .gitignore │ │ │ ├── Tests │ │ │ │ └── MyAmazingModuleTests │ │ │ │ │ └── MyAmazingModuleTests.swift │ │ │ └── Sources │ │ │ │ └── MyAmazingModule │ │ │ │ └── MyAmazingModule.swift │ │ ├── NotThatAmazingModule │ │ │ ├── .gitignore │ │ │ └── Tests │ │ │ │ └── NotThatAmazingModuleTests │ │ │ │ └── NotThatAmazingModuleTests.swift │ │ └── BUILD.bazel │ ├── Sources │ │ ├── MyLibrary │ │ │ ├── World.swift │ │ │ └── BUILD.bazel │ │ └── MyExecutable │ │ │ ├── MyExecutable.swift │ │ │ └── BUILD.bazel │ ├── .bazelrc │ ├── Tests │ │ └── MyLibraryTests │ │ │ ├── BUILD.bazel │ │ │ └── MyLibraryTests.swift │ └── Package.swift ├── swift_package_registry_example │ ├── README.md │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── .bazelrc │ ├── registries.json │ ├── do_test │ ├── Package.swift │ ├── main.swift │ └── BUILD.bazel └── skip_local_transitive_dependencies_example │ ├── WORKSPACE │ ├── main.swift │ ├── WORKSPACE.bzlmod │ ├── LocalPackageA │ ├── Sources │ │ └── LocalPackageA │ │ │ └── LocalPackageA.swift │ └── Package.swift │ ├── .bazelrc │ ├── do_test │ ├── Package.resolved │ ├── LocalPackageB │ └── Package.resolved │ ├── README.md │ └── Package.swift ├── WORKSPACE ├── CODEOWNERS ├── bzlmod └── workspace │ ├── WORKSPACE │ ├── WORKSPACE.bzlmod │ ├── Sources │ ├── MyLibrary │ │ ├── World.swift │ │ └── BUILD.bazel │ └── MyExecutable │ │ └── BUILD.bazel │ ├── Tests │ └── MyLibraryTests │ │ ├── MyLibraryTests.swift │ │ └── BUILD.bazel │ └── .bazelrc ├── .bcr ├── config.yml ├── source.template.json ├── presubmit.yml └── metadata.template.json ├── .shellcheckrc ├── WORKSPACE.bzlmod ├── tools ├── swift_deps_index │ ├── internal │ │ ├── swiftbin │ │ │ ├── doc.go │ │ │ └── find_swift_bin.go │ │ ├── spreso │ │ │ └── doc.go │ │ ├── stringslices │ │ │ ├── doc.go │ │ │ └── map.go │ │ ├── swiftcfg │ │ │ ├── doc.go │ │ │ └── generate_rules_mode.go │ │ ├── swift │ │ │ ├── doc.go │ │ │ ├── module_type.go │ │ │ ├── find_rules.go │ │ │ ├── bazel_repo_name_test.go │ │ │ ├── module_name.go │ │ │ ├── imports.go │ │ │ ├── files.go │ │ │ ├── files_test.go │ │ │ ├── rule_kinds_test.go │ │ │ └── label_str_test.go │ │ ├── jsonutils │ │ │ ├── doc.go │ │ │ └── json_slice.go │ │ ├── spdump │ │ │ ├── platform.go │ │ │ └── doc.go │ │ └── swiftpkg │ │ │ ├── doc.go │ │ │ └── platform.go │ └── main.go ├── tidy_child_workspaces │ ├── BUILD.bazel │ └── tidy_child_workspaces.sh ├── create_example │ ├── template_files │ │ ├── .bazelrc │ │ └── do_test │ └── BUILD.bazel └── remove_swift_build_dirs │ ├── remove_swift_build_dirs.sh │ └── BUILD.bazel ├── extensions.bzl ├── swiftpkg ├── tests │ ├── generate_modulemap_tests │ │ ├── SimpleCore │ │ │ ├── SimpleCore.m │ │ │ └── SimpleCore.h │ │ ├── Foo │ │ │ ├── Foo.m │ │ │ └── Foo.h │ │ ├── Sources │ │ │ ├── FooSwift │ │ │ │ └── FooSwiftVersionInfo.swift │ │ │ └── PrintVersion │ │ │ │ ├── PrintVersion.swift │ │ │ │ └── BUILD.bazel │ │ ├── PrintVersionObjc │ │ │ └── main.m │ │ └── BUILD.bazel │ └── spm_versions_tests.bzl └── internal │ ├── ObjcResourceBundleAccessor.h.tmpl │ ├── semver.bzl │ ├── validations.bzl │ └── modulemap_parser │ ├── errors.bzl │ └── collection_results.bzl ├── .swiftlint.yml ├── config_settings └── spm │ └── tests │ └── platform_tests │ └── BUILD.bazel ├── docs └── doc_infos.bzl ├── .swiftformat ├── ci ├── tests │ └── BUILD.bazel ├── internal │ ├── providers.bzl │ └── bzlmod_modes.bzl └── BUILD.bazel ├── nogo_config.json ├── .github ├── actions │ ├── tidy_and_test │ │ └── action.yml │ └── configure_remote_cache_auth │ │ └── action.yml ├── workflows │ └── commit_msg_check.yml └── renovate.json ├── ci.bazelrc └── .gitignore /.bazelversion: -------------------------------------------------------------------------------- 1 | 8.4.2 2 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: use bzlmod 2 | -------------------------------------------------------------------------------- /examples/aws_crt_example/.bazelignore: -------------------------------------------------------------------------------- 1 | .build 2 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/.bazelignore: -------------------------------------------------------------------------------- 1 | .build 2 | -------------------------------------------------------------------------------- /examples/grpc_example/README.md: -------------------------------------------------------------------------------- 1 | # grpc_example Example 2 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/App/Controllers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @brentleyjones @cgrindel @jpsim @luispadron 2 | -------------------------------------------------------------------------------- /bzlmod/workspace/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/ios_sim/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/objc_code/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/grpc_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/nimble_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionaly blank: using bzlmod 2 | -------------------------------------------------------------------------------- /examples/soto_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/stripe_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/tca_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/vapor_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/aws_crt_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank. Using bzlmod. 2 | -------------------------------------------------------------------------------- /examples/firebase_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/google_maps_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/interesting_deps/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/kscrash_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/messagekit_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/phone_number_kit/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/resources_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/shake_ios_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/snapkit_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/sqlite_data_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/symlink_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/xcmetrics_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/injectionnext_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/language_modes_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/vapor_example/foo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo "Args:" "$@" 4 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/README.md: -------------------------------------------------------------------------------- 1 | # swift_package_registry Example 2 | -------------------------------------------------------------------------------- /.bcr/config.yml: -------------------------------------------------------------------------------- 1 | fixedReleaser: 2 | login: cgrindel 3 | email: chuck.grindel@gmail.com 4 | -------------------------------------------------------------------------------- /.shellcheckrc: -------------------------------------------------------------------------------- 1 | # Don't complain about paths that cannot be followed. 2 | disable=SC1090 3 | -------------------------------------------------------------------------------- /examples/grpc_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/shake_ios_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/stripe_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/google_maps_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/injectionnext_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/language_modes_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/messagekit_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/README.md: -------------------------------------------------------------------------------- 1 | # MySwiftPackage 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/WORKSPACE: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Using bzlmod 2 | -------------------------------------------------------------------------------- /examples/sqlite_data_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/da.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/de.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/es.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/fi.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/fil.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/fr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/hr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/hu.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/id.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/it.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ja.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ko.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/mt.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/nb.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/nl.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ru.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/sv.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/tr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/vi.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/bg-BG.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ca-ES.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/cs-CZ.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/el-GR.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/en-GB.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/es-419.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/et-EE.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/fr-CA.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/lt-LT.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/lv-LV.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ms-MY.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/nn-NO.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/pl-PL.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/pt-BR.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/pt-PT.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/ro-RO.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/sk-SK.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/sl-SI.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/zh-HK.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/zh-Hans.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/zh-Hant.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/main.swift: -------------------------------------------------------------------------------- 1 | import LocalPackageA 2 | 3 | await doWorkA() 4 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/implicit_resource_localization/Sources/Stub.swift: -------------------------------------------------------------------------------- 1 | // Stub file to make SPM happy -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/EmptyFramework.xcframework: -------------------------------------------------------------------------------- 1 | Framework/EmptyFramework.xcframework -------------------------------------------------------------------------------- /bzlmod/workspace/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/aws_crt_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank. The content for this workspace is generated by bzlmod. 2 | -------------------------------------------------------------------------------- /examples/ios_sim/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/objc_code/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank: Force bzlmod to strict mode 2 | -------------------------------------------------------------------------------- /examples/google_maps_example/third-party/google-maps-ios-sdk/BUILD: -------------------------------------------------------------------------------- 1 | exports_files(["0001-Remove-import-GoogleMaps.patch"]) 2 | -------------------------------------------------------------------------------- /examples/nimble_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/soto_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/tca_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/vapor_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/firebase_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/interesting_deps/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/kscrash_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/phone_number_kit/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/resources_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/symlink_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/xcmetrics_example/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /bzlmod/workspace/Sources/MyLibrary/World.swift: -------------------------------------------------------------------------------- 1 | public struct World { 2 | public init() {} 3 | public var name = "World" 4 | } 5 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/WORKSPACE.bzlmod: -------------------------------------------------------------------------------- 1 | # Intentionally blank 2 | # This exists to force Bazel in bzlmod mode to be strict. 3 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/README.md: -------------------------------------------------------------------------------- 1 | # MyLocalPackage 2 | 3 | This package is used by other examples. 4 | -------------------------------------------------------------------------------- /examples/snapkit_example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/Resources/Localization/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "Title" = "Hello, Avatar!"; 2 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftbin/doc.go: -------------------------------------------------------------------------------- 1 | // Package swiftbin provides utitilty functions for executing Swift commands. 2 | package swiftbin 3 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/phone_number_kit/README.md: -------------------------------------------------------------------------------- 1 | # PhoneNumberKit Example 2 | 3 | This example demonstrates support for resources defined in a Swift package manifest. 4 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/Shared/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources/Sources/CoolUI/Resources/Localization/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "Title" = "Hello, Avatar!"; 2 | -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetUITest/CustomerSheetTestPlaygroundSettings.swift: -------------------------------------------------------------------------------- 1 | ../PaymentSheetExample/CustomerSheetTestPlaygroundSettings.swift -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetUITest/PaymentSheetTestPlaygroundSettings.swift: -------------------------------------------------------------------------------- 1 | ../PaymentSheetExample/PaymentSheetTestPlaygroundSettings.swift -------------------------------------------------------------------------------- /extensions.bzl: -------------------------------------------------------------------------------- 1 | """Bazel module extensions.""" 2 | 3 | load("//swiftpkg/bzlmod:swift_deps.bzl", _swift_deps = "swift_deps") 4 | 5 | swift_deps = _swift_deps 6 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/spreso/doc.go: -------------------------------------------------------------------------------- 1 | // Package spreso provides types that represent the contents of a `Package.resolved` file. 2 | package spreso 3 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/Resources/Localization/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "Title" = "Hello, Avatar!"; 2 | -------------------------------------------------------------------------------- /examples/symlink_example/Sources/ImportFramework/Import.swift: -------------------------------------------------------------------------------- 1 | import EmptyFramework 2 | 3 | func getFrameworkVersion() -> Double { EmptyFrameworkVersionNumber } 4 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/stringslices/doc.go: -------------------------------------------------------------------------------- 1 | // Package stringslices provides utility functions for working with slices of strings. 2 | package stringslices 3 | -------------------------------------------------------------------------------- /examples/aws_crt_example/README.md: -------------------------------------------------------------------------------- 1 | # AWS CRT Swift Example 2 | 3 | This example demonstrates using [aws-crt-swift](https://github.com/awslabs/aws-crt-swift) with Bazel. 4 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftcfg/doc.go: -------------------------------------------------------------------------------- 1 | // Package swiftcfg defines the types for the Swift-specific config used in the Gazelle extension. 2 | package swiftcfg 3 | -------------------------------------------------------------------------------- /examples/kscrash_example/README.md: -------------------------------------------------------------------------------- 1 | # Package with `.def` files 2 | 3 | This example demonstrates that rules_swift_package_manager supports `.def` files in clang targets. 4 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/NameProvider.swift: -------------------------------------------------------------------------------- 1 | public protocol NameProvider { 2 | var name: String { get } 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/implicit_resource_localization/README.md: -------------------------------------------------------------------------------- 1 | This package includes resources with implicit localizations using a `.lproj` resource folder. 2 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/doc.go: -------------------------------------------------------------------------------- 1 | // Package swift provides utility functions for generating Bazel declarations for Swift source 2 | // files. 3 | package swift 4 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tools/swift_deps_index/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/cmd" 4 | 5 | func main() { 6 | cmd.Execute() 7 | } 8 | -------------------------------------------------------------------------------- /examples/grpc_example/protos/echo_service/responses/echo_response.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package echo_service; 4 | 5 | message EchoResponse { 6 | string contents = 1; 7 | } 8 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/GreetingProvider.swift: -------------------------------------------------------------------------------- 1 | public protocol GreetingProvider { 2 | var greeting: String { get } 3 | } 4 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/jsonutils/doc.go: -------------------------------------------------------------------------------- 1 | // Package jsonutils provides functions for retrieving and converting values from unmarshalled JSON 2 | // data structures. 3 | package jsonutils 4 | -------------------------------------------------------------------------------- /.bcr/source.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "integrity": "", 3 | "strip_prefix": "", 4 | "url": "https://github.com/{OWNER}/{REPO}/releases/download/{TAG}/rules_swift_package_manager.{TAG}.tar.gz" 5 | } 6 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/PreviewContent/PreviewAssets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources/Sources/CoolUI/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/LocalPackageA/Sources/LocalPackageA/LocalPackageA.swift: -------------------------------------------------------------------------------- 1 | import LocalPackageB 2 | 3 | public func doWorkA() async { 4 | await doWorkB() 5 | } 6 | -------------------------------------------------------------------------------- /examples/symlink_example/README.md: -------------------------------------------------------------------------------- 1 | # Symlink to XCFramework 2 | 3 | This example demonstrates using an external package that contains an XCFramework that is 4 | dependended on through a symlink. 5 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/shake_ios_example/README.md: -------------------------------------------------------------------------------- 1 | # shake_ios Example 2 | 3 | This example demonstrates the use of a Swift package that contains a binary target (xcframework) 4 | that is not packaged in an archive file. 5 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/SimpleCore/SimpleCore.m: -------------------------------------------------------------------------------- 1 | #import "SimpleCore.h" 2 | 3 | @implementation VersionInfo 4 | 5 | - (NSString *)myVersion { 6 | return @"1.2.3"; 7 | } 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/spdump/platform.go: -------------------------------------------------------------------------------- 1 | package spdump 2 | 3 | // A Platform represents a Swift platform. 4 | type Platform struct { 5 | Name string `json:"platformName"` 6 | Version string 7 | } 8 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetUITest/MockFiles/saved_payment_methods_200.json: -------------------------------------------------------------------------------- 1 | { 2 | "object": "list", 3 | "data": [ 4 | 5 | ], 6 | "has_more": false, 7 | "url": "/v1/payment_methods" 8 | } 9 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Sources/MyLibrary/World.swift: -------------------------------------------------------------------------------- 1 | import GreetingsFramework 2 | 3 | public struct World { 4 | public init() {} 5 | public var name = "World" 6 | } 7 | 8 | extension World: NameProvider {} 9 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/BUILD.bazel: -------------------------------------------------------------------------------- 1 | filegroup( 2 | name = "shared_resources", 3 | srcs = [ 4 | "GoogleService-Info.plist", 5 | ], 6 | visibility = ["//appdistribution:__subpackages__"], 7 | ) 8 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | # List the rules by running "swiftlint rules" 2 | disabled_rules: 3 | - trailing_comma 4 | excluded: 5 | - .build 6 | identifier_name: 7 | excluded: 8 | - id 9 | - db 10 | nesting: 11 | type_level: 2 12 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/PrintGreeting/main.swift: -------------------------------------------------------------------------------- 1 | import GreetingsFramework 2 | 3 | let jim = WithName("Jim") 4 | let namedGreeting = NamedGreeting(EveningGreeting(), jim) 5 | print(namedGreeting.value) 6 | -------------------------------------------------------------------------------- /config_settings/spm/tests/platform_tests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | load(":platforms_tests.bzl", "platforms_test_suite") 3 | 4 | bzlformat_pkg(name = "bzlformat") 5 | 6 | platforms_test_suite() 7 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/snapkit_example/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/tca_example/README.md: -------------------------------------------------------------------------------- 1 | # TCA Example 2 | 3 | [TCA](https://github.com/pointfreeco/swift-composable-architecture) is 4 | interesting as it directly and indirectly exercises unique Swift package 5 | manifests, some of which include Swift macros. 6 | -------------------------------------------------------------------------------- /bzlmod/workspace/Tests/MyLibraryTests/MyLibraryTests.swift: -------------------------------------------------------------------------------- 1 | @testable import MyLibrary 2 | import XCTest 3 | 4 | final class MyLibraryTests: XCTestCase { 5 | func testExample() throws { 6 | XCTAssertEqual(World().name, "World") 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/MyAmazingModule/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/WithName.swift: -------------------------------------------------------------------------------- 1 | public struct WithName: NameProvider { 2 | public let name: String 3 | 4 | public init(_ name: String) { 5 | self.name = name 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/injectionnext_example/Tests/EmptyTest.swift: -------------------------------------------------------------------------------- 1 | import InjectionNext 2 | import XCTest 3 | 4 | final class EmptyTest: XCTestCase { 5 | func test_anything() { 6 | _ = InjectionNext.self 7 | XCTAssertTrue(true) 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/interesting_deps/ios/ios_main.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import YotiDocumentScan 3 | 4 | @main 5 | struct Main: App { 6 | var body: some Scene { 7 | WindowGroup { 8 | Text("Hello, World!") 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/NotThatAmazingModule/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/spdump/doc.go: -------------------------------------------------------------------------------- 1 | // Package spdump provides types and utility functions for reading Swift package dump JSON. 2 | // 3 | // The JSON formats described in this file are for the swift package dump-package JSON output. 4 | package spdump 5 | -------------------------------------------------------------------------------- /tools/tidy_child_workspaces/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | 3 | bzlformat_pkg(name = "bzlformat") 4 | 5 | sh_binary( 6 | name = "tidy_child_workspaces", 7 | srcs = ["tidy_child_workspaces.sh"], 8 | ) 9 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/Shared/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/Run/main.swift: -------------------------------------------------------------------------------- 1 | import App 2 | import Vapor 3 | 4 | var env = try Environment.detect() 5 | try LoggingSystem.bootstrap(from: &env) 6 | let app = Application(env) 7 | defer { app.shutdown() } 8 | try configure(app) 9 | try app.run() 10 | -------------------------------------------------------------------------------- /bzlmod/workspace/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/grpc_example/protos/echo_service/requests/echo_request.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package echo_service; 4 | 5 | import "google/protobuf/any.proto"; 6 | 7 | message EchoRequest { 8 | string contents = 1; 9 | google.protobuf.Any extra = 2; 10 | } 11 | -------------------------------------------------------------------------------- /examples/injectionnext_example/README.md: -------------------------------------------------------------------------------- 1 | # InjectionNext Example 2 | 3 | This Package contains code that is written in Objective-C++ along with plain C 4 | code. It validates that the correct cc_library targets are created to link the 5 | C code with the Objective-C++ target. 6 | -------------------------------------------------------------------------------- /examples/ios_sim/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/BUILD.bazel: -------------------------------------------------------------------------------- 1 | # Exclude this entire directory from having anything generated by Gazelle. We 2 | # want the local packages under this directory to be processed by 3 | # local_swift_package not the Gazelle plugin. 4 | # gazelle:exclude ** 5 | -------------------------------------------------------------------------------- /examples/symlink_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "symlink_example", 7 | dependencies: [ 8 | .package(path: "third_party/empty_framework"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64/EmptyFramework.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EmptyFramework { 2 | umbrella header "EmptyFramework.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_120.png -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_152.png -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_167.png -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_180.png -------------------------------------------------------------------------------- /examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/google_maps_example/GoogleMapsExample/Assets.xcassets/AppIcon.appiconset/Maps-SDK-Demo-App_76.png -------------------------------------------------------------------------------- /examples/objc_code/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftpkg/doc.go: -------------------------------------------------------------------------------- 1 | // Package swiftpkg represents the unified information about a Swift package. 2 | // 3 | // Information from the Swift description JSON and the Swit dump JSON is merged to create the 4 | // types in this package. 5 | package swiftpkg 6 | -------------------------------------------------------------------------------- /docs/doc_infos.bzl: -------------------------------------------------------------------------------- 1 | """Module for organizing documentation.""" 2 | 3 | def _new(name, label, symbols): 4 | return struct( 5 | name = name, 6 | label = label, 7 | symbols = symbols, 8 | ) 9 | 10 | doc_infos = struct( 11 | new = _new, 12 | ) 13 | -------------------------------------------------------------------------------- /examples/aws_crt_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/interesting_deps/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/kscrash_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_5_package/Sources/Tools5/Content.swift: -------------------------------------------------------------------------------- 1 | // Return what language mode was used to compile this package 2 | public func getLanguageMode() -> Int { 3 | #if swift(>=6) 4 | return 6 5 | #else 6 | return 5 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_6_package/Sources/Tools6/Content.swift: -------------------------------------------------------------------------------- 1 | // Return what language mode was used to compile this package 2 | public func getLanguageMode() -> Int { 3 | #if swift(>=6) 4 | return 6 5 | #else 6 | return 5 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /examples/nimble_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/nimble_example/README.md: -------------------------------------------------------------------------------- 1 | # Nimble Example 2 | 3 | This example demonstrates the proper discovery and categorization of `testonly` Objective-C 4 | targets. 5 | The [Nible package](https://github.com/Quick/Nimble) provides a test asssertion API for Swift and 6 | Objective-C tests. 7 | -------------------------------------------------------------------------------- /examples/objc_code/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "", 7 | dependencies: [ 8 | .package(url: "https://github.com/datatheorem/TrustKit.git", from: "3.0.7"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/phone_number_kit/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/resources_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/shake_ios_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/stripe_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/symlink_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EmptyFramework { 2 | umbrella header "EmptyFramework.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/google_maps_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/injectionnext_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/language_modes_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_6_package/Sources/Tools6_Mode5/Content.swift: -------------------------------------------------------------------------------- 1 | // Return what language mode was used to compile this package 2 | public func getLanguageMode() -> Int { 3 | #if swift(>=6) 4 | return 6 5 | #else 6 | return 5 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/messagekit_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/sqlite_data_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_5_package_v6/Sources/Tools5_Mode6/Content.swift: -------------------------------------------------------------------------------- 1 | // Return what language mode was used to compile this package 2 | public func getLanguageMode() -> Int { 3 | #if swift(>=6) 4 | return 6 5 | #else 6 | return 5 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 12/9/22. 2 | // Copyright © 2022 Airbnb Inc. All rights reserved. 3 | 4 | import UIKit 5 | 6 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 7 | var window: UIWindow? 8 | } 9 | 10 | -------------------------------------------------------------------------------- /examples/symlink_example/Tests/ImportFrameworkTests/ImportFrameworkTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import ImportFramework 3 | 4 | final class ImportFrameworkTests: XCTestCase { 5 | func testVersionNumber() throws { 6 | XCTAssertEqual(getFrameworkVersion(), 1.0) 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64_x86_64-simulator/EmptyFramework.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EmptyFramework { 2 | umbrella header "EmptyFramework.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EmptyFramework { 2 | umbrella header "EmptyFramework.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/Foo/Foo.m: -------------------------------------------------------------------------------- 1 | #import "Foo.h" 2 | 3 | @import SimpleCore; 4 | 5 | @implementation FooVersionInfo 6 | 7 | - (NSString *)myVersion { 8 | VersionInfo *versionInfo = [[VersionInfo alloc] init]; 9 | return versionInfo.myVersion; 10 | } 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /tools/create_example/template_files/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/module_type.go: -------------------------------------------------------------------------------- 1 | package swift 2 | 3 | // A ModuleType is an enum for the type of Swift module. 4 | type ModuleType int 5 | 6 | const ( 7 | UnknownModuleType ModuleType = iota 8 | LibraryModuleType 9 | BinaryModuleType 10 | TestModuleType 11 | ) 12 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.9 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "AwsSdkExample", 7 | dependencies: [ 8 | .package(url: "https://github.com/awslabs/aws-sdk-swift", from: "1.0.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-60-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-60-2x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-60-3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-60-3x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-76-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/AppIcon-76-2x.png -------------------------------------------------------------------------------- /examples/swift_package_registry_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/registries.json: -------------------------------------------------------------------------------- 1 | { 2 | "authentication" : { 3 | 4 | }, 5 | "registries" : { 6 | "[default]" : { 7 | "supportsAvailability" : false, 8 | "url" : "https://fake-spm-registry.deno.dev/" 9 | } 10 | }, 11 | "version" : 1 12 | } 13 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/Current/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module EmptyFramework { 2 | umbrella header "EmptyFramework.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/xcmetrics_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "xcmetrics_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/spotify/XCMetrics", from: "0.0.13"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/aws_crt_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.9 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "AwsCrtExample", 7 | dependencies: [ 8 | .package(url: "https://github.com/awslabs/aws-crt-swift.git", from: "0.54.3"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/kscrash_example/swift/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 6.0 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "resources_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/kstenerud/KSCrash", exact: "2.2.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "lottie_ios_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/airbnb/lottie-spm", from: "4.5.2"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Assets.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Assets.car -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Info.plist -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/mute.aiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/mute.aiff -------------------------------------------------------------------------------- /examples/shake_ios_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "shake_ios_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/shakebugs/shake-ios", from: "17.2.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/soto_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "PhoneNumberKitExample", 7 | dependencies: [ 8 | .package(url: "https://github.com/soto-project/soto.git", from: "7.9.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-29@1x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-29@2x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-40@1x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-40@2x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-83@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-ipad-83@2x.png -------------------------------------------------------------------------------- /examples/google_maps_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "google_maps_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/googlemaps/ios-maps-sdk", from: "10.6.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/phone_number_kit/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "PhoneNumberKitExample", 7 | dependencies: [ 8 | .package(url: "https://github.com/marmelroy/PhoneNumberKit", from: "4.2.0"), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDK/AppLovinSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppLovinSDK.h 3 | // AppLovinSDK 4 | // 5 | // Created by Ritam Sarmah on 7/2/21. 6 | // Copyright © 2021 AppLovin Corporation. All rights reserved. 7 | // 8 | 9 | #import 10 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | -------------------------------------------------------------------------------- /tools/tidy_child_workspaces/tidy_child_workspaces.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | if [[ -z "${BUILD_WORKSPACE_DIRECTORY:-}" ]]; then 6 | echo >&2 "Expected BUILD_WORKSPACE_DIRECTORY to be defined." 7 | exit 1 8 | fi 9 | cd "${BUILD_WORKSPACE_DIRECTORY}" 10 | -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-29@2x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-29@3x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-40@2x.png -------------------------------------------------------------------------------- /examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/firebase_example/appdistribution/AppDistributionExample/Assets.xcassets/AppIcon.appiconset/logo1024-iphone-40@3x.png -------------------------------------------------------------------------------- /examples/resources_example/third_party/BUILD.bazel: -------------------------------------------------------------------------------- 1 | # Exclude this entire directory from having anything generated by Gazelle. We 2 | # want the local packages under this directory to be processed by 3 | # local_swift_package not the Gazelle plugin. 4 | # gazelle:exclude ** 5 | 6 | exports_files(["gtmappauth.patch"]) 7 | -------------------------------------------------------------------------------- /examples/snapkit_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "snapkit_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/SnapKit/SnapKit.git", .upToNextMajor(from: "5.7.1")), 9 | ] 10 | ) 11 | -------------------------------------------------------------------------------- /examples/soto_example/Tests/SotoTests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test") 2 | 3 | swift_test( 4 | name = "SotoTests", 5 | srcs = [ 6 | "SotoTests.swift", 7 | ], 8 | module_name = "SotoTests", 9 | deps = ["@swiftpkg_soto//:SotoS3"], 10 | ) 11 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/EveningGreeting.swift: -------------------------------------------------------------------------------- 1 | public struct EveningGreeting { 2 | public init() {} 3 | } 4 | 5 | extension EveningGreeting: GreetingProvider { 6 | public var greeting: String { 7 | return "Good evening" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/MorningGreeting.swift: -------------------------------------------------------------------------------- 1 | public struct MorningGreeting { 2 | public init() {} 3 | } 4 | 5 | extension MorningGreeting: GreetingProvider { 6 | public var greeting: String { 7 | return "Good morning" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-20.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-29.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-40.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-41.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-42.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-58.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-59.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-60.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-76.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-80.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-81.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-87.png -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-1024.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-120.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-121.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-152.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-167.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/stripe_example/PaymentSheet/PaymentSheetExample/Resources/Assets.xcassets/AppIcon.appiconset/paymentsheetexample-180.png -------------------------------------------------------------------------------- /examples/stripe_example/PaymentSheet/PaymentSheetUITest/MockFiles/customers_200.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "cus_LatGGGGGGGGGGG", 3 | "object": "customer", 4 | "created": 1611111111, 5 | "default_source": null, 6 | "description": null, 7 | "email": "foo@bar.com", 8 | "livemode": false, 9 | "shipping": null 10 | } 11 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftcfg/generate_rules_mode.go: -------------------------------------------------------------------------------- 1 | package swiftcfg 2 | 3 | // A GenerateRulesMode is an enum for the mode for build file generation. 4 | type GenerateRulesMode int 5 | 6 | const ( 7 | SkipGenRulesMode GenerateRulesMode = iota 8 | SwiftPkgGenRulesMode 9 | SrcFileGenRulesMode 10 | ) 11 | -------------------------------------------------------------------------------- /examples/grpc_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Ensure that it builds and tests pass 10 | "${bazel}" build //... 11 | 12 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/another_package_with_resources/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMRecView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMRecView.nib -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/firebase_example/README.md: -------------------------------------------------------------------------------- 1 | # Firebase iOS SDK Example 2 | 3 | The targets in this example were copied/inspired by the [Firebase iOS quickstart 4 | examples](https://github.com/firebase/quickstart-ios). 5 | 6 | The [Firebase iOS SDK](https://github.com/firebase/firebase-ios-sdk) is interesting as it contains 7 | xcframeworks. 8 | -------------------------------------------------------------------------------- /examples/grpc_example/protos/echo_service/echo_service.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package echo_service; 4 | 5 | import "example/echo_service/requests/echo_request.proto"; 6 | import "example/echo_service/responses/echo_response.proto"; 7 | 8 | service Echo { 9 | rpc Echo(EchoRequest) returns (EchoResponse); 10 | } 11 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MAHybridNativeAdView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MAHybridNativeAdView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdBannerView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdBannerView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdLeaderView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdLeaderView.nib -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64/EmptyFramework.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64/EmptyFramework.framework/Info.plist -------------------------------------------------------------------------------- /.swiftformat: -------------------------------------------------------------------------------- 1 | # For information on the rules, see 2 | # https://github.com/nicklockwood/SwiftFormat/blob/master/Rules.md 3 | 4 | --allman false 5 | --indent 2 6 | --semicolons never 7 | --stripunusedargs always 8 | --maxwidth 100 9 | --wraparguments before-first 10 | --wrapparameters before-first 11 | --wrapcollections before-first 12 | -------------------------------------------------------------------------------- /ci/tests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | load(":bzlmod_modes_tests.bzl", "bzlmod_modes_test_suite") 3 | load(":ci_test_params_tests.bzl", "ci_test_params_test_suite") 4 | 5 | bzlformat_pkg(name = "bzlformat") 6 | 7 | bzlmod_modes_test_suite() 8 | 9 | ci_test_params_test_suite() 10 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Tests/MyLibraryTests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test") 2 | 3 | swift_test( 4 | name = "MyLibraryTests", 5 | srcs = [ 6 | "MyLibraryTests.swift", 7 | ], 8 | module_name = "MyLibraryTests", 9 | deps = ["//Sources/MyLibrary"], 10 | ) 11 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDDetailTableViewCell.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDDetailTableViewCell.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdSmallTemplate1.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdSmallTemplate1.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/de.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/es.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/es.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/fr.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ja.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ko.lproj/Localizable.strings -------------------------------------------------------------------------------- /nogo_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "_base": { 3 | "description": "Base config that all subsequent analyzers, even unspecified will inherit.", 4 | "exclude_files": { 5 | "third_party/": "exclude all third_party code for all analyzers", 6 | "external/": "exclude all third_party code for all analyzers" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/ios_sim/Sources/Foo/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | 3 | swift_library( 4 | name = "Foo", 5 | srcs = ["Bar.swift"], 6 | module_name = "Foo", 7 | tags = ["manual"], 8 | visibility = ["//:__subpackages__"], 9 | deps = ["@swiftpkg_swift_nio//:NIO"], 10 | ) 11 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Tests/GreetingsFrameworkTests/EveningGreetingTests.swift: -------------------------------------------------------------------------------- 1 | @testable import GreetingsFramework 2 | import XCTest 3 | 4 | final class EveningGreetingTests: XCTestCase { 5 | func testExample() throws { 6 | XCTAssertEqual(EveningGreeting().greeting, "Good evening") 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Tests/GreetingsFrameworkTests/MorningGreetingTests.swift: -------------------------------------------------------------------------------- 1 | @testable import GreetingsFramework 2 | import XCTest 3 | 4 | final class MorningGreetingTests: XCTestCase { 5 | func testExample() throws { 6 | XCTAssertEqual(MorningGreeting().greeting, "Good morning") 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Base.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/Base.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMediaBannerView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMediaBannerView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMediumTemplate1.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdMediumTemplate1.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/package_with_resources/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64/EmptyFramework.framework/EmptyFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64/EmptyFramework.framework/EmptyFramework -------------------------------------------------------------------------------- /.github/actions/tidy_and_test/action.yml: -------------------------------------------------------------------------------- 1 | name: Tidy and Test 2 | 3 | runs: 4 | using: composite 5 | steps: 6 | - name: Ensure everything is tidy 7 | shell: bash 8 | run: | 9 | bazelisk run //:tidy_check 10 | 11 | - name: Execute Tests 12 | shell: bash 13 | run: | 14 | bazelisk test //... 15 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDRightDetailTableViewCell.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDRightDetailTableViewCell.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalBannerView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalBannerView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalLeaderView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalLeaderView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/zh-Hant.lproj/Localizable.strings -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Ensure that it builds and tests pass 10 | "${bazel}" test //... 11 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/Foo/Foo.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NS_SWIFT_NAME(FooVersionInfo) 6 | @interface FooVersionInfo : NSObject 7 | 8 | @property(nonatomic, copy, readonly) NSString *myVersion NS_SWIFT_NAME(version); 9 | 10 | @end 11 | 12 | 13 | NS_ASSUME_NONNULL_END 14 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/stripe_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "stripe_example", 7 | dependencies: [ 8 | .package( 9 | url: "https://github.com/stripe/stripe-ios-spm.git", 10 | from: "24.25.0" 11 | ), 12 | ] 13 | ) 14 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/SimpleCore/SimpleCore.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | 5 | NS_SWIFT_NAME(VersionInfo) 6 | @interface VersionInfo : NSObject 7 | 8 | @property(nonatomic, copy, readonly) NSString *myVersion NS_SWIFT_NAME(version); 9 | 10 | @end 11 | 12 | 13 | NS_ASSUME_NONNULL_END 14 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/interesting_deps/objc_test.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @import Foundation; 4 | @import XCTest; 5 | 6 | @interface ObjcTest : XCTestCase 7 | @end 8 | 9 | @implementation ObjcTest 10 | 11 | - (void)testMock { 12 | OCMockObject *mock = [OCMockObject mockForClass:[NSObject class]]; 13 | XCTAssertNotNil(mock); 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /examples/objc_code/README.md: -------------------------------------------------------------------------------- 1 | # Example of a package with Objective-C code and Public Headers in a local subdirectory 2 | 3 | This example builds the [TrustKit](https://github.com/datatheorem/TrustKit) package. It has a couple 4 | of interesting aspects: 5 | 6 | 1. It contains Objective C code. 7 | 1. It holds its public headers in the 'public' subdirectory. 8 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Tests/GreetingsFrameworkTests/WithNameTests.swift: -------------------------------------------------------------------------------- 1 | @testable import GreetingsFramework 2 | import XCTest 3 | 4 | class WithNameTests: XCTestCase { 5 | func test_init() throws { 6 | let withName = WithName("George") 7 | XCTAssertEqual(withName.name, "George") 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalMediaBannerView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/MANativeAdVerticalMediaBannerView.nib -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/ai_chatbot_avatar.pdf -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/ShakeIOSExampleApp.swift: -------------------------------------------------------------------------------- 1 | import Shake 2 | import SwiftUI 3 | 4 | @main 5 | struct ShakeIOSExampleApp: App { 6 | init() { 7 | Shake.start(apiKey: "app-api-key") 8 | } 9 | 10 | var body: some Scene { 11 | WindowGroup { 12 | ContentView() 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/EmptyFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/EmptyFramework -------------------------------------------------------------------------------- /examples/firebase_example/analytics/AnalyticsExample/AnalyticsExample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.disable-library-validation 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/ios_sim/Sources/Foo/Bar.swift: -------------------------------------------------------------------------------- 1 | import NIO 2 | 3 | public struct Bar { 4 | var name: String 5 | 6 | public init(name: String) { 7 | self.name = name 8 | } 9 | 10 | public func sayHello(eventLoop: EventLoop) -> EventLoopFuture { 11 | return eventLoop.makeSucceededFuture("Hello, \(name)") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Tests/MyLibraryTests/MyLibraryTests.swift: -------------------------------------------------------------------------------- 1 | @testable import MyLibrary 2 | import XCTest 3 | 4 | final class MyLibraryTests: XCTestCase { 5 | func testExample() throws { 6 | XCTAssertEqual(World().name, "World") 7 | } 8 | 9 | static var allTests = [ 10 | ("testExample", testExample), 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /swiftpkg/internal/ObjcResourceBundleAccessor.h.tmpl: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | 4 | #if __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | NSBundle* {MODULE_NAME}_SWIFTPM_MODULE_BUNDLE(void); 9 | 10 | #define SWIFTPM_MODULE_BUNDLE {MODULE_NAME}_SWIFTPM_MODULE_BUNDLE() 11 | 12 | #if __cplusplus 13 | } 14 | #endif 15 | #endif 16 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/Sources/AwsSdkExample/main.swift: -------------------------------------------------------------------------------- 1 | import AWSS3 2 | 3 | struct AwsSdkExample { 4 | static func main() async throws { 5 | // Simple example that creates an S3 client 6 | _ = try await S3Client() 7 | print("AWS SDK Swift S3 client created successfully") 8 | } 9 | } 10 | 11 | try await AwsSdkExample.main() 12 | -------------------------------------------------------------------------------- /examples/ios_sim/Tests/FooTests/MarkdownTests.swift: -------------------------------------------------------------------------------- 1 | @testable import Markdown 2 | import XCTest 3 | 4 | class MarkdownTests: XCTestCase { 5 | func test_parsing() throws { 6 | let source = "This is a markup *document*." 7 | let document = Document(parsing: source) 8 | XCTAssertNotEqual(document.debugDescription(), "") 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALConsentFlowATT.json: -------------------------------------------------------------------------------- 1 | { 2 | "states": [{ 3 | "id": 14, 4 | "is_initial_state": true, 5 | "type": "att", 6 | "destination_state_id": 99 7 | }, { 8 | "id": 99, 9 | "type": "reinit" 10 | }] 11 | } 12 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64_x86_64-simulator/EmptyFramework.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64_x86_64-simulator/EmptyFramework.framework/Info.plist -------------------------------------------------------------------------------- /examples/vapor_example/Tests/AppTests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test") 2 | 3 | swift_test( 4 | name = "AppTests", 5 | srcs = [ 6 | "AppTests.swift", 7 | ], 8 | module_name = "AppTests", 9 | deps = [ 10 | "//Sources/App", 11 | "@swiftpkg_vapor//:XCTVapor", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/Sources/FooSwift/FooSwiftVersionInfo.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import SimpleCore 3 | 4 | @objc(OIFooSwiftVersionInfo) 5 | public class FooSwiftVersionInfo: NSObject { 6 | @objc(myVersion) public func version() -> String { 7 | let verInfo = VersionInfo() 8 | return verInfo.version 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/aws_crt_example/Tests/AwsCrtTests/AwsCrtTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | import AwsCommonRuntimeKit 3 | 4 | final class AwsCrtTests: XCTestCase { 5 | func testCrtTypes() throws { 6 | // Test that we can use types from AwsCommonRuntimeKit 7 | let logLevel = LogLevel.info 8 | XCTAssertEqual(logLevel, LogLevel.info) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/ios_sim/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "ios_sim", 7 | dependencies: [ 8 | .package(url: "https://github.com/apple/swift-nio.git", exact: "2.91.0"), 9 | .package(url: "https://github.com/apple/swift-markdown.git", exact: "0.7.1"), 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Sources/MyLibrary/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | 3 | swift_library( 4 | name = "MyLibrary", 5 | srcs = ["World.swift"], 6 | module_name = "MyLibrary", 7 | visibility = ["//visibility:public"], 8 | deps = ["@swiftpkg_my_local_package//:GreetingsFramework"], 9 | ) 10 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources/Sources/CoolUI/CoolStuff.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | public enum CoolStuff { 4 | public static func title() -> Text { 5 | return Text("Title", bundle: .module) 6 | } 7 | 8 | public static func image() -> Image { 9 | return Image("avatar", bundle: .module) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/Run/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | 3 | swift_binary( 4 | name = "Run", 5 | srcs = ["main.swift"], 6 | module_name = "Run", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "//Sources/App", 10 | "@swiftpkg_vapor//:Vapor", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/Info.plist -------------------------------------------------------------------------------- /examples/symlink_example/Sources/ImportFramework/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | 3 | swift_library( 4 | name = "ImportFramework", 5 | srcs = ["Import.swift"], 6 | module_name = "ImportFramework", 7 | visibility = ["//visibility:public"], 8 | deps = ["@swiftpkg_empty_framework//:EmptyFramework"], 9 | ) 10 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64_x86_64-simulator/EmptyFramework.framework/EmptyFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/ios-arm64_x86_64-simulator/EmptyFramework.framework/EmptyFramework -------------------------------------------------------------------------------- /examples/tca_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "tca_example", 7 | dependencies: [ 8 | .package( 9 | url: "https://github.com/pointfreeco/swift-composable-architecture", 10 | .upToNextMajor(from: "1.23.1") 11 | ), 12 | ] 13 | ) 14 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/find_rules.go: -------------------------------------------------------------------------------- 1 | package swift 2 | 3 | import "github.com/bazelbuild/bazel-gazelle/rule" 4 | 5 | func findRulesByKind(rules []*rule.Rule, kind string) []*rule.Rule { 6 | var results []*rule.Rule 7 | for _, r := range rules { 8 | if r.Kind() == kind { 9 | results = append(results, r) 10 | } 11 | } 12 | return results 13 | } 14 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/MoreCoolStuff.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | public enum MoreCoolStuff { 4 | public static func title() -> Text { 5 | return Text("Another Title", bundle: .module) 6 | } 7 | 8 | public static func image() -> Image { 9 | return Image("avatar", bundle: .module) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/A/EmptyFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/A/EmptyFramework -------------------------------------------------------------------------------- /ci/internal/providers.bzl: -------------------------------------------------------------------------------- 1 | """Provider definitions for the GitHub CI workflow generation.""" 2 | 3 | CITestParamsInfo = provider( 4 | doc = "Collects the test parameters for running CI tests.", 5 | fields = { 6 | "integration_test_params": """\ 7 | A `depset` of `struct` values as created by `ci_test_params.new_integration_test_params`.\ 8 | """, 9 | }, 10 | ) 11 | -------------------------------------------------------------------------------- /examples/messagekit_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "messagekit_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/MessageKit/MessageKit", from: "5.0.0"), 9 | .package(url: "https://github.com/onevcat/Kingfisher", from: "8.6.2"), 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/CoolStuff.swift: -------------------------------------------------------------------------------- 1 | public import SwiftUI 2 | 3 | public enum CoolStuff { 4 | public static func title() -> Text { 5 | return Text("Title", bundle: .module) 6 | } 7 | 8 | public static func image() -> Image { 9 | return Image("avatar", bundle: .module) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/grpc_example/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@rules_swift_package_manager//swiftpkg:defs.bzl", "swift_package_tool") 2 | 3 | # Puprosefully am not adding this to tidy. It is expensive to run and only 4 | # needs to be run when the Package.swift has been updated. 5 | swift_package_tool( 6 | name = "update_swift_packages", 7 | cmd = "update", 8 | package = "Package.swift", 9 | ) 10 | -------------------------------------------------------------------------------- /examples/phone_number_kit/Tests/PhoneNumberKitTests/ParseTests.swift: -------------------------------------------------------------------------------- 1 | @testable import PhoneNumberKit 2 | import XCTest 3 | 4 | class ParseTests: XCTestCase { 5 | let phoneNumberUtility = PhoneNumberUtility() 6 | 7 | func test_parse() throws { 8 | let phoneNumber = try phoneNumberUtility.parse("+33 6 89 017383") 9 | XCTAssertNotNil(phoneNumber) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/soto_example/Tests/SotoTests/SotoTests.swift: -------------------------------------------------------------------------------- 1 | @testable import SotoS3 2 | import XCTest 3 | 4 | class SotoTests: XCTestCase { 5 | func testSomething() { 6 | let bucketName = "soto-getting-started-bucket" 7 | let createBucketRequest = S3.CreateBucketRequest(bucket: bucketName) 8 | XCTAssertEqual(createBucketRequest.bucket, bucketName) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/Current/EmptyFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/symlink_example/third_party/empty_framework/Framework/EmptyFramework.xcframework/macos-arm64_x86_64/EmptyFramework.framework/Versions/Current/EmptyFramework -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleShortVersionString 6 | 1.0 7 | CFBundleVersion 8 | 1 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/Example-iOS.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.network.client 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/objc_code/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "trustkit", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/datatheorem/TrustKit.git", 7 | "state" : { 8 | "revision" : "a94f27be00a9811618ff92f0d3fc40dac8211ba7", 9 | "version" : "3.0.7" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/snapkit_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "snapkit", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/SnapKit/SnapKit.git", 7 | "state" : { 8 | "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4", 9 | "version" : "5.7.1" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/sqlite_data_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 6.0 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "sqlite_data_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/pointfreeco/sqlite-data", exact: "1.3.0"), 9 | .package(url: "https://github.com/pointfreeco/swift-tagged", from: "0.10.0"), 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /examples/language_modes_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "swift-log", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/apple/swift-log", 7 | "state" : { 8 | "revision" : "ce592ae52f982c847a4efc0dd881cc9eb32d29f2", 9 | "version" : "1.6.4" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "lottie-spm", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/airbnb/lottie-spm", 7 | "state" : { 8 | "revision" : "04f2fd18cc9404a0a0917265a449002674f24ec9", 9 | "version" : "4.5.2" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/shake_ios_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "shake-ios", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/shakebugs/shake-ios", 7 | "state" : { 8 | "revision" : "333755b89afb0549d5c02543485cc1d1ccbf51c6", 9 | "version" : "17.2.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/sqlite_data_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eou pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Test resolving the package via the `swift_package` repo. 10 | "${bazel}" run @swift_package//:resolve 11 | 12 | # Ensure that it builds. 13 | "${bazel}" build //... 14 | -------------------------------------------------------------------------------- /swiftpkg/internal/semver.bzl: -------------------------------------------------------------------------------- 1 | """Module for parsing semver strings into components""" 2 | 3 | def _major_minor(version): 4 | version_components = version.split(".") + ["0", "0"] 5 | version_major, version_minor = [int(x if x.isdigit() else "0") for x in version_components[0:2]] 6 | return (version_major, version_minor) 7 | 8 | semver = struct( 9 | major_minor = _major_minor, 10 | ) 11 | -------------------------------------------------------------------------------- /examples/aws_crt_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/language_modes_example/README.md: -------------------------------------------------------------------------------- 1 | # language_modes Example 2 | 3 | This example exersizes the ways Swift 5 vs 6 language modes can be set for a package based on 4 | https://www.swift.org/migration/documentation/swift-6-concurrency-migration-guide/swift6mode/#Package-manifest 5 | 6 | This ensures that packages are built with their correct language modes independent of the mode the 7 | base project is using. 8 | -------------------------------------------------------------------------------- /examples/nimble_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/phone_number_kit/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "phonenumberkit", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/marmelroy/PhoneNumberKit", 7 | "state" : { 8 | "revision" : "3946d6d533392755623f255a58211146cfc69817", 9 | "version" : "4.2.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/ALDMultiAdViewController.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/ALDMultiAdViewController.nib -------------------------------------------------------------------------------- /examples/stripe_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /.bcr/presubmit.yml: -------------------------------------------------------------------------------- 1 | bcr_test_module: 2 | module_path: "" 3 | matrix: 4 | platform: ["macos"] 5 | bazel: 6 | # This needs to exactly match the value used in .bazelversion at the root. 7 | - 7.5.0 8 | tasks: 9 | run_tests: 10 | name: "Run test module" 11 | platform: ${{ platform }} 12 | bazel: ${{ bazel }} 13 | test_targets: 14 | - "//bzlmod:e2e_test" 15 | -------------------------------------------------------------------------------- /examples/google_maps_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "ios-maps-sdk", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/googlemaps/ios-maps-sdk", 7 | "state" : { 8 | "revision" : "71e09fe4c751d59d7b1e524e998f786b429b1b14", 9 | "version" : "10.6.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/messagekit_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/3jf-B1-XNL-view-Iqa-CO-DFs.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgrindel/rules_swift_package_manager/HEAD/examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/AppLovinSDKResources.bundle/ALDMultiAdViewController.storyboardc/3jf-B1-XNL-view-Iqa-CO-DFs.nib -------------------------------------------------------------------------------- /examples/shake_ios_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/snapkit_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/stripe_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "stripe-ios-spm", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/stripe/stripe-ios-spm.git", 7 | "state" : { 8 | "revision" : "f4f28a0b358011089e4538059d443eccff183382", 9 | "version" : "24.25.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eou pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Test resolving the package via the `swift_package` repo. 10 | "${bazel}" run @swift_package//:resolve 11 | 12 | # Ensure that it builds. 13 | "${bazel}" build //... 14 | -------------------------------------------------------------------------------- /examples/tca_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | 10 | # Prevent hang retrieving external repositories in Bazel 7.1.1. 11 | build --experimental_worker_for_repo_fetching=off 12 | -------------------------------------------------------------------------------- /examples/xcmetrics_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /.bcr/metadata.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "homepage": "https://github.com/cgrindel/rules_swift_package_manager", 3 | "maintainers": [ 4 | { 5 | "email": "chuck.grindel@gmail.com", 6 | "github": "cgrindel", 7 | "name": "Chuck Grindel" 8 | } 9 | ], 10 | "repository": [ 11 | "github:cgrindel/rules_swift_package_manager" 12 | ], 13 | "versions": [], 14 | "yanked_versions": {} 15 | } 16 | -------------------------------------------------------------------------------- /examples/injectionnext_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "injectionnext", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/johnno1962/InjectionNext.git", 7 | "state" : { 8 | "revision" : "4688c589e5e3501010f8a3da8327e6dc8425c072", 9 | "version" : "1.5.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /examples/injectionnext_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/language_modes_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /examples/messagekit_example/README.md: -------------------------------------------------------------------------------- 1 | # messagekit Example 2 | 3 | The [MessageKit package](https://github.com/MessageKit/MessageKit) relies on SPM's [automatic 4 | detection of certain resource 5 | types](https://github.com/apple/swift-package-manager/blob/main/Documentation/PackageDescription.md#resource). 6 | 7 | [Related issue](https://github.com/cgrindel/rules_swift_package_manager/issues/491#issuecomment-1707369474). 8 | -------------------------------------------------------------------------------- /tools/remove_swift_build_dirs/remove_swift_build_dirs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | if [[ -z "${BUILD_WORKSPACE_DIRECTORY:-}" ]]; then 6 | echo >&2 "Expected BUILD_WORKSPACE_DIRECTORY to be defined." 7 | exit 1 8 | fi 9 | 10 | # Find and remove the Swift build directories 11 | find "${BUILD_WORKSPACE_DIRECTORY}" -type d -name ".build" -prune -exec rm -rf "{}" \; 12 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/Resources/Assets.xcassets/avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ai_chatbot_avatar.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/symlink_example/third_party/empty_framework/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "EmptyFramework", 7 | products: [ 8 | .library(name: "EmptyFramework", targets: ["EmptyFramework"]) 9 | ], 10 | targets: [ 11 | .binaryTarget(name: "EmptyFramework", path: "EmptyFramework.xcframework") 12 | ] 13 | ) 14 | -------------------------------------------------------------------------------- /tools/create_example/template_files/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | -------------------------------------------------------------------------------- /ci.bazelrc: -------------------------------------------------------------------------------- 1 | # CI Settings for Bazel 2 | 3 | # Output information about the flags that are applied 4 | common:ci --announce_rc 5 | 6 | # Disable color 7 | common:ci --color=no 8 | 9 | # Information about Github Action hosted runners 10 | # https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources 11 | build:ci --local_cpu_resources=2 12 | -------------------------------------------------------------------------------- /examples/aws_sdk_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and runs 13 | "${bazel}" run //:AwsSdkExample 14 | 15 | 16 | -------------------------------------------------------------------------------- /.github/workflows/commit_msg_check.yml: -------------------------------------------------------------------------------- 1 | name: Commit Message Check 2 | 3 | on: 4 | pull_request: 5 | branches: [main] 6 | types: [opened, edited, synchronize] 7 | 8 | jobs: 9 | conventional_commit_check: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: agenthunt/conventional-commit-checker-action@v2.0.1 13 | with: 14 | pr-title-regex: "^(fix|feat|chore|docs)(?:[(][^)]+[)])?: (.+)" 15 | -------------------------------------------------------------------------------- /bzlmod/workspace/Sources/MyLibrary/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 3 | 4 | swift_library( 5 | name = "MyLibrary", 6 | srcs = ["World.swift"], 7 | module_name = "MyLibrary", 8 | tags = ["manual"], 9 | visibility = ["//visibility:public"], 10 | ) 11 | 12 | bzlformat_pkg(name = "bzlformat") 13 | -------------------------------------------------------------------------------- /examples/messagekit_example/Sources/Models/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | 3 | swift_library( 4 | name = "Models", 5 | srcs = [ 6 | "MockMessage.swift", 7 | "MockUser.swift", 8 | ], 9 | module_name = "Models", 10 | tags = ["manual"], 11 | visibility = ["//visibility:public"], 12 | deps = ["@swiftpkg_messagekit//:MessageKit"], 13 | ) 14 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ai_chatbot_avatar.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "opencombine", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/OpenCombine/OpenCombine", 7 | "state" : { 8 | "revision" : "8576f0d579b27020beccbccc3ea6844f3ddfc2c2", 9 | "version" : "0.14.0" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /bzlmod/workspace/Tests/MyLibraryTests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test") 2 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 3 | 4 | swift_test( 5 | name = "MyLibraryTests", 6 | srcs = [ 7 | "MyLibraryTests.swift", 8 | ], 9 | module_name = "MyLibraryTests", 10 | deps = ["//Sources/MyLibrary"], 11 | ) 12 | 13 | bzlformat_pkg(name = "bzlformat") 14 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/package_with_resources_swift_6/Sources/CoolUI/Resources/Assets.xcassets/avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ai_chatbot_avatar.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/App/Configuration/configure.swift: -------------------------------------------------------------------------------- 1 | import Fluent 2 | import FluentSQLiteDriver 3 | import Vapor 4 | 5 | // configures your application 6 | public func configure(_ app: Application) throws { 7 | app.databases.use(.sqlite(.memory), as: .sqlite) 8 | app.migrations.add(CreateFooTable(), to: .sqlite) 9 | try app.autoMigrate().wait() 10 | 11 | // register routes 12 | try routes(app) 13 | } 14 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/bazel_repo_name_test.go: -------------------------------------------------------------------------------- 1 | package swift_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/internal/swift" 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestRepoNameFromIdentity(t *testing.T) { 11 | actual := swift.RepoNameFromIdentity("swift-argument-parser") 12 | assert.Equal(t, "swiftpkg_swift_argument_parser", actual) 13 | } 14 | -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_5_package/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.9 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "swift_5_package", 7 | products: [ 8 | .library(name: "Tools5", targets: ["Tools5"]), 9 | ], 10 | targets: [ 11 | // Target that inherits Swift 5 language mode from the package tools version 12 | .target(name: "Tools5"), 13 | ] 14 | ) 15 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "swift_package_registry_example", 7 | dependencies: [ 8 | .package(id: "apple.swift-collections", exact: "1.1.3"), 9 | .package(id: "apple.swift-nio", exact: "2.76.1"), 10 | .package(url: "https://github.com/apple/swift-async-algorithms", from: "1.1.1"), 11 | ] 12 | ) 13 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIcon.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /swiftpkg/internal/validations.bzl: -------------------------------------------------------------------------------- 1 | """Module for validating argument values.""" 2 | 3 | def _in_list(valid_values, value, err_msg = None): 4 | is_valid = False 5 | for valid_value in valid_values: 6 | if value == valid_value: 7 | is_valid = True 8 | break 9 | if not is_valid and err_msg != None: 10 | fail(err_msg, value) 11 | return is_valid 12 | 13 | validations = struct( 14 | in_list = _in_list, 15 | ) 16 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/module_name.go: -------------------------------------------------------------------------------- 1 | package swift 2 | 3 | import ( 4 | "github.com/bazelbuild/bazel-gazelle/rule" 5 | ) 6 | 7 | const ( 8 | ModuleNameAttrName = "module_name" 9 | ) 10 | 11 | // ModuleName returns the module name from a Swift rule declaration. 12 | func ModuleName(r *rule.Rule) string { 13 | moduleName := r.AttrString(ModuleNameAttrName) 14 | if moduleName != "" { 15 | return moduleName 16 | } 17 | return r.Name() 18 | } 19 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/macOS/macOS.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | com.apple.security.network.client 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/App/Models/Foo.swift: -------------------------------------------------------------------------------- 1 | import Fluent 2 | import Foundation 3 | 4 | public final class Foo: Model { 5 | public static let schema = "foos" 6 | 7 | @ID(key: .id) 8 | public var id: UUID? 9 | 10 | @Timestamp(key: "created_at", on: .create, format: .iso8601(withMilliseconds: true)) 11 | public var createdAt: Date? 12 | 13 | @Field(key: "name") 14 | public var name: String? 15 | 16 | public init() {} 17 | } 18 | -------------------------------------------------------------------------------- /examples/vapor_example/swift/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "vapor_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/vapor/vapor.git", exact: "4.117.0"), 9 | .package(url: "https://github.com/vapor/fluent.git", exact: "4.13.0"), 10 | .package(url: "https://github.com/vapor/fluent-sqlite-driver.git", exact: "4.8.1"), 11 | ] 12 | ) 13 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/imports.go: -------------------------------------------------------------------------------- 1 | package swift 2 | 3 | import ( 4 | "github.com/bazelbuild/bazel-gazelle/config" 5 | "github.com/bazelbuild/bazel-gazelle/rule" 6 | ) 7 | 8 | // Imports returns the imports for Gazelle indexing. 9 | func Imports(rules []*rule.Rule) []any { 10 | imports := make([]interface{}, len(rules)) 11 | for idx, r := range rules { 12 | imports[idx] = r.PrivateAttr(config.GazelleImportsKey) 13 | } 14 | return imports 15 | } 16 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/AppIconAppStore.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/LottieExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 12/9/22. 2 | // Copyright © 2022 Airbnb Inc. All rights reserved. 3 | 4 | import UIKit 5 | 6 | @main 7 | class AppDelegate: UIResponder, UIApplicationDelegate { 8 | func application( 9 | _ application: UIApplication, 10 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) 11 | -> Bool 12 | { 13 | return true 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/PrintVersionObjc/main.m: -------------------------------------------------------------------------------- 1 | // #import "Foundation/Foundation.h"; 2 | @import Foundation; 3 | @import FooSwift; 4 | 5 | int main(int argc, char **argv) { 6 | @autoreleasepool { 7 | OIFooSwiftVersionInfo *verInfo = [[OIFooSwiftVersionInfo alloc] init]; 8 | NSString *version = verInfo.myVersion; 9 | [version writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:NULL]; 10 | } 11 | return 0; 12 | } 13 | -------------------------------------------------------------------------------- /tools/create_example/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | 3 | bzlformat_pkg(name = "bzlformat") 4 | 5 | sh_binary( 6 | name = "create_example", 7 | srcs = ["create_example.sh"], 8 | # data = ["//tools/create_example/template_files"], 9 | data = glob(["template_files/**"]), 10 | deps = [ 11 | "@bazel_tools//tools/bash/runfiles", 12 | "@cgrindel_bazel_starlib//shlib/lib:fail", 13 | ], 14 | ) 15 | -------------------------------------------------------------------------------- /examples/kscrash_example/swift/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@rules_swift_package_manager//swiftpkg:defs.bzl", "swift_package_tool") 2 | 3 | # Puprosefully am not adding this to tidy. It is expensive to run and only 4 | # needs to be run when the Package.swift has been updated. 5 | swift_package_tool( 6 | name = "update_swift_packages", 7 | cmd = "update", 8 | package = "swift/Package.swift", # relative path to root of workspace 9 | visibility = ["//:__subpackages__"], 10 | ) 11 | -------------------------------------------------------------------------------- /examples/lottie_ios_example/README.md: -------------------------------------------------------------------------------- 1 | # lottie_ios Example 2 | 3 | This example was copied from [the example in 4 | lottie-spm](https://github.com/airbnb/lottie-spm/tree/main/Example/iOS). It was modified slightly to 5 | ensure that it built and launched successfully. 6 | 7 | ## Why is this interesting? 8 | 9 | The [lottie-spm](https://github.com/airbnb/lottie-spm) downloads a dynamic xcframework. This 10 | exercises the xcframework detection logic in `rules_swift_package_manager`. 11 | -------------------------------------------------------------------------------- /examples/objc_code/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # Generate Swift external deps and update build files 12 | "${bazel}" run //:tidy 13 | 14 | # Ensure that it builds and tests pass 15 | "${bazel}" test //... 16 | -------------------------------------------------------------------------------- /examples/resources_example/swift/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@rules_swift_package_manager//swiftpkg:defs.bzl", "swift_package_tool") 2 | 3 | # Puprosefully am not adding this to tidy. It is expensive to run and only 4 | # needs to be run when the Package.swift has been updated. 5 | swift_package_tool( 6 | name = "update_swift_packages", 7 | cmd = "update", 8 | package = "swift/Package.swift", # relative path to root of workspace 9 | visibility = ["//:__subpackages__"], 10 | ) 11 | -------------------------------------------------------------------------------- /examples/soto_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # Generate Swift external deps and update build files 12 | "${bazel}" run //:tidy 13 | 14 | # Ensure that it builds and tests pass 15 | "${bazel}" test //... 16 | -------------------------------------------------------------------------------- /examples/kscrash_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # Generate Swift external deps and update build files 12 | "${bazel}" run //:tidy 13 | 14 | # Ensure that it builds and tests pass 15 | "${bazel}" test //... 16 | -------------------------------------------------------------------------------- /examples/kscrash_example/swift/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "originHash" : "83db2defc444e7a8993a0824a55100b85b938d077db89bc886da1fe6860a4dcb", 3 | "pins" : [ 4 | { 5 | "identity" : "kscrash", 6 | "kind" : "remoteSourceControl", 7 | "location" : "https://github.com/kstenerud/KSCrash", 8 | "state" : { 9 | "revision" : "0c515d8533318fc882f5b316abb17f2110fb4f9e", 10 | "version" : "2.2.0" 11 | } 12 | } 13 | ], 14 | "version" : 3 15 | } 16 | -------------------------------------------------------------------------------- /examples/phone_number_kit/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # Generate Swift external deps and update build files 12 | "${bazel}" run //:tidy 13 | 14 | # Ensure that it builds and tests pass 15 | "${bazel}" test //... 16 | -------------------------------------------------------------------------------- /examples/soto_example/README.md: -------------------------------------------------------------------------------- 1 | # Soto Example 2 | 3 | This example demonstrates support for clang, non-header files being included in other clang 4 | source files. For example, the file 5 | `external/swiftpkg_soto_core/Sources/CSotoExpat/xmltok.c` has a `#include "xmltok_impl.c"`. The 6 | file `external/swiftpkg_soto_core/Sources/CSotoExpat/xmltok_impl.c` has a comment stating 7 | `This file is included!`. Instead of including `xmltok_impl.c` in `srcs`, it should included in 8 | `textual_hdrs`. 9 | -------------------------------------------------------------------------------- /examples/symlink_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # Generate Swift external deps and update build files 12 | "${bazel}" run //:tidy 13 | 14 | # Ensure that it builds and tests pass 15 | "${bazel}" test //... 16 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/files.go: -------------------------------------------------------------------------------- 1 | package swift 2 | 3 | import "path/filepath" 4 | 5 | // FilterFiles returns a list of Swift source files excluding `Package.swift`. 6 | func FilterFiles(paths []string) []string { 7 | var results []string 8 | for _, path := range paths { 9 | base := filepath.Base(path) 10 | ext := filepath.Ext(base) 11 | if ext == ".swift" && base != "Package.swift" { 12 | results = append(results, path) 13 | } 14 | } 15 | return results 16 | } 17 | -------------------------------------------------------------------------------- /examples/grpc_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | 10 | # GRPC requires C++17 or later. 11 | build --cxxopt='-std=c++17' 12 | build --host_cxxopt='-std=c++17' 13 | 14 | # Force building for macOS 15.0: 15 | build --macos_minimum_os=15.0 16 | build --host_macos_minimum_os=15.0 -------------------------------------------------------------------------------- /examples/vapor_example/Tests/AppTests/AppTests.swift: -------------------------------------------------------------------------------- 1 | @testable import App 2 | import XCTVapor 3 | 4 | final class AppTests: XCTestCase { 5 | func testHelloWorld() throws { 6 | let app = Application(.testing) 7 | defer { app.shutdown() } 8 | try configure(app) 9 | 10 | try app.test(.GET, "hello/Timmy", afterResponse: { res in 11 | XCTAssertEqual(res.status, .ok) 12 | XCTAssertEqual(res.body.string, "Hello, Timmy!") 13 | }) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/MyAmazingModule/Tests/MyAmazingModuleTests/MyAmazingModuleTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import MyAmazingModule 3 | 4 | final class MyAmazingModuleTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Tests/GreetingsFrameworkTests/NamedGreetingTests.swift: -------------------------------------------------------------------------------- 1 | @testable import GreetingsFramework 2 | import XCTest 3 | 4 | class NamedGreetingTests: XCTestCase { 5 | func test_value() throws { 6 | let ng = NamedGreeting( 7 | MorningGreeting(), 8 | CustomNameProvider() 9 | ) 10 | XCTAssertEqual(ng.value, "Good morning, Jim!") 11 | } 12 | } 13 | 14 | struct CustomNameProvider: NameProvider { 15 | var name = "Jim" 16 | } 17 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/LocalPackageB/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "originHash" : "7a096f9d7ce341989d1757b0f057e5b9a4f0b39c70ef5eb08c0154ecc7e9b624", 3 | "pins" : [ 4 | { 5 | "identity" : "opencombine", 6 | "kind" : "remoteSourceControl", 7 | "location" : "https://github.com/OpenCombine/OpenCombine", 8 | "state" : { 9 | "revision" : "8576f0d579b27020beccbccc3ea6844f3ddfc2c2", 10 | "version" : "0.14.0" 11 | } 12 | } 13 | ], 14 | "version" : 3 15 | } 16 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/files_test.go: -------------------------------------------------------------------------------- 1 | package swift_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/internal/swift" 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestFilterFiles(t *testing.T) { 11 | values := []string{"Foo.swift", "README.md", "Bar/Hello.swift", "Package.swift"} 12 | 13 | actual := swift.FilterFiles(values) 14 | expected := []string{"Foo.swift", "Bar/Hello.swift"} 15 | assert.Equal(t, expected, actual) 16 | } 17 | -------------------------------------------------------------------------------- /examples/injectionnext_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "injectionnext_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/johnno1962/InjectionNext.git", from: "1.5.0"), 9 | ], 10 | targets: [ 11 | .testTarget( 12 | name: "SomeTest", 13 | dependencies: [.product(name: "InjectionNext", package: "InjectionNext")], 14 | path: "Tests" 15 | ) 16 | ] 17 | ) 18 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/MyAmazingModule/Sources/MyAmazingModule/MyAmazingModule.swift: -------------------------------------------------------------------------------- 1 | public class QuickSort { 2 | public init() {} 3 | 4 | public func sort(_ array: [Int]) -> [Int] { 5 | if array.count <= 1 { return array } 6 | 7 | let pivot = array[array.count/2] 8 | let less = array.filter { $0 < pivot } 9 | let equal = array.filter { $0 == pivot } 10 | let greater = array.filter { $0 > pivot } 11 | 12 | return sort(less) + equal + sort(greater) 13 | } 14 | } -------------------------------------------------------------------------------- /examples/google_maps_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | 15 | # GH1110: Execute in a test and ensure that it works. 16 | # Build the app 17 | # "${bazel}" run //GoogleMapsExample:iosapp 18 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/main.swift: -------------------------------------------------------------------------------- 1 | import AsyncAlgorithms 2 | import Collections 3 | import NIO 4 | let orderedSet = OrderedSet([1, 2, 3, 4, 5]) 5 | 6 | print("Hello, world!") 7 | print(orderedSet) 8 | 9 | let buffer = ByteBuffer(string: "10101010101") 10 | print(buffer) 11 | 12 | let stream = AsyncStream { continuation in 13 | continuation.yield(1) 14 | continuation.yield(2) 15 | continuation.yield(3) 16 | continuation.finish() 17 | } 18 | 19 | for await value in stream { 20 | print(value) 21 | } 22 | -------------------------------------------------------------------------------- /ci/internal/bzlmod_modes.bzl: -------------------------------------------------------------------------------- 1 | """Module for converting bzlmod mode values.""" 2 | 3 | def _to_bool(bzlmod_mode): 4 | if bzlmod_mode == "enabled": 5 | return True 6 | elif bzlmod_mode == "disabled": 7 | return False 8 | fail("Unrecognized bzlmod_mode: {}".format(bzlmod_mode)) 9 | 10 | def _from_bool(enable_bzlmod): 11 | if enable_bzlmod: 12 | return "enabled" 13 | else: 14 | return "disabled" 15 | 16 | bzlmod_modes = struct( 17 | to_bool = _to_bool, 18 | from_bool = _from_bool, 19 | ) 20 | -------------------------------------------------------------------------------- /examples/language_modes_example/third_party/swift_5_package_v6/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.9 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "swift_5_package_v6", 7 | products: [ 8 | .library(name: "Tools5_Mode6", targets: ["Tools5_Mode6"]), 9 | ], 10 | targets: [ 11 | // Target that inherits Swift 6 language mode from swiftLanguageVersions in Swift 5 package 12 | .target(name: "Tools5_Mode6"), 13 | ], 14 | swiftLanguageVersions: [.version("6"), .v5] 15 | ) 16 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/Sources/PrintVersion/PrintVersion.swift: -------------------------------------------------------------------------------- 1 | import Foo 2 | import SimpleCore 3 | 4 | @main 5 | enum PrintVersion { 6 | static func main() { 7 | let verInfo = VersionInfo() 8 | let fooVerInfo = FooVersionInfo() 9 | if verInfo.version == fooVerInfo.version { 10 | print(verInfo.version) 11 | } else { 12 | print("Versions do not match") 13 | print("verInfo: \(verInfo.version), fooVerInfo: \(fooVerInfo.version)") 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Sources/MyExecutable/MyExecutable.swift: -------------------------------------------------------------------------------- 1 | import ArgumentParser 2 | import GreetingsFramework 3 | import MyLibrary 4 | import NotThatAmazingModule 5 | 6 | @main 7 | struct MyExecutable: AsyncParsableCommand { 8 | mutating func run() async throws { 9 | let namedGreeting = NamedGreeting(MorningGreeting(), World()) 10 | print(namedGreeting.value) 11 | 12 | let complexClass = ComplexClass(name: "Olivia", age: 30, favoriteColors: ["blue"]) 13 | print(complexClass.greet()) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/NotThatAmazingModule/Tests/NotThatAmazingModuleTests/NotThatAmazingModuleTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import NotThatAmazingModule 3 | 4 | final class NotThatAmazingModuleTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/tca_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # GH249: Do not update build files until the Gazelle extension supports the 10 | # shape of this example. 11 | # # Generate Swift external deps and update build files 12 | # bazel run //:tidy 13 | # "${bazel}" run //:swift_update_pkgs 14 | 15 | # Ensure that it builds and tests pass 16 | "${bazel}" test //... 17 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "github>cgrindel/renovate_presets:ruleset_base", 5 | "github>cgrindel/renovate_presets:cgrindel_default" 6 | ], 7 | "postUpgradeTasks": { 8 | "commands": [ 9 | "./do_renovate_post_upgrade" 10 | ], 11 | "executionMode": "branch" 12 | }, 13 | "packageRules": [ 14 | { 15 | "matchPackagePatterns": ["buildtools"], 16 | "matchManagers": ["gomod"], 17 | "enabled": false 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/rule_kinds_test.go: -------------------------------------------------------------------------------- 1 | package swift_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/internal/swift" 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestIsSwiftRuleKind(t *testing.T) { 11 | assert.True(t, swift.IsSwiftRuleKind(swift.LibraryRuleKind)) 12 | assert.True(t, swift.IsSwiftRuleKind(swift.BinaryRuleKind)) 13 | assert.True(t, swift.IsSwiftRuleKind(swift.TestRuleKind)) 14 | assert.False(t, swift.IsSwiftRuleKind("go_library")) 15 | } 16 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftbin/find_swift_bin.go: -------------------------------------------------------------------------------- 1 | package swiftbin 2 | 3 | import ( 4 | "os/exec" 5 | "runtime" 6 | ) 7 | 8 | // SwiftBinBase returns the base name for the Swift executable. 9 | func SwiftBinBase() string { 10 | switch runtime.GOOS { 11 | case "windows": 12 | return "swift.exe" 13 | default: 14 | return "swift" 15 | } 16 | } 17 | 18 | // FindSwiftBinPath returns the path to the Swift executable. 19 | func FindSwiftBinPath() (string, error) { 20 | swiftBinBase := SwiftBinBase() 21 | return exec.LookPath(swiftBinBase) 22 | } 23 | -------------------------------------------------------------------------------- /examples/firebase_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "firebase_example", 7 | dependencies: [ 8 | .package( 9 | url: "https://github.com/firebase/firebase-ios-sdk", 10 | .upToNextMajor(from: "12.6.0") 11 | ), 12 | // Used by crashlytics example 13 | .package( 14 | url: "https://github.com/ashleymills/Reachability.swift.git", 15 | .upToNextMajor(from: "5.2.4") 16 | ), 17 | ] 18 | ) 19 | -------------------------------------------------------------------------------- /examples/grpc_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "grpc_example", 7 | dependencies: [ 8 | .package(url: "https://github.com/grpc/grpc-swift.git", exact: "2.2.3"), 9 | .package(url: "https://github.com/grpc/grpc-swift-protobuf.git", exact: "1.3.1"), 10 | .package(url: "https://github.com/grpc/grpc-swift-nio-transport.git", exact: "1.2.3"), 11 | .package(url: "https://github.com/apple/swift-protobuf.git", exact: "1.33.3"), 12 | ] 13 | ) 14 | -------------------------------------------------------------------------------- /examples/language_modes_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "language_modes_example", 7 | dependencies: [ 8 | .package(path: "third_party/swift_5_package"), 9 | .package(path: "third_party/swift_5_package_v6"), 10 | .package(path: "third_party/swift_6_package"), 11 | 12 | // At least one remote dependency is needed to generate Package.resolved 13 | .package(url: "https://github.com/apple/swift-log", from: "1.6.4"), 14 | ] 15 | ) 16 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Sources/MyExecutable/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | 3 | swift_binary( 4 | name = "MyExecutable", 5 | srcs = ["MyExecutable.swift"], 6 | module_name = "MyExecutable", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "//Sources/MyLibrary", 10 | "@swiftpkg_my_local_package//:GreetingsFramework", 11 | "@swiftpkg_notthatamazingmodule//:NotThatAmazingModule", 12 | "@swiftpkg_swift_argument_parser//:ArgumentParser", 13 | ], 14 | ) 15 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/TopShelfImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /tools/remove_swift_build_dirs/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | 3 | bzlformat_pkg(name = "bzlformat") 4 | 5 | sh_binary( 6 | name = "remove_swift_build_dirs", 7 | srcs = ["remove_swift_build_dirs.sh"], 8 | ) 9 | 10 | sh_test( 11 | name = "remove_swift_build_dirs_test", 12 | srcs = ["remove_swift_build_dirs_test.sh"], 13 | data = [":remove_swift_build_dirs"], 14 | deps = [ 15 | "@bazel_tools//tools/bash/runfiles", 16 | "@cgrindel_bazel_starlib//shlib/lib:assertions", 17 | ], 18 | ) 19 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swiftpkg/platform.go: -------------------------------------------------------------------------------- 1 | package swiftpkg 2 | 3 | import "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/internal/spdesc" 4 | 5 | // A Platform represents a Swift package platform. 6 | type Platform struct { 7 | Name string 8 | Version string 9 | } 10 | 11 | // NewPlatfromFromManifestInfo returns a Swift package platform from manifest information. 12 | func NewPlatfromFromManifestInfo(descP *spdesc.Platform) *Platform { 13 | return &Platform{ 14 | Name: descP.Name, 15 | Version: descP.Version, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/firebase_example/crashlytics/CrashlyticsSwiftUIExample/Assets.xcassets/AppIconTopShelfImage.brandassets/TopShelfImageWide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/vapor_example/do_test: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o errexit -o nounset -o pipefail 4 | 5 | # Use the Bazel binary specified by the integration test. Otherise, fall back 6 | # to bazel. 7 | bazel="${BIT_BAZEL_BINARY:-bazel}" 8 | 9 | # Generate Swift external deps and update build files 10 | "${bazel}" run //:tidy 11 | 12 | # Ensure that it builds and tests pass 13 | "${bazel}" test //... 14 | 15 | # This example is run for MacOS and Linux. Run //:update_swift_packages to 16 | # ensure that it works on both platforms. 17 | "${bazel}" run //:update_swift_packages 18 | -------------------------------------------------------------------------------- /bzlmod/workspace/Sources/MyExecutable/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 3 | 4 | swift_binary( 5 | name = "MyExecutable", 6 | srcs = ["MyExecutable.swift"], 7 | module_name = "MyExecutable", 8 | visibility = ["//visibility:public"], 9 | deps = [ 10 | "//Sources/MyLibrary", 11 | "@swiftpkg_swift_argument_parser//:ArgumentParser", 12 | "@swiftpkg_swift_log//:Logging", 13 | ], 14 | ) 15 | 16 | bzlformat_pkg(name = "bzlformat") 17 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/README.md: -------------------------------------------------------------------------------- 1 | # skip_local_transitive_dependencies Example 2 | 3 | This example demonstrates setting the `resolve_transitive_local_dependencies` option on 4 | `swift_deps.from_package` to `False` to disable resolving transitive local dependencies. 5 | 6 | Setting `resolve_transitive_local_dependencies` to `False` does not disable resolving 7 | transitive remote dependencies from either local or remote dependencies. It only disables 8 | resolving transitive dependencies from a direct local package dependency to other local 9 | packages. 10 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/stringslices/map.go: -------------------------------------------------------------------------------- 1 | package stringslices 2 | 3 | // A MapFn represents a function for mapping/converting string slice values another string value. 4 | type MapFn func(value string) string 5 | 6 | // Map creates a new slice of strings where the value for each string is the result of applying the 7 | // map function to each value in the original slice. 8 | func Map(values []string, mapFn MapFn) []string { 9 | results := make([]string, len(values)) 10 | for idx, val := range values { 11 | results[idx] = mapFn(val) 12 | } 13 | return results 14 | } 15 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "MySwiftPackage", 7 | dependencies: [ 8 | .package(url: "https://github.com/apple/swift-argument-parser", from: "1.6.2"), 9 | .package(url: "https://github.com/apple/swift-log", from: "1.6.4"), 10 | .package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.58.7"), 11 | .package(path: "third_party/my_local_package"), 12 | .package(path: "third_party/NotThatAmazingModule"), 13 | ] 14 | ) 15 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/implicit_resource_localization/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 6.1 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "implicit_resource_localization", 8 | defaultLocalization: "en", 9 | products: [ 10 | .library(name: "implicit_resource_localization", targets: ["implicit_resource_localization"]), 11 | ], 12 | targets: [ 13 | .target(name: "implicit_resource_localization"), 14 | ] 15 | ) 16 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 2 | 3 | bzlformat_pkg(name = "bzlformat") 4 | 5 | sh_test( 6 | name = "generate_modulemap_test", 7 | srcs = ["generate_modulemap_test.sh"], 8 | data = [ 9 | "//swiftpkg/tests/generate_modulemap_tests/PrintVersionObjc", 10 | "//swiftpkg/tests/generate_modulemap_tests/Sources/PrintVersion", 11 | ], 12 | deps = [ 13 | "@bazel_tools//tools/bash/runfiles", 14 | "@cgrindel_bazel_starlib//shlib/lib:assertions", 15 | ], 16 | ) 17 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/swift/label_str_test.go: -------------------------------------------------------------------------------- 1 | package swift_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/bazelbuild/bazel-gazelle/label" 7 | "github.com/cgrindel/rules_swift_package_manager/tools/swift_deps_index/internal/swift" 8 | "github.com/stretchr/testify/assert" 9 | ) 10 | 11 | func TestLabelStr(t *testing.T) { 12 | t.Run("round trip", func(t *testing.T) { 13 | l := label.New("my_repo", "path/to/pkg", "foo") 14 | ls := swift.NewLabelStr(&l) 15 | newl, err := swift.NewLabel(ls) 16 | assert.NoError(t, err) 17 | assert.Equal(t, &l, newl) 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Bazel symlinks 2 | bazel-* 3 | 4 | # Ignore Bazel lock files 5 | **/MODULE.bazel.lock 6 | 7 | # Ignore Swift and Xcode stuff 8 | .DS_Store 9 | **/.build 10 | **/Packages 11 | **/*.xcodeproj 12 | **/xcuserdata/ 13 | **/DerivedData/ 14 | **/.swiftpm/config/registries.json 15 | **/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 16 | **/.netrc 17 | 18 | # Ignore the local.bazelrc 19 | local.bazelrc 20 | 21 | # Ignore vscode settings 22 | .vscode 23 | 24 | # This is generated by the firebase example's tools/bazel. 25 | examples/firebase_example/tools/bazel_for_xcodeproj 26 | -------------------------------------------------------------------------------- /examples/pkg_manifest_minimal/third_party/my_local_package/Sources/GreetingsFramework/NamedGreeting.swift: -------------------------------------------------------------------------------- 1 | public struct NamedGreeting { 2 | public var greetingProvider: GreetingProvider 3 | public var nameProvider: NameProvider 4 | 5 | public init( 6 | _ greetingProvider: GreetingProvider, 7 | _ nameProvider: NameProvider 8 | ) { 9 | self.greetingProvider = greetingProvider 10 | self.nameProvider = nameProvider 11 | } 12 | 13 | public var value: String { 14 | return "\(greetingProvider.greeting), \(nameProvider.name)!" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /swiftpkg/internal/modulemap_parser/errors.bzl: -------------------------------------------------------------------------------- 1 | """Definition for errors module.""" 2 | 3 | def _create_error(msg, child_errors = []): 4 | """Create an error `struct`. 5 | 6 | Args: 7 | msg: A `string` describing the error. 8 | child_errors: A `list` of any errors that are related to this error. 9 | 10 | Returns: 11 | Returns a `struct` representing the error. 12 | """ 13 | return struct( 14 | msg = msg, 15 | child_errors = child_errors, 16 | ) 17 | 18 | # MARK: - Namespace 19 | 20 | errors = struct( 21 | new = _create_error, 22 | ) 23 | -------------------------------------------------------------------------------- /examples/soto_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | 10 | # The CNIOBoringSSL uses C++14 features like 'enable_if_t' macro support. 11 | # For more details on how to enable this in Bazel: 12 | # https://stackoverflow.com/questions/40260242/how-to-set-c-standard-version-when-build-with-bazel/43388168#43388168 13 | # Required by swift-nio-ssl 14 | build --cxxopt='-std=c++14' 15 | -------------------------------------------------------------------------------- /swiftpkg/internal/modulemap_parser/collection_results.bzl: -------------------------------------------------------------------------------- 1 | """Definition for collection_results module.""" 2 | 3 | def _create(declarations, count): 4 | """Creates a collection result `struct`. 5 | 6 | Args: 7 | declarations: The declarations that were collected. 8 | count: The number of tokens that were collected. 9 | 10 | Returns: 11 | A `struct` representing the data that was collected. 12 | """ 13 | return struct( 14 | declarations = declarations, 15 | count = count, 16 | ) 17 | 18 | collection_results = struct( 19 | new = _create, 20 | ) 21 | -------------------------------------------------------------------------------- /examples/language_modes_example/tests.swift: -------------------------------------------------------------------------------- 1 | import Tools5 2 | import Tools5_Mode6 3 | import Tools6 4 | import Tools6_Mode5 5 | 6 | import XCTest 7 | 8 | final class LanguageModeTests: XCTestCase { 9 | func test_Tools5() { 10 | XCTAssertEqual(Tools5.getLanguageMode(), 5) 11 | } 12 | 13 | func test_Tools5_Mode6() { 14 | XCTAssertEqual(Tools5_Mode6.getLanguageMode(), 6) 15 | } 16 | 17 | func test_Tools6() { 18 | XCTAssertEqual(Tools6.getLanguageMode(), 6) 19 | } 20 | 21 | func test_Tools6_Mode5() { 22 | XCTAssertEqual(Tools6_Mode5.getLanguageMode(), 5) 23 | } 24 | } -------------------------------------------------------------------------------- /examples/resources_example/third_party/app_lovin_sdk/Sources/AppLovinSDKResources/include/ALResourceManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ALResourceManager.h 3 | // AppLovinSDK 4 | // 5 | // Created by Ritam Sarmah on 11/3/21. 6 | // Copyright © 2021 AppLovin Corporation. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ALResourceManager : NSObject 14 | 15 | @property (class, nonatomic, strong, readonly) NSURL *resourceBundleURL; 16 | 17 | - (instancetype)init NS_UNAVAILABLE; 18 | + (instancetype)new NS_UNAVAILABLE; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /.github/actions/configure_remote_cache_auth/action.yml: -------------------------------------------------------------------------------- 1 | name: Configure Remote Cache 2 | 3 | inputs: 4 | buildbuddy_api_key: 5 | description: The BuildBuddy API key. 6 | required: true 7 | 8 | runs: 9 | using: composite 10 | steps: 11 | - name: Write the BuildBuddy API Auth 12 | if: ${{ inputs.buildbuddy_api_key != '' }} 13 | shell: bash 14 | env: 15 | BUILDBUDDY_API_KEY: ${{ inputs.BUILDBUDDY_API_KEY }} 16 | run: | 17 | cat >> "shared.bazelrc" < /dev/null && pwd)" 6 | 7 | # Use the Bazel binary specified by the integration test. Otherise, fall back 8 | # to bazel. 9 | bazel="${BIT_BAZEL_BINARY:-bazel}" 10 | 11 | # GH249: Do not update build files until the Gazelle extension supports the 12 | # shape of this example. 13 | # # Generate Swift external deps and update build files 14 | # bazel run //:tidy 15 | # "${bazel}" run //:swift_update_pkgs 16 | 17 | # Ensure that it builds and tests pass 18 | "${bazel}" test //... 19 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "skip_local_transitive_dependencies_example", 7 | dependencies: [ 8 | // The `skip_local_transitive_dependencies_example` binary only depends directly on 9 | // LocalPackageA, but LocalPackageB must also be added as a direct dependency because 10 | // `resolve_transitive_local_dependencies` is set to `False` in the MODULE.bazel file. 11 | .package(path: "LocalPackageA"), 12 | .package(path: "LocalPackageB"), 13 | ] 14 | ) 15 | -------------------------------------------------------------------------------- /examples/grpc_example/sources/client/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | 3 | swift_binary( 4 | name = "client", 5 | srcs = ["client_main.swift"], 6 | module_name = "Client", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "@swiftpkg_grpc_swift//:GRPCCore", 10 | "@swiftpkg_grpc_swift_nio_transport//:GRPCNIOTransportHTTP2", 11 | "//protos/echo_service:echo_service_swift_client_proto", 12 | "//protos/echo_service/requests:echo_request_swift_proto", 13 | "//protos/echo_service/responses:echo_response_swift_proto", 14 | ], 15 | ) 16 | -------------------------------------------------------------------------------- /examples/grpc_example/sources/server/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | 3 | swift_binary( 4 | name = "server", 5 | srcs = ["server_main.swift"], 6 | module_name = "Server", 7 | visibility = ["//visibility:public"], 8 | deps = [ 9 | "@swiftpkg_grpc_swift//:GRPCCore", 10 | "@swiftpkg_grpc_swift_nio_transport//:GRPCNIOTransportHTTP2", 11 | "//protos/echo_service:echo_service_swift_server_proto", 12 | "//protos/echo_service/requests:echo_request_swift_proto", 13 | "//protos/echo_service/responses:echo_response_swift_proto", 14 | ], 15 | ) 16 | -------------------------------------------------------------------------------- /swiftpkg/tests/spm_versions_tests.bzl: -------------------------------------------------------------------------------- 1 | """Tests for spm_versions module.""" 2 | 3 | load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") 4 | load("//spm:defs.bzl", "spm_versions") 5 | 6 | def _extract_test(ctx): 7 | env = unittest.begin(ctx) 8 | 9 | raw_str = "Swift Package Manager - Swift 5.4.0" 10 | actual = spm_versions.extract(raw_str) 11 | asserts.equals(env, "5.4.0", actual) 12 | 13 | return unittest.end(env) 14 | 15 | extract_test = unittest.make(_extract_test) 16 | 17 | def spm_versions_test_suite(): 18 | return unittest.suite( 19 | "spm_versions_tests", 20 | extract_test, 21 | ) 22 | -------------------------------------------------------------------------------- /ci/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@bazel_skylib//:bzl_library.bzl", "bzl_library") 2 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 3 | 4 | bzlformat_pkg(name = "bzlformat") 5 | 6 | bzl_library( 7 | name = "defs", 8 | srcs = ["defs.bzl"], 9 | visibility = ["//visibility:public"], 10 | deps = [ 11 | "//ci/internal:bzlmod_modes", 12 | "//ci/internal:ci_integration_test_params", 13 | "//ci/internal:ci_workflow", 14 | "//ci/internal:providers", 15 | ], 16 | ) 17 | 18 | filegroup( 19 | name = "all_files", 20 | srcs = glob(["*"]), 21 | visibility = ["//:__subpackages__"], 22 | ) 23 | -------------------------------------------------------------------------------- /examples/messagekit_example/Tests/ModelTests/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test") 2 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 3 | 4 | ios_unit_test( 5 | name = "ModelTests", 6 | minimum_os_version = "13.0", 7 | runner = "@build_bazel_rules_apple//apple/testing/default_runner:ios_xctestrun_ordered_runner", 8 | deps = [":ModelTestsLib"], 9 | ) 10 | 11 | swift_library( 12 | name = "ModelTestsLib", 13 | testonly = True, 14 | srcs = ["ModelsTests.swift"], 15 | module_name = "ModelTests", 16 | tags = ["manual"], 17 | deps = ["//Sources/Models"], 18 | ) 19 | -------------------------------------------------------------------------------- /examples/shake_ios_example/ShakeIOSExample/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // ShakeIOSExample 4 | // 5 | // Created by Chuck Grindel on 9/27/23. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct ContentView: View { 11 | var body: some View { 12 | VStack { 13 | Image(systemName: "globe") 14 | .imageScale(.large) 15 | .foregroundColor(.accentColor) 16 | Text("Hello, world!") 17 | } 18 | .padding() 19 | } 20 | } 21 | 22 | struct ContentView_Previews: PreviewProvider { 23 | static var previews: some View { 24 | ContentView() 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/skip_local_transitive_dependencies_example/LocalPackageA/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.9 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "LocalPackageA", 8 | products: [ 9 | .library(name: "LocalPackageA", targets: ["LocalPackageA"]), 10 | ], 11 | dependencies: [ 12 | .package(path: "../LocalPackageB"), 13 | ], 14 | targets: [ 15 | .target( 16 | name: "LocalPackageA", 17 | dependencies: ["LocalPackageB"] 18 | ), 19 | ] 20 | ) 21 | -------------------------------------------------------------------------------- /examples/swift_package_registry_example/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | 3 | # Running swift package update on this example fails. 4 | 5 | exports_files([ 6 | "registries.json", 7 | ]) 8 | 9 | swift_binary( 10 | name = "swift_package_registry_example", 11 | srcs = ["main.swift"], 12 | module_name = "swift_package_registry_example", 13 | visibility = ["//visibility:public"], 14 | deps = [ 15 | "@swiftpkg_apple.swift_collections//:Collections", 16 | "@swiftpkg_apple.swift_nio//:NIO", 17 | "@swiftpkg_swift_async_algorithms//:AsyncAlgorithms", 18 | ], 19 | ) 20 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/App/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") 2 | 3 | swift_library( 4 | name = "App", 5 | srcs = [ 6 | "Configuration/configure.swift", 7 | "Configuration/routes.swift", 8 | "Migrations/20210819T1221_CreateFooTable.swift", 9 | "Models/Foo.swift", 10 | ], 11 | module_name = "App", 12 | tags = ["manual"], 13 | visibility = ["//visibility:public"], 14 | deps = [ 15 | "@swiftpkg_fluent//:Fluent", 16 | "@swiftpkg_fluent_sqlite_driver//:FluentSQLiteDriver", 17 | "@swiftpkg_vapor//:Vapor", 18 | ], 19 | ) 20 | -------------------------------------------------------------------------------- /examples/vapor_example/Sources/App/Migrations/20210819T1221_CreateFooTable.swift: -------------------------------------------------------------------------------- 1 | import Fluent 2 | 3 | public struct CreateFooTable: Migration { 4 | let foosName = "foos" 5 | 6 | public init() {} 7 | 8 | public func prepare(on database: Database) -> EventLoopFuture { 9 | return database.schema(foosName) 10 | .id() 11 | .field("name", .string, .required) 12 | .field("created_at", .string, .required) 13 | .create() 14 | } 15 | 16 | public func revert(on database: Database) -> EventLoopFuture { 17 | return database.schema(foosName).delete() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/resources_example/README.md: -------------------------------------------------------------------------------- 1 | # Resources in External Package 2 | 3 | This example demonstrates using an external package that has its resources under a directory. The 4 | generated Bazel build files should ensure that the resources are found and made available in a 5 | resource bundle. 6 | 7 | ## Notes 8 | 9 | ### Multiple Swift packages with Objc targets that contain resources 10 | 11 | Both the `third_party/app_lovin_sdk` and the `SDWebImageSwiftUI` packages have or use Objective-C 12 | code that have resources. The inclusion of both in this project ensures that the resource bundle 13 | accessors that are generated for these packages work properly. 14 | -------------------------------------------------------------------------------- /tools/swift_deps_index/internal/jsonutils/json_slice.go: -------------------------------------------------------------------------------- 1 | package jsonutils 2 | 3 | func valueAtIndex(js []any, idx int) (any, error) { 4 | jsLen := len(js) 5 | if idx >= jsLen { 6 | return nil, NewIndexOutOfBoundsError(idx, jsLen) 7 | } 8 | return js[idx], nil 9 | } 10 | 11 | // StringAtIndex returns the slice value at the specified index as a string. 12 | func StringAtIndex(js []any, idx int) (string, error) { 13 | rawValue, err := valueAtIndex(js, idx) 14 | if err != nil { 15 | return "", err 16 | } 17 | switch t := rawValue.(type) { 18 | case string: 19 | return t, nil 20 | default: 21 | return "", NewIndexTypeError(idx, "string", t) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/grpc_example/protos/echo_service/responses/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//proto:proto.bzl", "swift_proto_library") 2 | load("@rules_proto//proto:defs.bzl", "proto_library") 3 | 4 | proto_library( 5 | name = "echo_response_proto", 6 | srcs = ["echo_response.proto"], 7 | import_prefix = "example", 8 | strip_import_prefix = "/protos", 9 | visibility = ["//visibility:public"], 10 | ) 11 | 12 | swift_proto_library( 13 | name = "echo_response_swift_proto", 14 | compilers = ["//compilers:swift_proto"], 15 | module_name = "EchoResponse", 16 | protos = [":echo_response_proto"], 17 | visibility = ["//visibility:public"], 18 | ) 19 | -------------------------------------------------------------------------------- /examples/resources_example/third_party/another_package_with_resources/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.5 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "another-package-with-resources", 8 | defaultLocalization: "en", 9 | platforms: [.iOS(.v13)], 10 | products: [ 11 | .library(name: "MoreCoolUI", targets: ["MoreCoolUI"]), 12 | ], 13 | targets: [ 14 | .target( 15 | name: "MoreCoolUI", 16 | path: "", 17 | resources: [.process("Resources")] 18 | ), 19 | ] 20 | ) 21 | -------------------------------------------------------------------------------- /swiftpkg/tests/generate_modulemap_tests/Sources/PrintVersion/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") 2 | load("@cgrindel_bazel_starlib//bzlformat:defs.bzl", "bzlformat_pkg") 3 | 4 | bzlformat_pkg(name = "bzlformat") 5 | 6 | swift_binary( 7 | name = "PrintVersion", 8 | srcs = ["PrintVersion.swift"], 9 | module_name = "PrintVersion", 10 | target_compatible_with = [ 11 | "@platforms//os:macos", 12 | ], 13 | visibility = ["//visibility:public"], 14 | deps = [ 15 | "//swiftpkg/tests/generate_modulemap_tests/Foo", 16 | "//swiftpkg/tests/generate_modulemap_tests/SimpleCore", 17 | ], 18 | ) 19 | -------------------------------------------------------------------------------- /examples/nimble_example/Sources/NimbleExample/NimbleExampleTests/CounterSpec.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CounterSpec.swift 3 | // NimbleExampleTests 4 | // 5 | // Created by TingYao Hsu on 23/03/2023. 6 | // 7 | 8 | import Nimble 9 | import Quick 10 | 11 | final class CounterSpec: QuickSpec { 12 | override class func spec() { 13 | describe("Counter") { 14 | context("when counting a sentence") { 15 | let string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." 16 | it("should return length") { 17 | expect(string.count).to(equal(56)) 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/tca_example/Tests/AppTests.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ComposableArchitecture 3 | import XCTest 4 | 5 | @testable import TCAExample 6 | 7 | @MainActor 8 | final class AppTests: XCTestCase { 9 | 10 | @MainActor 11 | func testFeature() async { 12 | let store = TestStore(initialState: Feature.State()) { 13 | Feature() 14 | } 15 | 16 | // Test that tapping on the increment/decrement buttons changes the count 17 | await store.send(.incrementButtonTapped) { 18 | $0.count = 1 19 | } 20 | await store.send(.decrementButtonTapped) { 21 | $0.count = 0 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/vapor_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | 10 | # The CNIOBoringSSL uses C++14 features like 'enable_if_t' macro support. 11 | # For more details on how to enable this in Bazel: 12 | # https://stackoverflow.com/questions/40260242/how-to-set-c-standard-version-when-build-with-bazel/43388168#43388168 13 | # 14 | # # Required by swift-crypto 15 | # build --cxxopt='-std=c++11' 16 | # Required by swift-nio-ssl 17 | build --cxxopt='-std=c++14' 18 | -------------------------------------------------------------------------------- /examples/firebase_example/abtesting/BUILD.bazel: -------------------------------------------------------------------------------- 1 | load("@bazel_skylib//rules:build_test.bzl", "build_test") 2 | load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application") 3 | 4 | ios_application( 5 | name = "iosapp", 6 | bundle_id = "com.firebase.ABTestingExample", 7 | families = [ 8 | "iphone", 9 | "ipad", 10 | ], 11 | infoplists = [":ABTestingExample-iOS-Info.plist"], 12 | minimum_os_version = "14.0", 13 | resources = [ 14 | ":GoogleService-Info.plist", 15 | ], 16 | deps = ["//abtesting/SharedApp"], 17 | ) 18 | 19 | build_test( 20 | name = "build_tests", 21 | targets = [ 22 | ":iosapp", 23 | ], 24 | ) 25 | -------------------------------------------------------------------------------- /examples/xcmetrics_example/.bazelrc: -------------------------------------------------------------------------------- 1 | # Import Shared settings 2 | import %workspace%/../../shared.bazelrc 3 | 4 | # Import CI settings. 5 | import %workspace%/../../ci.bazelrc 6 | 7 | # Try to import a local.rc file; typically, written by CI 8 | try-import %workspace%/../../local.bazelrc 9 | 10 | # The CNIOBoringSSL uses C++14 features like 'enable_if_t' macro support. 11 | # For more details on how to enable this in Bazel: 12 | # https://stackoverflow.com/questions/40260242/how-to-set-c-standard-version-when-build-with-bazel/43388168#43388168 13 | # 14 | # # Required by jwt-kit, swift-crypto 15 | # build --cxxopt='-std=c++11' 16 | # Required by swift-nio-ssl 17 | build --cxxopt='-std=c++14' 18 | --------------------------------------------------------------------------------