Skip to content

Releases: MobileNativeFoundation/rules_xcodeproj

1.5.0: Lots of optimizations

25 Apr 19:07
1.5.0
1b64583
Compare
Choose a tag to compare

What’s Changed

Adjusted

Fixed

  • Fixed output base when using --config=indexbuild with the command-line API: #2027
  • Fixed create_lldbinit.sh not appending content to a new line: #2036
  • Fixed import_indexstores.sh when using swift.remap_xcode_path: 2064
  • Fixed space handling linkopts: #2062 and #2069
  • Fixed space handling in target.swift-extra-clang-flags: #2070
  • Fixed custom bundle extension handling: #2093

Full Changelog

1.4.0...1.5.0

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.5.0")

release.tar.gz’s integrity: sha256-PWEjriwcMYGgxVCD9vGBXJub1WzYPadRdTIPQJZvHN4=

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 = "rules_xcodeproj",
    sha256 = "3d6123ae2c1c3181a0c55083f6f1815c9b9bd56cd83da75175320f40966f1cde",
    url = "https://github.com/MobileNativeFoundation/rules_xcodeproj/releases/download/1.5.0/release.tar.gz",
)

load(
    "@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()

1.4.0

12 Apr 20:09
1.4.0
afceb6b
Compare
Choose a tag to compare

What’s Changed

New

Adjusted

Fixed

  • Fixed Xcode 14.3 support: #1937 and #1981
  • Generating multiple targets in the same workspace now works correctly: #1992, #2000, and #2012
  • Fixed some focused targets issues: #1923, #1930, #1983, #1994, #1995, and #1997
  • Fixed handling of bzlmod external targets: #1926
  • Fixed handling of --force_pic: #1939
  • Fixed CC optimization level flag calculations: #2017
  • Fixed command-line API to work with the dump and shutdown commands: #2019
  • Fixed specs collection: #1966
  • Fixed BwB test action env variables for custom schemes without launch actions: #1955
  • Fixed BwX swift_debug_settings.py generation: #1971

Full Changelog

1.3.3...1.4.0

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.4.0")

release.tar.gz’s integrity: sha256-UP5yA3vVEW4vpTnIo3T//hIEmbylKflRWcmtTyaFWw8=

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 = "rules_xcodeproj",
    sha256 = "50fe72037bd5116e2fa539c8a374fffe120499bca529f95159c9ad4f26855b0f",
    url = "https://github.com/MobileNativeFoundation/rules_xcodeproj/releases/download/1.4.0/release.tar.gz",
)

load(
    "@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()

1.3.3: Fixes for multiple Xcode configurations

24 Mar 19:04
1.3.3
c5deefc
Compare
Choose a tag to compare

What’s Changed

Since 1.3.2

  • Upgraded rules_swift to 1.7.1 when not using Bzlmod: #1914
  • Upgraded rules_apple to 2.2.0 when not using Bzlmod: #1916
  • Fixed linux builds: #1896
  • Fixed target focusing in less than Bazel 6: #1913
  • Logs are now colorized: #1907
  • Adjusted target merging to account for targets that are present in Xcode: #1903
  • Illegal characters are now removed from custom scheme names: #1915
  • --output_base set on command-line is now respected: #1917

Below are the changes that were in 1.3.0–1.3.2

New

Adjusted

  • Moved generated generators to an external repository: #1876, #1886, and #1887
    • The .rules_xcodeproj directory isn't created anymore, and you can remove it from ignore lists
    • You'll need to change your visibility/package_groups to mention the @rules_xcodeproj//xcodeproj:generated package_group
  • Changed the default name of the repo to @rules_xcodeproj: #1814
    • You should do this as well
    • First change the repo name from com_github_buildbuddy_io_rules_xcodeproj to rules_xcodeproj in your MODULE.bazel or WORKSPACE file
    • Then run this buildifier command: buildozer 'substitute_load com_github_buildbuddy_io_rules_xcodeproj rules_xcodeproj' '//...:*'
  • Optimized project generation to be faster: #1788, #1825, #1826, #1827, #1829, #1830, #1831, #1832, #1833, #1834, #1836, #1838, #1839, #1840, #1841, #1842, #1843, #1845, #1844, #1848, and #1850
  • Bazel targets with conditional dependencies will consolidate to few targets now: #1805
  • User compiler flags are now processed by the cc_toolchain: #1810
  • Improved handling of dSYMs: #1856 and #1767
  • Removed resource files from conditional source files in BwB mode: #1863
  • Some small scheme generation improvements: #1816, #1817, and #1818
  • Improved the efficiency of various Stalark code: #1866, #1867, #1868, #1869, #1871, #1872, #1873, #1874, #1879, #1882, #1884, #1883, and #1885

Fixed

  • Fixed handling of multiline xcodeproj.{pre,post}_build values: #1892
  • Fixed visibility with bzlmod: #1895
    • You should change your visibility/package_groups to mention the @rules_xcodeproj//xcodeproj:generated package_group
  • Fixed extra_files logic for merged targets when using focused targets: #1782
  • Stale files in .xcodeproj/rules_xcodeproj/bazel are now properly deleted: #1803
  • Fixed CC copts tokenization: #1811
  • Fixed bazelisk invoking in runner.sh: #1849
  • Fixed handling of large number of linker flags: #1862
  • Fixed handling of -Xcc -iquote -Xcc path type flags: #1875
  • Fixed handling of some quoted paths in link_params_processor.py: #1877
  • Fixed device-only project generation: #1880

Full Changelog

1.2.0...1.3.3

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.3.3")

release.tar.gz’s integrity: sha256-eWezcr0XdyFM5lyHqCrAYwFQt1BLRD3gMV6lLkV1jgw=

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 = "rules_xcodeproj",
    sha256 = "7967b372bd1777214ce65c87a82ac0630150b7504b443de0315ea52e45758e0c",
    url = "https://github.com/MobileNativeFoundation/rules_xcodeproj/releases/download/1.3.3/release.tar.gz",
)

