New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 654827 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS , Mac
Pri: 2
Type: Feature

Blocking:
issue webrtc:6493



Sign in to add a comment

GN iOS: Build support for FAT arm/arm64/x86/x64 frameworks

Project Member Reported by tkchin@chromium.org, Oct 11 2016

Issue description

We want to build unsigned FAT frameworks for public releases of our API (e.g. via CocoaPods). Today we do this by making GN compile the architectures separately and then lipo-ing the results together. Since we now have additional_target_cpus it would make sense for this to be supported directly by the GN toolchain.
 

Comment 1 by tkchin@webrtc.org, Oct 11 2016

Blocking: webrtc:6493
What do you mean by "directly supported by the GN toolchain"?

Comment 3 by tkchin@webrtc.org, Oct 11 2016

iiuc today you can say target_cpu="arm" additional_target_cpus=["arm64"]

by supported by toolchain, I'm proposing support for:
target_cpu="arm" additional_target_cpus=["arm64", "x86", "x64"]

which doesn't work today, but is exactly what we want
Hm. sdefresne@ should confirm, but it kinda looks to me like that should just work.
This is currently unsupported because secondary architectures (those listed in addition_target_cpus) expect some target to exist for the primary architecture (listed in target_cpu). However, due to the difference in how device and simulator code signature, this is not the case.

There may also exists other incompatibilities.
Status: Assigned (was: Untriaged)
Labels: -Pri-3 Pri-2
It came up during recent discussion in the Chrome on iOS team that this would be useful to have for Chrome on iOS too (not limited to WebRTC), so raising priority.
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4f7dea0a1f25b46d0d3d5159142f7560dae409ab

commit 4f7dea0a1f25b46d0d3d5159142f7560dae409ab
Author: sdefresne <sdefresne@chromium.org>
Date: Wed Oct 19 21:12:31 2016

Fix compilation of uber-fat binaries.

Fix compilation of fat binaries supporting both device and simulator
by always defining the target to generate the embedded entitlement
file in the default toolchain.

Fix native_client_sdk/src/build_tools/build_sdk.py to not override
use_ios_simulator (as this should not be a configurable variable)
and make the variable non configurable.

Note that uber-fat builds cannot be used as-is and require some
processing to tweak the Info.plist file (CFBundleSupportedPlatforms
and DTPlatformName reference the target platform).

BUG= 654827 

Review-Url: https://chromiumcodereview.appspot.com/2437593005
Cr-Commit-Position: refs/heads/master@{#426285}

[modify] https://crrev.com/4f7dea0a1f25b46d0d3d5159142f7560dae409ab/build/config/ios/ios_sdk.gni
[modify] https://crrev.com/4f7dea0a1f25b46d0d3d5159142f7560dae409ab/build/config/ios/rules.gni
[modify] https://crrev.com/4f7dea0a1f25b46d0d3d5159142f7560dae409ab/native_client_sdk/PRESUBMIT.py
[modify] https://crrev.com/4f7dea0a1f25b46d0d3d5159142f7560dae409ab/native_client_sdk/src/build_tools/build_sdk.py

Status: Fixed (was: Assigned)

Sign in to add a comment