diff --git a/handler/handler.gyp b/handler/handler.gyp index ac1bfb61..638789c4 100644 --- a/handler/handler.gyp +++ b/handler/handler.gyp @@ -15,6 +15,7 @@ { 'includes': [ '../build/crashpad.gypi', + '../build/crashpad_in_chromium.gypi', ], 'conditions': [ ['OS=="mac"', { @@ -43,6 +44,28 @@ 'mac/exception_handler_server.h', 'mac/main.cc', ], + + # In an in-Chromium build with component=shared_library, + # crashpad_handler will depend on shared libraries such as + # libbase.dylib located in out/{Debug,Release} via the @rpath + # mechanism. When crashpad_handler is copied to its home deep inside + # the Chromium app bundle, it needs to have an LC_RPATH command + # pointing back to the directory containing these dependency + # libraries. + 'variables': { + 'component%': 'static_library', + }, + 'conditions': [ + ['crashpad_in_chromium!=0 and component=="shared_library"', { + 'xcode_settings': { + 'LD_RUNPATH_SEARCH_PATHS': [ # -Wl,-rpath + # Get back from + # Chromium.app/Contents/Versions/V/Framework.framework/Helpers + '@loader_path/../../../../../..', + ], + }, + }], + ], }, ], }, {