load(
    "@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()

1.3.2: Fixes for multiple Xcode configurations

17 Mar 18:07
1.3.2
82daf8c
Compare
Choose a tag to compare

What’s Changed

Since 1.3.1

  • Fixed handling of multiline xcodeproj.{pre,post}_build values: #1892
  • Fixed visibility with bzlmod: #1895
    • You should change your visibility/package_groups to mention the @rules_xcodeproj//xcodeproj:generated package_group

Below are the changes that were in 1.3.0–1.3.1

New

Adjusted

  • Moved generated generators to an external repository: #1876, #1886, and #1887
    • The .rules_xcodeproj directory isn't created anymore, and you can remove it from ignore lists
    • You'll need to change your visibility/package_groups to mention the @rules_xcodeproj//xcodeproj:generated package_group
  • Changed the default name of the repo to @rules_xcodeproj: #1814
    • You should do this as well
    • First change the repo name from com_github_buildbuddy_io_rules_xcodeproj to rules_xcodeproj in your MODULE.bazel or WORKSPACE file
    • Then run this buildifier command: buildozer 'substitute_load com_github_buildbuddy_io_rules_xcodeproj rules_xcodeproj' '//...:*'
  • Optimized project generation to be faster: #1788, #1825, #1826, #1827, #1829, #1830, #1831, #1832, #1833, #1834, #1836, #1838, #1839, #1840, #1841, #1842, #1843, #1845, #1844, #1848, and #1850
  • Bazel targets with conditional dependencies will consolidate to few targets now: #1805
  • User compiler flags are now processed by the cc_toolchain: #1810
  • Improved handling of dSYMs: #1856 and #1767
  • Removed resource files from conditional source files in BwB mode: #1863
  • Some small scheme generation improvements: #1816, #1817, and #1818
  • Improved the efficiency of various Stalark code: #1866, #1867, #1868, #1869, #1871, #1872, #1873, #1874, #1879, #1882, #1884, #1883, and #1885

Fixed

  • Fixed extra_files logic for merged targets when using focused targets: #1782
  • Stale files in .xcodeproj/rules_xcodeproj/bazel are now properly deleted: #1803
  • Fixed CC copts tokenization: #1811
  • Fixed bazelisk invoking in runner.sh: #1849
  • Fixed handling of large number of linker flags: #1862
  • Fixed handling of -Xcc -iquote -Xcc path type flags: #1875
  • Fixed handling of some quoted paths in link_params_processor.py: #1877
  • Fixed device-only project generation: #1880

Full Changelog

1.2.0...1.3.2

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.3.2")

release.tar.gz’s integrity: sha256-PsKoHe9RqsWd5JJzz2+OPxUalbxPS0iRdQr6dQpVlzs=

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 = "rules_xcodeproj",
    sha256 = "3ec2a81def51aac59de49273cf6f8e3f151a95bc4f4b4891750afa750a55973b",
    url = "https://github.com/MobileNativeFoundation/rules_xcodeproj/releases/download/1.3.2/release.tar.gz",
)

