| Index: pkg/code_transformers/lib/src/dart_sdk.dart
 | 
| diff --git a/pkg/code_transformers/lib/src/dart_sdk.dart b/pkg/code_transformers/lib/src/dart_sdk.dart
 | 
| index 5dfcab848905e2668c682aa32832a07eab6477ae..77dd04c51db70da9921114c01ab52d8c146ba16d 100644
 | 
| --- a/pkg/code_transformers/lib/src/dart_sdk.dart
 | 
| +++ b/pkg/code_transformers/lib/src/dart_sdk.dart
 | 
| @@ -23,18 +23,24 @@ String get dartSdkDirectory {
 | 
|  
 | 
|    bool isSdkDir(String dirname) =>
 | 
|        new File(path.join(dirname, 'lib', '_internal', 'libraries.dart'))
 | 
| -        .existsSync();
 | 
| +      .existsSync();
 | 
|  
 | 
| -  if (path.split(Platform.executable).length == 1) {
 | 
| +  String executable = Platform.executable;
 | 
| +  if (path.split(executable).length == 1) {
 | 
|      // TODO(blois): make this cross-platform.
 | 
|      // HACK: A single part, hope it's on the path.
 | 
| -    var result = Process.runSync('which', ['dart'],
 | 
| -        stdoutEncoding: convert.UTF8);
 | 
| -
 | 
| -    var sdkDir = path.dirname(path.dirname(result.stdout));
 | 
| +    executable = Process.runSync('which', ['dart'],
 | 
| +        stdoutEncoding: convert.UTF8).stdout.trim();
 | 
| +    // In case Dart is symlinked (e.g. homebrew on Mac) follow symbolic links.
 | 
| +    var link = new Link(executable);
 | 
| +    if (link.existsSync()) {
 | 
| +      executable = link.resolveSymbolicLinksSync();
 | 
| +    }
 | 
| +    var sdkDir = path.dirname(path.dirname(executable));
 | 
|      if (isSdkDir(sdkDir)) return sdkDir;
 | 
|    }
 | 
| -  var dartDir = path.dirname(path.absolute(Platform.executable));
 | 
| +
 | 
| +  var dartDir = path.dirname(path.absolute(executable));
 | 
|    // If there's a sub-dir named dart-sdk then we're most likely executing from
 | 
|    // a dart enlistment build directory.
 | 
|    if (isSdkDir(path.join(dartDir, 'dart-sdk'))) {
 | 
| 
 |