Releases: MobileNativeFoundation/rules_xcodeproj
1.5.0: Lots of optimizations
What’s Changed
Adjusted
- Upgraded XcodeProj to 8.9.0: #2048
- Lots of generation memory and cpu reduction optimizations: #2022, #2008, #2025, #2026, #2030, #2028, #2032, #2033, #2031, #2034, #2037, #2038, #2043, #2042, #2045, #2049, #2052, #2053, #2054, #2056, #2059, #2060, #2067, #2073, #2063, #2076, #2079, #2081, #2082, #2083, #2087, #2086, #2090, #2089, #2094, #2095, #2096, #2098, #2099, #2104, #2105, #2102, #2107, #2101, #2112, and #2110
- Reorder default PATH by @thii in #2039
- Added code highlighting to
Podfile
files: #2041 - Removed extra quoting in
link.params
files: #2061 - Added support for multiple compile targets: #2072
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 usingswift.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
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
What’s Changed
New
- Added support for
cc_library.implementation_deps
: #1933, #1967, and #2015 - Added the
xcodeproj.bazel_env
attribute: #1990 - Added the
xcodeprojfail_for_invalid_extra_files_targets
attribute: #1977
Adjusted
- Upgraded swift-collections to 1.0.4: #1960
- Spotlight is now prevented from indexing our Bazel output bases: #2013
- Improved target merging: #1902, #1928, and #1946
- Improved CC dynamic linking support: #1943, #1944, #1942, and #1949
- Various project generation performance improvements: #1957, #1958, #1961, #1962, #1972, #1973, #1974, #1976, #1978, #1979, #1980, #1985, #1986, #1998, #2001, #2003, #2004, and #2005
- Builds in Xcode now verify that the requested target ids are still valid: #1982
PATH
is now set to/usr/bin:/bin
whenbazel_path
(e.g.bazel
) is called to generate a project or build inside of Xcode: #1950- To adjust this behavior, set
xcodeproj.bazel_env
.
- To adjust this behavior, set
- Improved progress messages for project generation: #1999 and #2002
- Improved error message when decoding fails: #1975
- You can now the generator label in the command-line API: #2011
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
andshutdown
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
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
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
- Added support for multiple Xcode configurations with the new
xcodeproj.xcode_configurations
attribute: #1789, #1791, #1793, #1796, #1797, #1799, #1800, #1801, #1806, #1807, #1815, #1858 - Added the
organization_name
parameter toproject_options
parameter: #1804 - Added the
profile_action
parameter toxcode_schemes.scheme
: #1819 and #1835
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_group
s to mention the@rules_xcodeproj//xcodeproj:generated
package_group
- The
- 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
torules_xcodeproj
in yourMODULE.bazel
orWORKSPACE
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_group
s to mention the@rules_xcodeproj//xcodeproj:generated
package_group
- You should change your
- 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 inrunner.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
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
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_group
s to mention the@rules_xcodeproj//xcodeproj:generated
package_group
- You should change your
Below are the changes that were in 1.3.0–1.3.1
New
- Added support for multiple Xcode configurations with the new
xcodeproj.xcode_configurations
attribute: #1789, #1791, #1793, #1796, #1797, #1799, #1800, #1801, #1806, #1807, #1815, #1858 - Added the
organization_name
parameter toproject_options
parameter: #1804 - Added the
profile_action
parameter toxcode_schemes.scheme
: #1819 and #1835
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_group
s to mention the@rules_xcodeproj//xcodeproj:generated
package_group
- The
- 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
torules_xcodeproj
in yourMODULE.bazel
orWORKSPACE
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 inrunner.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
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
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_group
s to mention@rules_xcodeproj_generated//:__subpackages__
- The
- 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
- Added support for multiple Xcode configurations with the new
xcodeproj.xcode_configurations
attribute: #1789, #1791, #1793, #1796, #1797, #1799, #1800, #1801, #1806, #1807, #1815, #1858 - Added the
organization_name
parameter toproject_options
parameter: #1804 - Added the
profile_action
parameter toxcode_schemes.scheme
: #1819 and #1835
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
torules_xcodeproj
in yourMODULE.bazel
orWORKSPACE
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 inrunner.sh
: #1849 - Fixed handling of large number of linker flags: #1862
Full Changelog
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
What’s Changed
New
- Added support for multiple Xcode configurations with the new
xcodeproj.xcode_configurations
attribute: #1789, #1791, #1793, #1796, #1797, #1799, #1800, #1801, #1806, #1807, #1815, #1858 - Added the
organization_name
parameter toproject_options
parameter: #1804 - Added the
profile_action
parameter toxcode_schemes.scheme
: #1819 and #1835
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
torules_xcodeproj
in yourMODULE.bazel
orWORKSPACE
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 inrunner.sh
: #1849 - Fixed handling of large number of linker flags: #1862
Full Changelog
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
What’s Changed
New
- Added
xcodeproj.project_options
: #1756
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
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
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
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
- @brentleyjones
- @BalestraPatrick
- @cgrindel
- @erikkerber
- @maxwellE
- @thii
- @chiragramani
- @jpsim
- @sebastianv1
- @ra1028
- @luispadron
- @pennig
- @CognitiveDisson
- @mattrobmattrob
- @keith
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()
-
Bzlmod has a different way of marking breaking changes with
module.compatibility_level
. We will increment both the major version and thecompatibility_level
in tandum. ↩ -
There are some APIs that have been explicitly marked as unstable, such as the
XcodeProjAutomaticTargetProcessingInfo
andXcodeProjInfo
providers. Changes to unstable APIs do not count as breaking changes. ↩ -
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
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 settestonly
: #1743 - Fixed indexing of rules that use
-vfsoverlay
: #1726 - Fixed
args
,envs
, andxccurrentversions
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()