load(
    "@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()

1.3.1: Multiple Xcode configurations, removed `.rules_xcodeproj/` temporary directory

16 Mar 22:35
1.3.1
24891cf
Compare
Choose a tag to compare

What’s Changed

Since 1.3.0

  • Moved generated generators to an external repository: #1876, #1886, and #1887
    • The .rules_xcodeproj directory isn't created anymore, and you can remove it from ignore lists
    • You'll need to change your visibility/package_groups to mention @rules_xcodeproj_generated//:__subpackages__
  • Improved the efficency of various Stalark code: #1866, #1867, #1868, #1869, #1871, #1872, #1873, #1874, #1879, #1882, #1884, #1883, and #1885
  • Fixed handling of -Xcc -iquote -Xcc path type flags: #1875
  • Fixed handling of some quoted paths in link_params_processor.py: #1877
  • Fixed device-only project generation: #1880

Below are the changes that were in the 1.3.0.

New

Adjusted

  • Changed the default name of the repo to @rules_xcodeproj: #1814
    • You should do this as well
    • First change the repo name from com_github_buildbuddy_io_rules_xcodeproj to rules_xcodeproj in your MODULE.bazel or WORKSPACE file
    • Then run this buildifier command: buildozer 'substitute_load com_github_buildbuddy_io_rules_xcodeproj rules_xcodeproj' '//...:*'
  • Optimized project generation to be faster: #1788, #1825, #1826, #1827, #1829, #1830, #1831, #1832, #1833, #1834, #1836, #1838, #1839, #1840, #1841, #1842, #1843, #1845, #1844, #1848, and #1850
  • Bazel targets with conditional dependencies will consolidate to few targets now: #1805
  • User compiler flags are now processed by the cc_toolchain: #1810
  • Improved handling of dSYMs: #1856 and #1767
  • Removed resource files from conditional source files in BwB mode: #1863
  • Some small scheme generation improvements: #1816, #1817, and #1818

Fixed

  • Fixed extra_files logic for merged targets when using focused targets: #1782
  • Stale files in .xcodeproj/rules_xcodeproj/bazel are now properly deleted: #1803
  • Fixed CC copts tokenization: #1811
  • Fixed bazelisk invoking in runner.sh: #1849
  • Fixed handling of large number of linker flags: #1862

Full Changelog

1.2.0...1.3.1

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.3.1")

release.tar.gz’s integrity: sha256-73CgdKdLtet9Sh8XqJ03VdZL5xU8PrQeHW/dIYRP/NQ=

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 = "rules_xcodeproj",
    sha256 = "ef70a074a74bb5eb7d4a1f17a89d3755d64be7153c3eb41e1d6fdd21844ffcd4",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.3.1/release.tar.gz",
)

load(
    "@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()

1.3.0: Multiple Xcode configurations

15 Mar 18:49
1.3.0
6bc835f
Compare
Choose a tag to compare

What’s Changed

New

Adjusted

  • Changed the default name of the repo to @rules_xcodeproj: #1814
    • You should do this as well
    • First change the repo name from com_github_buildbuddy_io_rules_xcodeproj to rules_xcodeproj in your MODULE.bazel or WORKSPACE file
    • Then run this buildifier command: buildozer 'substitute_load com_github_buildbuddy_io_rules_xcodeproj rules_xcodeproj' '//...:*'
  • Optimized project generation to be faster: #1788, #1825, #1826, #1827, #1829, #1830, #1831, #1832, #1833, #1834, #1836, #1838, #1839, #1840, #1841, #1842, #1843, #1845, #1844, #1848, and #1850
  • Bazel targets with conditional dependencies will consolidate to few targets now: #1805
  • User compiler flags are now processed by the cc_toolchain: #1810
  • Improved handling of dSYMs: #1856 and #1767
  • Removed resource files from conditional source files in BwB mode: #1863
  • Some small scheme generation improvements: #1816, #1817, and #1818

Fixed

  • Fixed extra_files logic for merged targets when using focused targets: #1782
  • Stale files in .xcodeproj/rules_xcodeproj/bazel are now properly deleted: #1803
  • Fixed CC copts tokenization: #1811
  • Fixed bazelisk invoking in runner.sh: #1849
  • Fixed handling of large number of linker flags: #1862

Full Changelog

1.2.0...1.3.0

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.3.0")

release.tar.gz’s integrity: sha256-L242QEaWy4wv8o/xeIy7hcHA/ncJyOQRzC9ri6+1DwI=

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 = "rules_xcodeproj",
    sha256 = "2f6e36404696cb8c2ff28ff1788cbb85c1c0fe7709c8e411cc2f6b8bafb50f02",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.3.0/release.tar.gz",
)

