XCODE(7)

NAME
PortGroup - Darwinports PortGroup command reference

SYNOPSIS
PortGroup gnustep 1.0
PortGroup perl5 1.0
PortGroup python 1.0
PortGroup python24 1.0
PortGroup ruby 1.0
PortGroup xcode 1.0

DESCRIPTION
Darwinports defines the notion of PortGroup classes with the PortGroup command. These classes factorize the work for similar ports. Port maintainers willing to use PortGroup need to have some notion of Portfiles. See portfile(7)

XCODE PORTGROUP
PortGroup xcode is here to easily port Xcode-based opensource software. It handles configuration, build and destroot phases. It also defines some values for Xcode-based software. A minimum Portfile using the xcode PortGroup class only defines the fetch and the checksum phases.

Using PortGroup xcode is a way to make your port more robust to Xcode version updates as the PortGroup is tested against all supported MacOS X and Xcode versions.

XCODE PORTGROUP SUGAR
Portfiles using xcode PortGroup do not need to define the following variables:

categories
    Default: aqua

platforms
    Default: macosx

use_configure
    Default: no
Moreover, Portfiles using PortGroup xcode do not need to define any build or destroot phase. Some options are provided for tailoring these phases to what the software requires.

XCODE PORTGROUP SPECIFIC VARIABLES
Portfiles using xcode PortGroup may define the following variables:

xcode.project
    path (relative to ${build.dir} and ${destroot.dir}) of the Xcode project. If unset, let xcode tool figure it out. It usually succeeds if there is a single project in the directory.
    Type: optional
    Example:
        xcode.project ${name}.xcode

xcode.configuration
    Project configuration/buildstyle to use.
    Type: optional
    Default: Deployment
    Example:
        xcode.configuration Main

xcode.target
    If present, overrides build.target and destroot.target.
    Type: optional

xcode.build.settings
    Additional settings passed to the xcode build tool during the build phase. These settings should be in the X=Y form.
    Type: optional
    Example:
        xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks

xcode.destroot.type
    Type of project that will be installed. This tells Xcode PortGroup how to destroot the project. Correct values are application and framework.
    Type: optional
    Default: application
    Example:
        xcode.destroot.type framework

xcode.destroot.path
    Where to install the build product.
    Type: optional
    Default: /Library/Frameworks or /Application/DarwinPorts depending on xcode.destroot.type

xcode.destroot.settings
    Additional settings passed to the xcode build tool during the destroot phase. These settings should be in the X=Y form.
    Type: optional
    Example:
        xcode.destroot.settings SKIP_INSTALL=NO

STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
The following standard Portfile variables actually affect xcode PortGroup. In most cases, you will not need to set any of these variables in the Portfile.

destroot
    Where to destroot the project.

build.cmd
    The command to invoke to build the project. xcode PortGroup sets this variable to ${xcodebuildcmd}.

build.target
    The Xcode target to build. xcode PortGroup sets this variable to "", thus building all targets. This variable will be ignored if xcode.target is set.

build.pre_args
    Additional parameters for ${build.cmd}.
    Default: none

build.args
    Main parameters for ${build.cmd}.
    Default: build

build.post_args
    Additional parameters for ${build.cmd}.
    Default: none

build.dir
    Where to build the project from (i.e. where the Xcode project is).
    Default: ${worksrcpath}

destroot.cmd
    The command to invoke to destroot the project. xcode PortGroup sets this variable to xcodebuildcmd.

destroot.target
    The Xcode target to install. xcode PortGroup sets this variable to "", thus installing all targets. This variable will be ignored if xcode.target is set.

destroot.pre_args
    Additional parameters for ${destroot.cmd}.
    Default: none

destroot.args
    Main parameters for ${destroot.cmd}.
    Default: install

destroot.post_args
    Additional parameters for ${destroot.cmd}.
    Default: none

destroot.dir
    Where to destroot the project from (i.e. where the Xcode project is).
    Default: ${worksrcpath}

SEE ALSO
port(1), ports.conf(5), portfile(7), portstyle(7), porthier(7)

AUTHORS
Paul Guyot <pguyot@kallisys.net>