XcodeBuild
The XcodeBuild
build helper is a wrapper around the command line invocation of Xcode. It will abstract the calls like xcodebuild -project app.xcodeproj -configuration <config> -arch <arch> ...
The XcodeBuild
helper can be used like:
from conan import conanfile
from conan.tools.apple import XcodeBuild
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
xcodebuild = XcodeBuild(self)
xcodebuild.build("app.xcodeproj")
Reference
class XcodeBuild(conanfile)
- __init__(conanfile)
XcodeBuild.build(xcodeproj, target=None)
Call to xcodebuild
to build a Xcode project.
Parameters:
xcodeproj – the xcodeproj file to build.
target – the target to build, in case this argument is passed to the
build()
method it will add the-target
argument to the build system call. If not passed, it will build all the targets passing the-alltargets
argument instead.
Returns:
the return code for the launched
xcodebuild
command.
The Xcode.build()
method internally implements a call to xcodebuild
like:
$ xcodebuild -project app.xcodeproj -configuration <configuration> -arch <architecture> <sdk> <verbosity> -target <target>/-alltargets
Where:
configuration
is the configuration, typically Release or Debug, which will be obtained fromsettings.build_type
.architecture
is the build architecture, a mapping from thesettings.arch
to the common architectures defined by Apple ‘i386’, ‘x86_64’, ‘armv7’, ‘arm64’, etc.sdk
is set based on the values of theos.sdk
andos.sdk_version
defining theSDKROOT
Xcode build setting according to them. For example, settingos.sdk=iOS
and os.sdk_version=8.3` will passSDKROOT=iOS8.3
to the build system. In case you defined thetools.apple:sdk_path
in your [conf] this value will take preference and will directly passSDKROOT=<tools.apple:sdk_path>
so take into account that for this case the skd located in that path should set youros.sdk
andos.sdk_version
settings values.verbosity
is the verbosity level for the build and can take value ‘verbose’ or ‘quiet’ if set bytools.build:verbosity
in your [conf]
conf
tools.build:verbosity
(ortools.compilation:verbosity
as fallback) which acceptsquiet
orverbose
, and sets the-verbose
or-quiet
flags inXcodeBuild.install()
tools.apple:sdk_path
path for the sdk location, will set theSDKROOT
value with preference over composing the value from theos.sdk
andos.sdk_version
settings.