What’s Changed
New
- Unknown rules are generically handled better
- For Bazel targets that can't be made into Xcode targets, we let Bazel build them and copy out the required outputs: #575, #578, #590, #591
- Bazel
features
needed by Build with Bazel are now enabled for Build with Xcode as well: #576 - The Build with Bazel custom lldbinit is used when Building with Xcode as well, to enable debugging of the copied swiftmodules: #581
- Various other fixes: #558, #598
- Added support for the
codesignopts
attribute: #593 - Added support for
swift_import
: #597 - Added support for the
alwayslink
attribute: #607, #608 - Finalized support for
apple_{dynamic,static}_{framework,xcframework}_import
: #609, #610, #625, #628 - Added
xcodeproj.scheme_autogeneration_mode
with support fornone
,auto
, andall
: #612
Fixes and Improvements
- Improvements to how entitlements are handled: #546, #547
- Fixed flakey output group check: #551
- Fixed handling of
--define=apple.experimental.tree_artifact_outputs=0
: #552 - Fixed missing App Icons in BwX mode: #556
- Fixed
TestAction
scheme ordering: #557 - Improved resource bundle handling: #559, #563, #564, #567, #571, #580, #599, #604, #605, #611, #624
- Breakpoints set from
swiftsourceinfo
now work: #579 - PCM flags now match what are set by rules_swift: #586, #595
- Reduced the size of the specification file passed between Bazel and
generator
: #600, #615, #621 - Improved collection of header files: #601
- Improved how linker flags are determined: #602
- Made file sorting more deterministic: #629
Breaking Changes
- Adjustments to
InputFileAttributesInfo
(now namedXcodeProjAutomaticTargetProcessingInfo
)
Full Changelog: 0.4.2...0.5.0
Contributors
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "728cb6089ad2f4c4de2003ce23462be662bfdd250a8735dc590e61fb7401e7d2",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.5.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()