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

[community triplet] Add arm64-ios-simulator triplet #37054

Merged
merged 1 commit into from
Mar 8, 2024

Conversation

fwcd
Copy link
Contributor

@fwcd fwcd commented Mar 1, 2024

This adds an arm64-ios-simulator triplet, which is largely identical to the existing arm64-ios triplet, but adds

set(VCPKG_OSX_SYSROOT iphonesimulator)

Xcode/Clang unfortunately refuses to link arm64-ios-built libraries when linking for the iOS simulator, since it considers the simulator to be a different platform, thus requiring a new triplet.

Side note: The motivation for not naming this triplet arm64-iphonesimulator or similar is to be consistent with the naming of other iOS triplets and to keep build infrastructure that matches on ios triplets intact. There is precedent for this hyphenated naming scheme, the Rust compiler names the triplet aarch64-apple-ios-sim. I went with the spelled out simulator here, since it feels more descriptive.

@fwcd fwcd mentioned this pull request Mar 1, 2024
54 tasks
@fwcd fwcd marked this pull request as ready for review March 1, 2024 01:57
@Cheney-W Cheney-W self-assigned this Mar 1, 2024
@Cheney-W Cheney-W added the category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. label Mar 1, 2024
@Cheney-W Cheney-W added the info:reviewed Pull Request changes follow basic guidelines label Mar 1, 2024
@vicroms vicroms added the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Mar 6, 2024
@vicroms
Copy link
Member

vicroms commented Mar 8, 2024

Hi @fwcd

From our maintainer guide, we have two requisites to accept community triplets:

We will add community triplets if:

  • It is demonstrated that people will actually use that community triplet; and,
  • we don't know that such a triplet is broken.

Can you make a statement that this triplet is going to be used by someone? (even if it's just your organization, that's OK).

We want to avoid people checking in new community triplets just to "fill out the empty spaces", this also means that we may merge this but not #37055 which only adds the -release only flavor.

@fwcd
Copy link
Contributor Author

fwcd commented Mar 8, 2024

Can you make a statement that this triplet is going to be used by someone? (even if it's just your organization, that's OK)

Sure, both this and the release triplet will be used for developing an iOS port of the open source Mixxx DJ application (upstream repo, vcpkg fork, tracking issue). While arm64-ios and arm64-ios-release are useful for on-device testing, they cannot be used in a simulator, which is pretty much a requirement for all contributors that do not own a specific device (e.g. iPads, iPhones, potentially even the Vision Pro headset).

To give a specific example, using this triplet, we could test Mixxx in the VR simulator:

We want to avoid people checking in new community triplets just to "fill out the empty spaces", this also means that we may merge this but not #37055 which only adds the -release only flavor.

That's understandable. For our specific use-case though, we would probably be using mostly the release triplet (because Mixxx uses a lot of dependencies and debugging libraries like Qt usually isn't needed; also it saves time in CI), but for local debugging, arm64-ios-simulator is still useful.

In any case, I believe the ability to build vcpkg libraries for the iOS simulator will also be beneficial to the wider community, i.e. anyone wishing to integrate vcpkg into an iOS stack (where building for the simulator is often done before testing on a device). In fact, there are already issues where people used this specific triplet:

@vicroms vicroms merged commit e8df4d7 into microsoft:master Mar 8, 2024
16 checks passed
@vicroms
Copy link
Member

vicroms commented Mar 8, 2024

Thanks for taking the time to make a thorough and well thought response.

vicroms pushed a commit that referenced this pull request Mar 8, 2024
The release variant of #37054, targeting the iOS simulator in release
mode (in analogy to #36373).
@fwcd fwcd deleted the arm64-ios-simulator branch March 8, 2024 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. info:reviewed Pull Request changes follow basic guidelines requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants