aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/--env.rb
blob: 79323c30028cce6488605a526c9b93c6bb3058a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require 'extend/ENV'
require 'hardware'

module Homebrew extend self
  def __env
    ENV.extend(HomebrewEnvExtension)
    ENV.setup_build_environment
    ENV.universal_binary if ARGV.build_universal?
    if $stdout.tty?
      dump_build_env ENV
    else
      build_env_keys(ENV).each do |key|
        puts "export #{key}=\"#{ENV[key]}\""
      end
    end
  end

  def build_env_keys env
    %w[ CC CXX LD CFLAGS CXXFLAGS CPPFLAGS LDFLAGS SDKROOT
      CMAKE_PREFIX_PATH CMAKE_INBLUDE_PATH CMAKE_FRAMEWORK_PATH MAKEFLAGS
      MACOSX_DEPLOYMENT_TARGET PKG_CONFIG_PATH HOMEBREW_BUILD_FROM_SOURCE
      HOMEBREW_DEBUG HOMEBREW_MAKE_JOBS HOMEBREW_VERBOSE HOMEBREW_USE_CLANG
      HOMEBREW_USE_GCC HOMEBREW_USE_LLVM HOMEBREW_SVN
      ACLOCAL_PATH OBJC PATH ].select{ |key| env[key] }
  end

  def dump_build_env env
    build_env_keys(env).each do |key|
      value = env[key]
      print "#{key}: #{value}"
      case key when 'CC', 'CXX', 'LD'
        if value =~ %r{/usr/bin/xcrun (.*)}
          path = `/usr/bin/xcrun -find #{$1}`
          print " => #{path}"
        elsif File.symlink? value
          print " => #{Pathname.new(value).realpath}"
        end
      end
      puts
    end
  end
end