(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('BINARY', {[DQ [VarSub BUILT_PRODUCTS_DIR][LIT_CHARS /][VarSub EXECUTABLE_PATH]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub BINARY]]}}}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('BINARY_DIR', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BINARY]]})]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('BUILTIN_DYLIB_PATH', {[ComSub (Pipeline (Com {[LIT_CHARS otool]} {[LIT_CHARS -L]} {[DQ [VarSub BINARY]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -Ene]} {[SQ <LIT_CHARS "s/^[[:blank:]]+(.*libclang_rt\\.asan_.*_dynamic\\.dylib).*$/\\1/p">]}) )]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub BUILTIN_DYLIB_PATH]]} {[LIT_OTHER "*"] [LIT_CHARS asan_iossim_dynamic] [LIT_OTHER "*"]}}) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ASAN_DYLIB_NAME', {[LIT_CHARS libclang_rt.asan_iossim_dynamic.dylib]})]) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub BUILTIN_DYLIB_PATH]]} {[LIT_OTHER "*"] [LIT_CHARS asan_osx_dynamic] [LIT_OTHER "*"]}}) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ASAN_DYLIB_NAME', {[LIT_CHARS libclang_rt.asan_osx_dynamic.dylib]})]) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BUILTIN_DYLIB_PATH]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub BINARY][LIT_CHARS " does not depend on the ASan runtime library!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} <REDIR_GREATAND ">&"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('ASAN_DYLIB', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub BUILT_PRODUCTS_DIR][LIT_CHARS "/../../third_party/llvm-build/Release+Asserts/lib/clang/"]]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -path]} {[DQ [LIT_CHARS "*"][VarSub ASAN_DYLIB_NAME]]})]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DYLIB_BASENAME', {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub ASAN_DYLIB]]})]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub DYLIB_BASENAME]]} {[DQ [VarSub ASAN_DYLIB_NAME]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "basename("][VarSub ASAN_DYLIB][LIT_CHARS ") != "][VarSub ASAN_DYLIB_NAME]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} <REDIR_GREATAND ">&"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('UPPER_DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BINARY_DIR]]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub UPPER_DIR]]} {[LIT_DBRACKET_LIKE "=="]} {[DQ [LIT_CHARS MacOS]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('LIBRARIES_DIR', {[DQ [VarSub UPPER_DIR][LIT_CHARS /Libraries]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub LIBRARIES_DIR]]} ) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('NEW_LC_ID_DYLIB', {[DQ [LIT_CHARS "@executable_path/../Libraries/"][VarSub ASAN_DYLIB_NAME]]})]) ) (ElseTrue) (List (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('LIBRARIES_DIR', {[DQ [VarSub BINARY_DIR]]})]) (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('NEW_LC_ID_DYLIB', {[DQ [LIT_CHARS "@executable_path/"][VarSub ASAN_DYLIB_NAME]]})]) ) ) (Com {[LIT_CHARS cp]} {[DQ [VarSub ASAN_DYLIB]]} {[DQ [VarSub LIBRARIES_DIR]]} ) (Com {[LIT_CHARS install_name_tool]} {[LIT_CHARS -id]} {[DQ [VarSub NEW_LC_ID_DYLIB]]} {[DQ [VarSub LIBRARIES_DIR][LIT_CHARS /][VarSub ASAN_DYLIB_NAME]]} ) (Com {[LIT_CHARS install_name_tool]} {[LIT_CHARS -change]} {[DQ [VarSub BUILTIN_DYLIB_PATH]]} {[DQ [VarSub NEW_LC_ID_DYLIB]]} {[DQ [VarSub BINARY]]} ) )