-
Notifications
You must be signed in to change notification settings - Fork 28
Fix iOS builds from command line (xcodebuild -sdk) #24
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
Merged
swiftlyfalling
merged 1 commit into
swiftlyfalling:master
from
darrenclark:fix-ios-builds-from-command-line
Oct 10, 2017
Merged
Fix iOS builds from command line (xcodebuild -sdk) #24
swiftlyfalling
merged 1 commit into
swiftlyfalling:master
from
darrenclark:fix-ios-builds-from-command-line
Oct 10, 2017
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
For whatever reason, it seems when building inside Xcode.app, the amalgamation target has environment variables set as if it is being built for macOS (even when building the iOS library), so the configure/make steps work fine. However, when building via the command line (ie: `xcodebuild -scheme sqlitelib -configuration Release -sdk iphoneos`), the amalgamation target was getting environment variables set as if it was building for iOS. This was causing the `configure` step to fail, because it thought the compiler was broken (macOS couldn't run binaries that were being built for iOS). This commit fixes the issue by always running configure as if we were building for macOS. (The sqlitecustom target will still build libraries for the correct platform, as it did before)
This was referenced Oct 9, 2017
Had this on my to-do list to improve - very nice!
EDIT: For clarification, using xcodebuild with the -destination parameter previously worked properly. This fix extends support to using xcodebuild with the -sdk parameter instead.
@swiftlyfalling
swiftlyfalling
changed the title
(削除) Fix iOS builds from command line (xcodebuild) (削除ここまで)
(追記) Fix iOS builds from command line (xcodebuild -sdk) (追記ここまで)
Oct 11, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When building via the
xcodebuild, ie:the
amalgamationtarget would fail when running theconfigurescript with an error like:It turns out it was getting tripped up because it was running the configure script as if it was trying to build for iOS, causing the
configure: error: cannot run C compiled programs.error.It seems Xcode &
xcodebuilddiffer in behaviour here:Xcode runs the run script build phase as if it was compiling for macOS, even when building the library for iOS
xcodebuildruns the run script build phase as if it was compiling for whatever platform is specified via the-sdkoption. This causes all sorts of issues for non-macOS because theMakefilebuilds & runs some command line utilities as part of the build process:build_sqlitelib
This PR/commit ensures the configure script & make are always run as if we are building for macOS. (The
sqlitecustomtarget will still build for the selected platform).Here's the new run script build phase (as the diff is pretty unreadable):
screen shot 2017年10月08日 at 11 53 08 pm