Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: provide SWIFTPM_MODULE_BUNDLE macro for Objective-C targets with resources #781

Merged
merged 24 commits into from
Dec 8, 2023

Conversation

cgrindel
Copy link
Owner

@cgrindel cgrindel commented Dec 3, 2023

  • Generate SWIFTPM_MODULE_BUNDLE macro inspired by the one provided by SPM.
  • Ensure that the macro is available to all of the ObjC code by adding the -include flag to the copts with the location of the resource accessor header file.
  • Update the resources_example to use a vendored version of AppLovin-MAX-Swift-Package. This package has an ObjC target with resources that expects the SWIFTPM_MODULE_BUNDLE macro to be present.

Closes #372.
Closes #774.

@cgrindel cgrindel self-assigned this Dec 3, 2023
@cgrindel cgrindel marked this pull request as ready for review December 3, 2023 19:11
@cgrindel
Copy link
Owner Author

cgrindel commented Dec 3, 2023

cc: @denis15yo, @krypt-lx

@cgrindel cgrindel enabled auto-merge (squash) December 3, 2023 19:12
@krypt-lx
Copy link
Contributor

krypt-lx commented Dec 4, 2023

How can I test this version? The project uses bzlmod

@cgrindel
Copy link
Owner Author

cgrindel commented Dec 4, 2023

How can I test this version? The project uses bzlmod

Use https://github.com/cgrindel/rules_swift_package_manager/archive/gh372_swiftpm_module_bundle.tar.gz as the URL for your http_archive declaration. Be sure to remove the sha256 attribute.

@krypt-lx
Copy link
Contributor

krypt-lx commented Dec 5, 2023

Like I said, we are using blzmod and configuration inside MODULE.bazel file. it doesn't seems like I can use http_archive in MODULE file or move part of initialisation into WORKSPACE

@cgrindel
Copy link
Owner Author

cgrindel commented Dec 5, 2023

Sorry. I misread your post. Add git_override to your MODULE.bazel after the bazel_dep. In other words, keep the bazel_dep and add a git_override. Use the GitHub UI to determine the current commit for the branch.

@cgrindel
Copy link
Owner Author

cgrindel commented Dec 6, 2023

@krypt-lx Also, could you report back when you have had a chance to test it?

Copy link
Collaborator

@luispadron luispadron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally using the example you provided and it worked. The starlark changes lgtm as well, thanks @cgrindel

@cgrindel cgrindel merged commit f7330bb into main Dec 8, 2023
34 checks passed
@cgrindel cgrindel deleted the gh372_swiftpm_module_bundle branch December 8, 2023 02:33
renovate bot added a commit to bazel-contrib/rules_bazel_integration_test that referenced this pull request Dec 11, 2023
…#257)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| rules_swift_package_manager | bazel_dep | minor | `0.22.0` -> `0.23.0`
|
|
[rules_swift_package_manager](https://togithub.com/cgrindel/rules_swift_package_manager)
| http_archive | minor | `v0.22.0` -> `v0.23.0` |

---

### Release Notes

<details>
<summary>cgrindel/rules_swift_package_manager
(rules_swift_package_manager)</summary>

###
[`v0.23.0`](https://togithub.com/cgrindel/rules_swift_package_manager/releases/tag/v0.23.0)

[Compare
Source](https://togithub.com/cgrindel/rules_swift_package_manager/compare/v0.22.0...v0.23.0)

#### What's Changed

- chore: update README.md for v0.22.0 by
[@&#8203;cgrindel-app-token-generator](https://togithub.com/cgrindel-app-token-generator)
in
[cgrindel/rules_swift_package_manager#772
- chore(deps): update dependency
pointfreeco/swift-composable-architecture to from: "1.5.0" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#773
- fix(deps): update module github.com/deckarep/golang-set/v2 to v2.5.0
by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#777
- chore(deps): update dependency vapor/vapor to v4.88.0 by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#778
- chore(deps): update dependency airbnb/lottie-spm to from: "4.3.4" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#779
- chore(deps): update dependency
pointfreeco/swift-composable-architecture to from: "1.5.1" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#782
- chore(deps): update dependency firebase/firebase-ios-sdk to from:
"10.19.0" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#783
- chore(deps): update dependency nicklockwood/swiftformat to from:
"0.52.11" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#784
- chore(deps): update dependency vapor/vapor to v4.89.0 by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#786
- chore(deps): update dependency marmelroy/phonenumberkit to from:
"3.7.6" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#789
- chore(deps): update dependency apple/swift-argument-parser to from:
"1.3.0" by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#787
- chore(deps): update dependency com_github_apple_swift_argument_parser
to v1.3.0 by
[@&#8203;cgrindel-self-hosted-renovate](https://togithub.com/cgrindel-self-hosted-renovate)
in
[cgrindel/rules_swift_package_manager#788
- fix: provide `SWIFTPM_MODULE_BUNDLE` macro for Objective-C targets
with resources by [@&#8203;cgrindel](https://togithub.com/cgrindel) in
[cgrindel/rules_swift_package_manager#781

**Full Changelog**:
cgrindel/rules_swift_package_manager@v0.22.0...v0.23.0

#### Bazel Module Snippet

```python
bazel_dep(name = "rules_swift_package_manager", version = "0.23.0")
```

#### Workspace Snippet

```python
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_swift_package_manager",
    sha256 = "9ef780cb621ec2d7e2c494dd0d2c9994089195e82417634ed3fa000313beb151",
    urls = [
        "https://github.com/cgrindel/rules_swift_package_manager/releases/download/v0.23.0/rules_swift_package_manager.v0.23.0.tar.gz",
    ],
)

load("@&#8203;rules_swift_package_manager//:deps.bzl", "swift_bazel_dependencies")

swift_bazel_dependencies()

load("@&#8203;cgrindel_bazel_starlib//:deps.bzl", "bazel_starlib_dependencies")

bazel_starlib_dependencies()

### MARK: - Gazelle
### gazelle:repo bazel_gazelle

load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")
load("@&#8203;rules_swift_package_manager//:go_deps.bzl", "swift_bazel_go_dependencies")
load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")

### Declare Go dependencies before calling go_rules_dependencies.
swift_bazel_go_dependencies()

go_rules_dependencies()

go_register_toolchains(version = "1.19.1")

gazelle_dependencies()

### MARK: - Swift Toolchain

http_archive(
    name = "build_bazel_rules_swift",

### Populate with your preferred release 
### https://github.com/bazelbuild/rules_swift/releases
)

load(
    "@&#8203;build_bazel_rules_swift//swift:repositories.bzl",
    "swift_rules_dependencies",
)
load("//:swift_deps.bzl", "swift_dependencies")

### gazelle:repository_macro swift_deps.bzl%swift_dependencies
swift_dependencies()

swift_rules_dependencies()

load(
    "@&#8203;build_bazel_rules_swift//swift:extras.bzl",
    "swift_rules_extra_dependencies",
)

swift_rules_extra_dependencies()
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/bazel-contrib/rules_bazel_integration_test).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@krypt-lx
Copy link
Contributor

Sorry, I just tested it
This commit actually breaks project compilation. One moment, will create an issue

@krypt-lx
Copy link
Contributor

Ok, it is reported already:
#798

except for me it is swiftpkg_pocketsvg/swiftpkg_sdwebimage

@cgrindel
Copy link
Owner Author

@krypt-lx #803 fixes the duplicate symbol issue. The CI is failing for another reason related to Go versions. I will try to get that straightened out and the fix merged, shortly.

@krypt-lx
Copy link
Contributor

Just tested 803 - seems to work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants