1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2022 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #include "src/utils/SkGetExecutablePath.h" 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker #include <mach-o/dyld.h> 11*c8dee2aaSAndroid Build Coastguard Worker SkGetExecutablePath()12*c8dee2aaSAndroid Build Coastguard Workerstd::string SkGetExecutablePath() { 13*c8dee2aaSAndroid Build Coastguard Worker uint32_t size = 0; 14*c8dee2aaSAndroid Build Coastguard Worker _NSGetExecutablePath(nullptr, &size); 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker std::string result(size, '\0'); 17*c8dee2aaSAndroid Build Coastguard Worker if (_NSGetExecutablePath(result.data(), &size) != 0) { 18*c8dee2aaSAndroid Build Coastguard Worker result.clear(); 19*c8dee2aaSAndroid Build Coastguard Worker } 20*c8dee2aaSAndroid Build Coastguard Worker return result; 21*c8dee2aaSAndroid Build Coastguard Worker } 22