- Code: Select all
#!/bin/sh
# no spaces in BUILD_ROOT
BUILD_ROOT="/path/to/build/folder"
export GYP_GENERATORS=ninja
# checkout=xxx is git hash for svn commit 1998
# see https://bitbucket.org/chromiumembedded/cef/commits/branch/2272
python "$BUILD_ROOT/automate-git.py" --download-dir="$BUILD_ROOT" --branch=2272 --checkout=824d06b --x64-build
My machine and internet connection are not fast, but the situation cannot be remedied. I'm running OS X 10.11.3 and Xcode 7.2.
After running the source build for approximately 20 hours, and downloading nearly 19 GB in the process, the build has failed with the following generic error toward the end:
- Code: Select all
...
-------- Running "/path/to/build/folder/chromium/src/cef/cef_create_projects.sh" in "/path/to/build/folder/chromium/src/cef"...
-------- Running "ninja -C out/Debug cefclient" in "/path/to/build/folder/chromium/src"...
Traceback (most recent call last):
File "/path/to/build/folder/automate-git.py", line 914, in <module>
if options.buildlogfile else None)
File "/path/to/build/folder/automate-git.py", line 55, in run
shell=(sys.platform == 'win32'))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja', '-C', 'out/Debug', 'cefclient']' returned non-zero exit status 1
Prior to this, there are a number of similar build errors in various files related to the OS X SDK headers. They are associated with various build targets, but only complain about SDK headers. The full list is too numerous to include. Some typical examples are:
- Code: Select all
@class NSArray<ObjectType>;
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h:7:16: error: cannot find protocol declaration for 'ObjectType'
@class NSArray<ObjectType>;
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h:34:25: error: cannot find protocol declaration for 'ObjectType'
@interface NSEnumerator<ObjectType> : NSObject <NSFastEnumeration>
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h:34:37: error: expected identifier or '('
@interface NSEnumerator<ObjectType> : NSObject <NSFastEnumeration>
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h:36:4: error: expected a type
- (nullable ObjectType)nextObject;
^
Since these errors are associated with the OS X 10.11 SDK headers, it is not appropriate to edit them to resolve the errors. Either I find SDK headers that work, or I can't build from source. The CEF build docs say that the Mac OS X build requirements for branch 2272 are:
OS X 10.6-10.10, 10.6+ deployment target, 10.9 base SDK, Xcode 3.2.6-6.x, Ninja, 64-bit only
However, I don't think that means I can't use Xcode 7.2, build in OS X 10.11, or use the OS X 10.11 SDK, especially since they are newer than the requirements, and I have built the CEF binary distribution and the Chromium tab library in the same environment. To do so, I did have to make changes to resolve errors similar to the ones that occur in this build, but the errors were not associated with any SDK headers. This is probably because I was using Xcode to do the actual compilation, which uses a different set of tools than the Chromium build process, which uses Ninja, et. al.
If the specified build requirements are exact, I would need to install OS X 10.10 and a version of Xcode 6.x that included the 10.9 SDK, before trying again. I'm not sure how to get older versions of Xcode or the SDKs, but I am looking into that now.
If I just had the 10.9 SDK, that might be enough to prevent the errors, I don't know. My research and study of the build process indicates that it will use the oldest SDK version I have located in a particular path that is more recent than 10.6, though some of the sub-projects may override the defaults. So, if I can get a copy of the 10.9 SDK and place it in the correct location, that may prevent the build errors.
However, I will also have to figure out how to resume the build/download rather than restart it, because it takes so long. If you have any insights on any of this, or would like further clarification, please let me know. Thanks in advance for any help you can provide.