title: errors when building electron from source with gn and ninja on Mac OS 10.15
body: <p>at the moment, I try to fix some accessibility bugs in electron. For that, I had tried to build electron from source. The source isn't edited or changed from me, so it is original.</p>
  
  <p>I pulled the source from the official repo on GitHub, following the building instructions and I had used the client and so on.</p>
  
  <p>Here is the output of my steps in the terminal under Mac OS X 10.15:</p>
  
  <pre><code>Christophers-MacBook-Pro:src chpross$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\") $GN_EXTRA_ARGS"
  Done. Made 11597 targets from 1978 files in 6073ms
  
  Christophers-MacBook-Pro:src chpross$ ninja -C out/Testing electron
  ninja: Entering directory `out/Testing'
  [8992/26566] CXX obj/services/network/..._cpp_sources/udp_socket.mojom-shared.o^[9026/26566] CXX obj/services/network/...content_security_policy.mojom-shared.o^[9044/26566] CXX obj/services/video_ca...ed_cpp_sources/receiver.mojom-shared.o^[9047/26566] CXX obj/services/video_ca...ared_cpp_sources/device.mojom-shared.o^[9098/26566] CXX obj/v8/torque_generat...itializers/object-fromentries-tq-csa.o^[9160/26566] CXX obj/third_party/blink...nderer/core/inspector/generated/Page.o^[10130/26566] OBJCXX obj/components/vi...tal_context_provider/metal_api_proxy.o
  FAILED: obj/components/viz/common/metal_context_provider/metal_api_proxy.o 
  /Users/chpross/programmierung/electron-gn/src/electron/external_binaries/sccache ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/components/viz/common/metal_context_provider/metal_api_proxy.o.d -DVIZ_METAL_CONTEXT_PROVIDER_IMPLEMENTATION -DDCHECK_ALWAYS_ON=1 -D_LIBCPP_HAS_NO_ALIGNED_ALLOCATION -DCR_XCODE_VERSION=1120 -DCR_CLANG_REVISION=\"373424-64a362e7-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=361348 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBP_EXTERN=extern -DENABLE_IPC_FUZZER -DUSE_EGL -DSK_GL -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_BUILD_FOR_MAC -DSK_METAL -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -I../.. -Igen -I../../third_party/libwebp/src -I../../third_party/skia -I../../third_party/boringssl/src/include -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/khronos -I../../gpu -I../../third_party/mesa_headers -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -fcomplete-member-pointers -arch x86_64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -Wall -Werror -Wextra -Wimplicit-fallthrough -Wthread-safety -Wextra-semi -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-sizeof-array-div -O2 -fno-omit-frame-pointer -gdwarf-4 -g1 -isysroot ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.10.0 -fvisibility=hidden -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -std=c++14 -stdlib=libc++ -fobjc-call-cxx-cdtors -Wobjc-missing-property-synthesis -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -include obj/components/viz/common/metal_context_provider/precompile.h-mm -c ../../components/viz/common/gpu/metal_api_proxy.mm -o obj/components/viz/common/metal_context_provider/metal_api_proxy.o
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'hasUnifiedMemory' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:353:27: note: property declared here
  @property (readonly) BOOL hasUnifiedMemory API_AVAILABLE(macos(10.15), ios(13.0));
                            ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'location' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:368:40: note: property declared here
  @property (readonly) MTLDeviceLocation location API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                         ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'locationNumber' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:377:33: note: property declared here
  @property (readonly) NSUInteger locationNumber API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'maxTransferRate' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:385:31: note: property declared here
  @property (readonly) uint64_t maxTransferRate API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'barycentricCoordsSupported' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:421:64: note: property declared here
  @property(readonly, getter=areBarycentricCoordsSupported) BOOL barycentricCoordsSupported API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                                                 ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'supportsShaderBarycentricCoordinates' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:423:27: note: property declared here
  @property (readonly) BOOL supportsShaderBarycentricCoordinates API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                            ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'peerGroupID' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:753:31: note: property declared here
  @property (readonly) uint64_t peerGroupID API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'peerIndex' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:760:31: note: property declared here
  @property (readonly) uint32_t peerIndex API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'peerCount' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:766:31: note: property declared here
  @property (readonly) uint32_t peerCount API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: auto property synthesis will not synthesize property 'counterSets' declared in protocol 'MTLDevice' [-Werror,-Wobjc-protocol-property-synthesis]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:782:60: note: property declared here
  @property (readonly, nullable) NSArray&lt;id&lt;MTLCounterSet&gt;&gt;* counterSets API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios);
                                                             ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:578:1: note: add a '@synthesize' directive
  @end
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: method 'supportsFamily:' in protocol 'MTLDevice' not implemented [-Werror,-Wprotocol]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:659:1: note: method 'supportsFamily:' declared here
  - (BOOL)supportsFamily:(MTLGPUFamily)gpuFamily API_AVAILABLE(macos(10.15), ios(13.0));
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: method 'newCounterSampleBufferWithDescriptor:error:' in protocol 'MTLDevice' not implemented [-Werror,-Wprotocol]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:793:1: note: method 'newCounterSampleBufferWithDescriptor:error:' declared here
  - (nullable id&lt;MTLCounterSampleBuffer&gt;) newCounterSampleBufferWithDescriptor:(MTLCounterSampleBufferDescriptor*)descriptor
  ^
  ../../components/viz/common/gpu/metal_api_proxy.mm:224:17: error: method 'sampleTimestamps:gpuTimestamp:' in protocol 'MTLDevice' not implemented [-Werror,-Wprotocol]
  @implementation MTLDeviceProxy
                  ^
  ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:803:1: note: method 'sampleTimestamps:gpuTimestamp:' declared here
  -(void)sampleTimestamps:(NSUInteger *)cpuTimestamp
  ^
  13 errors generated.
  [10139/26566] CXX obj/v8/v8_initializers/code-stub-assembler.o
  ninja: build stopped: subcommand failed.
  
  </code></pre>
  
  <p>So different ninja targets produces different errors. I thing this is to big for one question, so if someone need this errors, I can paste it in a pastebin. The source code is official, but the build failed, I had already restarted the system, cleaned the out-dir and so on. Hopefully someone know what's went wrong here.</p>