159 lines
12 KiB
XML
159 lines
12 KiB
XML
<MBML>
|
||
<Var name="repo:host" literal="github"/>
|
||
<Var name="repo:name" type="dynamic" expression="$project:name"/>
|
||
<Var name="repo:branch" value="$ENV[BRANCH]"/> <!-- expect calling script to set this environment variable -->
|
||
<Var name="repo:branch:settings" type="dynamic" expression="^if($repo:branch -AND ^containsValue(^keys($versions)|$repo:branch)|$repo:branch|^if($project:branch:settings|$project:branch:settings|master))"/>
|
||
<Var name="repo:url:home" type="dynamic" expression="https://github.com/${repo:owner}/${repo:name}"/>
|
||
<Var name="repo:url:branch" type="dynamic" expression="${repo:url:home}/tree"/>
|
||
<Var name="repo:url:http" type="dynamic" expression="${repo:url:home}"/>
|
||
<Var name="repo:url:ssh" type="dynamic" expression="git@github.com:${repo:owner}/${repo:name}"/>
|
||
<Var name="repo:root" literal=".." if="!$ENV[REPO_ROOT]"/>
|
||
<Var name="repo:root" value="$ENV[REPO_ROOT]" if="$ENV[REPO_ROOT]"/>
|
||
<Var name="repo:dir" type="dynamic" expression="${repo:root}/${repo:name}"/>
|
||
|
||
<Var name="platforms" type="map">
|
||
<Var name="xcode-9" type="map">
|
||
<Var name="iOS" type="map">
|
||
<Var name="supportsUnitTests" boolean="T"/>
|
||
</Var>
|
||
<Var name="macOS" type="map">
|
||
<Var name="supportsUnitTests" boolean="T"/>
|
||
</Var>
|
||
<Var name="tvOS" type="map">
|
||
<Var name="supportsUnitTests" boolean="T"/>
|
||
</Var>
|
||
<Var name="watchOS" type="map">
|
||
<Var name="supportsUnitTests" boolean="F"/>
|
||
</Var>
|
||
</Var>
|
||
</Var>
|
||
|
||
<Var name="buildPlatform:default" literal="xcode-9"/>
|
||
<Var name="buildPlatform:active" type="dynamic" expression="^if(^matchesRegex($repo:branch|^^xcode-([0-9]+){1}(\.[0-9]+){1,2}(-.*?)*^q($))|$repo:branch|$buildPlatform:default)"/>
|
||
<Var name="buildPlatform:supportsCI" type="dynamic" expression="^if($versions[$repo:branch][Travis]|1|0)"/>
|
||
<Var name="platforms:build" type="dynamic" expression="$platforms[$buildPlatform:active]"/>
|
||
<Var name="platforms:ci" type="dynamic" expression="$platforms[$buildPlatform:active]"/>
|
||
|
||
<Var name="branches" type="list">
|
||
<Var literal="master"/>
|
||
</Var>
|
||
|
||
<Var name="branchForVersions" type="dynamic" expression="^if($versions[$repo:branch]|$repo:branch|master)"/>
|
||
|
||
<Var name="xcode:version" type="dynamic" expression="$versions[$branchForVersions][Xcode]"/>
|
||
<Var name="swift:version" type="dynamic" expression="$versions[$branchForVersions][Swift]"/>
|
||
<Var name="project:travisImage" type="dynamic" expression="$versions[$branchForVersions][Travis]"/>
|
||
|
||
<Var name="versions" type="map">
|
||
<!-- master branch declarations -->
|
||
<Var name="master" type="map">
|
||
<Var name="Swift" literal="4.0"/>
|
||
<Var name="Xcode" literal="9.0"/>
|
||
<Var name="Travis" literal="xcode9"/>
|
||
|
||
<Var name="Carthage" literal="0.25.0"/>
|
||
|
||
<Var name="current" type="map">
|
||
<Var name="iOS" literal="11.0"/>
|
||
<Var name="macOS" literal="10.13"/>
|
||
<Var name="tvOS" literal="11.0"/>
|
||
<Var name="watchOS" literal="4.0"/>
|
||
</Var>
|
||
|
||
<Var name="minimum" type="map">
|
||
<Var name="iOS" literal="9.0"/>
|
||
<Var name="macOS" literal="10.11"/>
|
||
<Var name="tvOS" literal="9.0"/>
|
||
<Var name="watchOS" literal="2.0"/>
|
||
</Var>
|
||
</Var>
|
||
</Var>
|
||
|
||
<Var name="branches:nonmaster" type="dynamic" expression="^sort(^filter($branches|$item != master))"/>
|
||
<Var name="branches:other" type="dynamic" expression="^sort(^filter($branches|$item != $repo:branch))"/>
|
||
|
||
<Var name="supports:iOS" type="dynamic" expression="^containsValue($project:platforms|iOS)"/>
|
||
<Var name="supports:macOS" type="dynamic" expression="^containsValue($project:platforms|macOS)"/>
|
||
<Var name="supports:tvOS" type="dynamic" expression="^containsValue($project:platforms|tvOS)"/>
|
||
<Var name="supports:watchOS" type="dynamic" expression="^containsValue($project:platforms|watchOS)"/>
|
||
|
||
<Var name="platform:current:iOS" type="dynamic" expression="^if($project:platform:versions[current][iOS]|$project:platform:versions[current][iOS]|$versions[$repo:branch:settings][current][iOS])"/>
|
||
<Var name="platform:current:macOS" type="dynamic" expression="^if($project:platform:versions[current][macOS]|$project:platform:versions[current][macOS]|$versions[$repo:branch:settings][current][macOS])"/>
|
||
<Var name="platform:current:tvOS" type="dynamic" expression="^if($project:platform:versions[current][tvOS]|$project:platform:versions[current][tvOS]|$versions[$repo:branch:settings][current][tvOS])"/>
|
||
<Var name="platform:current:watchOS" type="dynamic" expression="^if($project:platform:versions[current][watchOS]|$project:platform:versions[current][watchOS]|$versions[$repo:branch:settings][current][watchOS])"/>
|
||
|
||
<Var name="platform:minimum:iOS" type="dynamic" expression="^if($project:platform:versions[minimum][iOS]|$project:platform:versions[minimum][iOS]|$versions[$repo:branch:settings][minimum][iOS])"/>
|
||
<Var name="platform:minimum:macOS" type="dynamic" expression="^if($project:platform:versions[minimum][macOS]|$project:platform:versions[minimum][macOS]|$versions[$repo:branch:settings][minimum][macOS])"/>
|
||
<Var name="platform:minimum:tvOS" type="dynamic" expression="^if($project:platform:versions[minimum][tvOS]|$project:platform:versions[minimum][tvOS]|$versions[$repo:branch:settings][minimum][tvOS])"/>
|
||
<Var name="platform:minimum:watchOS" type="dynamic" expression="^if($project:platform:versions[minimum][watchOS]|$project:platform:versions[minimum][watchOS]|$versions[$repo:branch:settings][minimum][watchOS])"/>
|
||
|
||
<Var name="project:version" value="$ENV[PROJECT_VERSION]"/> <!-- expect calling script to set this environment variable -->
|
||
<Var name="project:version:public" value="$ENV[PROJECT_VERSION_PUBLIC]"/> <!-- expect calling script to set this environment variable -->
|
||
<Var name="project:file" type="dynamic" expression="${project:name}.xcodeproj"/>
|
||
<Var name="project:workspace" type="dynamic" expression="${project:name}.xcworkspace"/>
|
||
<Var name="project:hasWorkspace" type="dynamic" expression="^fileExists(${repo:dir}/${project:workspace})"/>
|
||
<Var name="project:container" type="dynamic" expression="^if($project:hasWorkspace|$project:workspace|$project:file)"/>
|
||
|
||
<Var name="project:framework" type="dynamic" expression="${project:name}.framework"/>
|
||
<Var name="project:language:name" type="dynamic" expression="^if($project:language == ObjC|Objective-C|Swift)"/>
|
||
<Var name="project:import:swift" type="dynamic" expression="import ${project:name}"/>
|
||
<Var name="project:import:swift:block" type="dynamic" expression="```swift\n${project:import:swift}\n```"/>
|
||
<Var name="project:import:objc" type="dynamic" expression="@import ${project:name};"/>
|
||
<Var name="project:import:objc:block" type="dynamic" expression="```objc\n${project:import:objc}\n```"/>
|
||
<Var name="project:import" type="dynamic" expression="^if($project:language == ObjC|$project:import:objc|$project:import:swift)"/>
|
||
<Var name="project:import:block" type="dynamic" expression="^if($project:language == ObjC|$project:import:objc:block|$project:import:swift:block)"/>
|
||
|
||
<Var name="project:readme:description" type="dynamic" expression="^selectFirstValue($project:description:formats[markdown]|$project:description:formats[text]|$project:description)"/>
|
||
<Var name="project:readme:examples:file" type="dynamic" expression="${repo:dir}/Sources/README.md"/>
|
||
<Var name="project:readme:examples" type="dynamic" expression="^if(^fileExists($project:readme:examples:file)|^fileContents($project:readme:examples:file))"/>
|
||
|
||
<Var name="project:meta" type="map">
|
||
<Var name="Cleanroom" type="map">
|
||
<Var name="title" literal="Cleanroom Project"/>
|
||
<Var name="project:url" literal="https://github.com/gilt/Cleanroom"/>
|
||
<Var name="owner:name" literal="Gilt Tech"/>
|
||
<Var name="owner:url" literal="http://tech.gilt.com"/>
|
||
<Var name="about">The Cleanroom Project began as an experiment to re-imagine Gilt’s iOS codebase in a legacy-free, Swift-based incarnation.
|
||
|
||
Since then, we’ve expanded the Cleanroom Project to include multi-platform support. Much of our codebase now supports tvOS in addition to iOS, and our lower-level code is usable on macOS and watchOS as well.
|
||
|
||
Cleanroom Project code serves as the foundation of Gilt on TV, our tvOS app [featured by Apple during the launch of the new Apple TV](http://www.apple.com/apple-events/september-2015/). And as time goes on, we'll be replacing more and more of our existing Objective-C codebase with Cleanroom implementations.
|
||
|
||
In the meantime, we’ll be tracking the latest releases of Swift & Xcode, and [open-sourcing major portions of our codebase](https://github.com/gilt/Cleanroom#open-source-by-default) along the way.</Var>
|
||
<Var name="contributing">If you’d like to contribute to this or any other Cleanroom Project repo, please read [the contribution guidelines](https://github.com/gilt/Cleanroom#contributing-to-the-cleanroom-project).</Var>
|
||
<Var name="acknowledgements">API documentation is generated using [Realm](http://realm.io)’s [jazzy](https://github.com/realm/jazzy/) project, maintained by [JP Simard](https://github.com/jpsim) and [Samuel E. Giddins](https://github.com/segiddins).</Var>
|
||
</Var>
|
||
<Var name="Mockingbird" type="map">
|
||
<Var name="title" literal="Mockingbird Library"/>
|
||
<Var name="owner:name" literal="Gilt Tech"/>
|
||
<Var name="owner:url" literal="http://tech.gilt.com"/>
|
||
<Var name="about">Over the years, Gilt Groupe has used and refined Mockingbird Library as the base for its various Apple Platform projects.
|
||
|
||
Mockingbird began life as AppFramework, created by Jesse Boyes.
|
||
|
||
AppFramework found a home at Gilt Groupe and eventually became Mockingbird Library.
|
||
|
||
In recent years, Mockingbird Library has been developed and maintained by Evan Maloney.</Var>
|
||
<Var name="acknowledgements">API documentation is generated using [appledoc](http://gentlebytes.com/appledoc/) from [Gentle Bytes](http://gentlebytes.com/).</Var>
|
||
</Var>
|
||
</Var>
|
||
|
||
<Var name="project:hasGeneratedDocumentation" type="dynamic" expression="^if(^setContains(^setWithArray(^array(framework|application))|$project:skeleton)|#(1)|#(0))"/>
|
||
<Var name="docs:root" type="dynamic" expression="https://rawgit.com/${repo:owner}/${repo:name}/${repo:branch}/Documentation"/>
|
||
<Var name="docs:api:root" type="dynamic" expression="${docs:root}/API"/>
|
||
<Var name="docs:api:index" type="dynamic" expression="${docs:api:root}/index.html"/>
|
||
<Var name="docs:images:root" type="dynamic" expression="${docs:root}/Images"/>
|
||
|
||
<Var name="docs:integrationFilesCount" type="dynamic" expression="#(^count($project:dependencies) + 1)"/>
|
||
|
||
<Var name="docs:projectsDependenciesList" type="dynamic" expression="^if($project:dependencies|^if(^count($project:dependencies) -LT 2|`$project:dependencies[0]^q(.xcodeproj)`)^if(^count($project:dependencies) -EQ 2|`$project:dependencies[0]^q(.xcodeproj)` and $project:dependencies[1]^q(.xcodeproj)`)^if(^count($project:dependencies) -GT 2|^join(^list(^groupArrayElements($project:dependencies|#(^count($project:dependencies) - 1))[0]|`$(item).xcodeproj`)|, ) and `$project:dependencies[#(^count($project:dependencies) - 1)]^q(.xcodeproj)`))"/>
|
||
<Var name="docs:projectsAllList" type="dynamic" expression="`${project:file}`^if($project:dependencies|^if(^count($project:dependencies) == 1| and|,) $docs:projectsDependenciesList)"/>
|
||
<Var name="docs:frameworksDependenciesList" type="dynamic" expression="^if($project:dependencies|^if(^count($project:dependencies) -LT 2|`$project:dependencies[0]^q(.framework)`)^if(^count($project:dependencies) -EQ 2|`$project:dependencies[0]^q(.framework)` and $project:dependencies[1]^q(.framework)`)^if(^count($project:dependencies) -GT 2|^join(^list(^groupArrayElements($project:dependencies|#(^count($project:dependencies) - 1))[0]|`$(item).framework`)|, ) and `$project:dependencies[#(^count($project:dependencies) - 1)]^q(.framework)`))"/>
|
||
<Var name="docs:frameworksAllList" type="dynamic" expression="`${project:file}`^if($project:dependencies|^if(^count($project:dependencies) == 1| and|,) $docs:frameworksDependenciesList)"/>
|
||
|
||
<Var name="docs:cloneCommand" type="dynamic" expression="git clone ^if($project:dependencies|--recursive )${repo:url:http}"/>
|
||
<Var name="docs:carthageSpec" type="dynamic" expression='$repo:host "${repo:owner}/${repo:name}" ~> ${project:version:public}.0'/>
|
||
|
||
<Var name="travis:url" type="dynamic" expression="https://travis-ci.^if(${travis:build-status-token}|com|org)/${repo:owner}/${repo:name}"/>
|
||
</MBML>
|