Note: Upstreaming of iOS code is still in progress, and a substantial amount of code (especially in chrome/) is not yet built. In particular, note that it is not currently possible to build the actual browser binary, only unit tests and libraries. Unless you are actively working on upstreaming iOS code into the Chromium repository, these instructions are not likely to be interesting at this point. Prerequisites
Setting UpIn the directory where you are going to check out the code, create a file called { 'GYP_DEFINES': 'OS=ios', # use space to delimit additional defines. 'GYP_GENERATOR_FLAGS': 'xcode_project_version=3.2',}Also, you should install API keys. Getting the CodeCheck out the code using either the new git workflow or svn method (do not use the tarball), following the iOS specific instructions. For either one, after you run solutions = [target_os_only = TrueBuildingBuild the target you are interested in. Since Xcode 4 has difficulty opening Chromium projects, you may want to use xcodebuild. Example command lines, depending on the target, device, and configuration you want to build: xcodebuild -project build/all.xcodeproj -target "All" -configuration Debug -sdk iphonesimulator buildxcodebuild -project base/base.xcodeproj -target "base" -configuration Release -sdk iphoneos buildYou should always be able to build all:All, since targets are added there for iOS only after they compile. RunningAny *_unittests target that runs on the bots (see below) should run successfully in a local build. Nothing else runs yet—see the highlighted note at the top of this page. Check the bots periodically for updates; more targets will come on line over time. TroubleshootingIf your build fails, check the iOS columns of the Mac waterfall (the last two) to see if the bots are green (in general they should be, since failures on those bots will close the tree). If you followed a previous version of these instructions and added a long list of None entries to your .gclient file, remove them all (the exclusions are now handled by DEPS) and re-sync. Until you remove them, you will see failures such as missing files under skia/include. |