load(
    "@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()

1.2.0

22 Feb 16:12
1.2.0
8bdea84
Compare
Choose a tag to compare

What’s Changed

New

Adjusted

  • We now use the first architecture when importing indexing data if multiple are set: #1763
  • We now set the full range for SUPPORTED_PLATFORMS in normal builds: #1762
  • --cache_computed_file_digests is now set to a higher value by default: #1765
  • Upgraded index-import to 5.7.0.1: #1770
  • Upgraded rules_swift to 1.6.0: #1772
  • Upgraded rules_apple to 2.1.0: #1777

Fixed

  • Fixed LLDB issue with testable targets: #1755
  • Fixed handling of relative paths in index unit files: #1761
  • Fixed project generation when merge target becomes unfocused: #1769
  • Fixed (in Bazel 6.1+) schemes not being able to reference external targets when using Bzlmod: #1771
  • Fixed generated *_framework.exported_symbols_list in BwX mode: #1780

Full Changelog

1.1.0...1.2.0

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.2.0", repo_name = "com_github_buildbuddy_io_rules_xcodeproj")

release.tar.gz’s integrity: sha256-0CkyJVuj/6qxhZ5EUoxpmI6T+jU/o0kkPh71BUvRuoA=

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 = "d02932255ba3ffaab1859e44528c69988e93fa353fa349243e1ef5054bd1ba80",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.2.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()

1.1.0: Bzlmod fix for the 1.0 release

06 Feb 17:55
1.1.0
ff2f742
Compare
Choose a tag to compare

What’s Changed

This release is the same as the 1.0.1 release, with the version changed to 1.1.0.

See the 1.0 release for details.

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.1.0", repo_name = "com_github_buildbuddy_io_rules_xcodeproj")

release.tar.gz’s integrity: sha256-Hi9A6u5SAJM0NSismkqRgLBQDN2DseXiqVq8jFQWhuI=

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 = "1e2f40eaee520093343528ac9a4a9180b0500cdd83b1e5e2a95abc8c541686e2",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.1.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()

1.0

06 Feb 16:56
1.0.1
0164ced
Compare
Choose a tag to compare
1.0

What’s Changed

This release is the same as the 1.0.0rc3 release, with the version changed to 1.0.1.

This is the first release with a non-zero major version. Since we are using Semantic Versioning for rules_xcodeproj, from this release forward there won’t be breaking changes unless we increment our major version as well.12

Since this is the first major release, every feature can be seen as “new”, so here is the state of all features in the release:

  • Full support for Xcode features:
    • Indexing (i.e. autocomplete, syntax highlighting, jump to definition)
    • Debugging
    • Runtime sanitizers
    • Inline warnings and errors
    • Fix-its (currently only in BwX mode)
    • Test selection and running
    • Embedded Targets (App Clips, App Extensions, and Watch Apps)
    • Dynamic frameworks
    • SwiftUI Previews
  • Focused Projects
    • Include a subset of your targets in Xcode
    • Unfocused targets are built with Bazel
    • Works in BwX mode as well!
  • Comprehensive Bazel rules support
    • Core Bazel C/C++/Objective-C
    • rules_swift
    • rules_apple
    • rules_ios
    • Most likely your custom rules as well!
  • Minimal configuration needed
  • Multiple ways of building your project in Xcode
    • Build your Bazel targets with Bazel (a.k.a Build with Bazel or BwB mode)
    • Build your Bazel targets with Xcode, not Bazel (a.k.a. Build with Xcode or BwX mode)3

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.1.0", repo_name = "com_github_buildbuddy_io_rules_xcodeproj")

release.tar.gz’s integrity: sha256-TygG8P6XZiY85GuCsnpnQrvjokivPop2bc52X5VPvsE=

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 = "4f2806f0fe9766263ce46b82b27a6742bbe3a248af3e8a766dce765f954fbec1",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.0.1/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()
  1. Bzlmod has a different way of marking breaking changes with module.compatibility_level. We will increment both the major version and the compatibility_level in tandum.

  2. There are some APIs that have been explicitly marked as unstable, such as the XcodeProjAutomaticTargetProcessingInfo and XcodeProjInfo providers. Changes to unstable APIs do not count as breaking changes.

  3. Build with Bazel mode is the build mode with first class support. We will try to make Build with Xcode mode work with every project, but there are limitations that can make the experience subpar, or not work at all. We recommend using BwB mode if possible.

1.0.0rc3

03 Feb 18:42
1.0.0rc3
4d673a7
Compare
Choose a tag to compare

What’s Changed

  • Added xcodeproj.install_directory attribute: #1723
  • Added support for rules_apple's *_build_test rules: #1730
  • Fixed compiling of objc_library targets that don't correctly set testonly: #1743
  • Fixed indexing of rules that use -vfsoverlay: #1726
  • Fixed args, envs, and xccurrentversions related generation errors when using focused targets: #1728 and #1729
  • Fixed cp -c issue with multiple volumes: #1747

Full Changelog: 1.0.0rc2...1.0.0rc3

Contributors

Bzlmod Snippet

bazel_dep(name = "rules_xcodeproj", version = "1.0.0rc3", repo_name = "com_github_buildbuddy_io_rules_xcodeproj")

release.tar.gz’s integrity: sha256-77BXx0igovf/93AbJJ/o5yGbCLYcOGMiY9eJcoUyXqo=

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 = "efb057c748a0a2f7fff7701b249fe8e7219b08b61c38632263d7897285325eaa",
    url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/1.0.0rc3/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()