'\" t .TH "PORTGROUP" "7" "2\&.10\&.99" "MacPorts 2\&.10\&.99" "MacPorts Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" portgroup \- MacPorts PortGroup command reference .SH "SYNOPSIS" .sp .nf PortGroup gnustep 1\&.0 PortGroup perl5 1\&.0 PortGroup python24 1\&.0 PortGroup python25 1\&.0 PortGroup python30 1\&.0 PortGroup ruby 1\&.0 PortGroup xcode 1\&.0 .fi .SH "DESCRIPTION" .sp MacPorts 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 \fBportfile\fR(7)\&. .SH "XCODE PORTGROUP" .sp \fBPortGroup xcode\fR 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 \fBxcode PortGroup\fR class only defines the fetch and the checksum phases\&. .sp Using \fBPortGroup xcode\fR is a way to make your port more robust to Xcode version updates as the PortGroup is tested against all supported macOS and Xcode versions\&. .SS "XCODE PORTGROUP SUGAR" .sp Portfiles using \fBxcode PortGroup\fR do not need to define the following variables: .PP categories .RS 4 \fBDefault:\fR aqua .RE .PP platforms .RS 4 \fBDefault:\fR macosx .RE .PP use_configure .RS 4 \fBDefault:\fR no .RE .sp Moreover, Portfiles using \fBPortGroup xcode\fR do not need to define any build or destroot phase\&. Some options are provided for tailoring these phases to what the software requires\&. .SS "XCODE PORTGROUP SPECIFIC VARIABLES" .sp Portfiles using \fBxcode PortGroup\fR may define the following variables: .PP xcode\&.project .RS 4 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\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf xcode\&.project ${name}\&.xcode .fi .if n \{\ .RE .\} .RE .PP xcode\&.configuration .RS 4 Project configuration/buildstyle to use\&. .TS tab(:); lt lt lt lt. T{ \fBType:\fR T}:T{ optional T} T{ \fBDefault:\fR T}:T{ Deployment T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf xcode\&.configuration Main .fi .if n \{\ .RE .\} .RE .PP xcode\&.target .RS 4 If present, overrides build\&.target and destroot\&.target\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 .RE .PP xcode\&.build\&.settings .RS 4 Additional settings passed to the xcode build tool during the build phase\&. These settings should be in the X=Y form\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf xcode\&.build\&.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks .fi .if n \{\ .RE .\} .RE .PP xcode\&.destroot\&.type .RS 4 Type of project that will be installed\&. This tells Xcode PortGroup how to destroot the project\&. Correct values are application and framework\&. .TS tab(:); lt lt lt lt. T{ \fBType:\fR T}:T{ optional T} T{ \fBDefault:\fR T}:T{ application T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf xcode\&.destroot\&.type framework .fi .if n \{\ .RE .\} .RE .PP xcode\&.destroot\&.path .RS 4 Where to install the build product\&. .TS tab(:); lt lt lt lt. T{ \fBType:\fR T}:T{ optional T} T{ \fBDefault:\fR T}:T{ ${prefix}/Library/Frameworks or /Applications/MacPorts depending on xcode\&.destroot\&.type T} .TE .sp 1 .RE .PP xcode\&.destroot\&.settings .RS 4 Additional settings passed to the xcode build tool during the destroot phase\&. These settings should be in the X=Y form\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf xcode\&.destroot\&.settings SKIP_INSTALL=NO .fi .if n \{\ .RE .\} .RE .SS "STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP" .sp The following standard Portfile variables actually affect \fBxcode PortGroup\fR\&. In most cases, you will not need to set any of these variables in the Portfile\&. .PP destroot .RS 4 Where to destroot the project\&. .RE .PP build\&.cmd .RS 4 The command to invoke to build the project\&. \fBxcode PortGroup\fR sets this variable to ${xcodebuildcmd}\&. .RE .PP build\&.target .RS 4 The Xcode target to build\&. \fBxcode PortGroup\fR sets this variable to "", thus building all targets\&. This variable will be ignored if xcode\&.target is set\&. .RE .PP build\&.pre_args .RS 4 Additional parameters for ${build\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ none T} .TE .sp 1 .RE .PP build\&.args .RS 4 Main parameters for ${build\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ build T} .TE .sp 1 .RE .PP build\&.post_args .RS 4 Additional parameters for ${build\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ none T} .TE .sp 1 .RE .PP build\&.dir .RS 4 Where to build the project from (i\&.e\&. where the Xcode project is)\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ ${worksrcpath} T} .TE .sp 1 .RE .PP destroot\&.cmd .RS 4 The command to invoke to destroot the project\&. \fBxcode PortGroup\fR sets this variable to xcodebuildcmd\&. .RE .PP destroot\&.target .RS 4 The Xcode target to install\&. \fBxcode PortGroup\fR sets this variable to "", thus installing all targets\&. This variable will be ignored if xcode\&.target is set\&. .RE .PP destroot\&.pre_args .RS 4 Additional parameters for ${destroot\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ none T} .TE .sp 1 .RE .PP destroot\&.args .RS 4 Main parameters for ${destroot\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ install T} .TE .sp 1 .RE .PP destroot\&.post_args .RS 4 Additional parameters for ${destroot\&.cmd}\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ none T} .TE .sp 1 .RE .PP destroot\&.dir .RS 4 Where to destroot the project from (i\&.e\&. where the Xcode project is)\&. .TS tab(:); lt lt. T{ \fBDefault:\fR T}:T{ ${worksrcpath} T} .TE .sp 1 .RE .SH "GNUSTEP PORTGROUP" .sp \fBPortGroup gnustep\fR is here to easily port GNUstep\-based opensource software using the GNU objective\- C runtime\&. It handles configuration, build and destroot phases\&. It also defines some values for GNUstep\-based software\&. A minimum Portfile using the \fBgnustep PortGroup\fR class only defines the fetch and the checksum phases\&. .SS "GNUSTEP FILESYSTEM LAYOUTS" .sp PortGroup gnustep also supports both the traditional gnustep file layout and the new fhs file layout\&. However, the ports themselves do not necessarily support both\&. The Portfiles have access to many procedures in dealing with these two layouts: .PP set_gnustep_make .RS 4 Sets GNUSTEP_MAKEFILES according to the FilesystemLayout .RE .PP set_gnustep_env .RS 4 Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout .RE .PP gnustep_layout .RS 4 Returns true (1) if current file layout is gnustep .RE .PP set_system_library .RS 4 Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout .RE .PP set_local_library .RS 4 Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout .RE .SS "GNUSTEP PORTGROUP SUGAR" .sp Portfiles using \fBgnustep PortGroup\fR do not need to define the following variables: .PP categories .RS 4 \fBDefault:\fR gnustep .RE .PP homepage .RS 4 \fBDefault:\fR \m[blue]\fBhttp://www\&.gnustep\&.org/\fR\m[] .RE .PP master_sites .RS 4 \fBDefault:\fR gnustep:core .RE .PP depends_lib .RS 4 \fBDefault:\fR gnustep\-core .RE .PP use_configure .RS 4 \fBDefault:\fR no .RE .PP configure\&.env .RS 4 \fBDefault:\fR DYLD_LIBRARY_PATH PATH .RE .PP configure\&.pre_args\-append .RS 4 \fBDefault:\fR CC=gcc\-mp\-4\&.2 GNUSTEP_MAKEFILES .RE .PP build\&.type .RS 4 \fBDefault:\fR gnu .RE .PP build\&.env .RS 4 \fBDefault:\fR DYLD_LIBRARY_PATH PATH .RE .PP build\&.pre_args\-append .RS 4 \fBDefault:\fR messages=yes .RE .PP destroot\&.env .RS 4 \fBDefault:\fR DYLD_LIBRARY_PATH PATH .RE .PP destroot\&.pre_args\-append .RS 4 \fBDefault:\fR messages=yes .RE .sp Moreover, Portfiles using \fBPortGroup gnustep\fR do not need to define any build or destroot phase\&. Some options are provided for tailoring these phases to what the software requires\&. A mechanism is also provided to ease the patch process\&. .SS "GNUSTEP PORTGROUP SPECIFIC VARIABLES" .sp Portfiles using \fBgnustep PortGroup\fR may define the following variables: .PP gnustep\&.post_flags .RS 4 an associative array which specifies the sub\-directories relative to ${worksrcpath} and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile\&.preamble in those sub\-directories\&. This helps making the patching process easier on Darwin\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf platform darwin { array set gnustep\&.post_flags { BundleSubDir "\-lfoo \-lbar" } } .fi .if n \{\ .RE .\} .RE .PP gnustep\&.cc .RS 4 .TS tab(:); lt lt lt lt. T{ \fBType:\fR T}:T{ optional T} T{ \fBDefault:\fR T}:T{ gcc\-mp\-4\&.2 T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf gnustep\&.cc gcc\-mp\-4\&.3 .fi .if n \{\ .RE .\} .RE .PP variant with_docs .RS 4 Many GNUstep packages include a Documentation sub\-directory that is not built by default\&. Enabling this variant builds and installs the included documentation\&. .TS tab(:); lt lt. T{ \fBType:\fR T}:T{ optional T} .TE .sp 1 \fBExample:\fR .sp .if n \{\ .RS 4 .\} .nf port install gnustep\-gui +with_docs .fi .if n \{\ .RE .\} .RE .SH "SEE ALSO" .sp \fBport\fR(1), \fBmacports.conf\fR(5), \fBportfile\fR(7), \fBportstyle\fR(7), \fBporthier\fR(7) .SH "AUTHORS" .sp .if n \{\ .RS 4 .\} .nf (C) 2013 The MacPorts Project Paul Guyot Yves de Champlain Rainer Mueller .fi .if n \{\ .RE .\}