Class: Bwoken::Build

Inherits:
Object
  • Object
show all
Defined in:
lib/bwoken/build.rb

Instance Method Summary collapse

Instance Method Details

#app_dirObject



7
8
9
# File 'lib/bwoken/build.rb', line 7

def app_dir
  File.join(configuration_build_dir, "#{Bwoken.app_name}.app")
end

#build_pathObject



11
12
13
# File 'lib/bwoken/build.rb', line 11

def build_path
  File.join(Bwoken.project_path, 'build')
end

#cmdObject



49
50
51
52
53
54
55
56
57
58
# File 'lib/bwoken/build.rb', line 49

def cmd
  "xcodebuild \
    #{Bwoken.workspace_or_project_flag} \
    #{"-scheme #{scheme}" if Bwoken.xcworkspace} \
    -configuration #{configuration} \
    -sdk #{sdk} \
    -xcconfig #{xcconfig} \
    #{variables_for_cli} \
    clean build"
end

#compileObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/bwoken/build.rb', line 60

def compile
  Bwoken.formatter.before_build_start

  exit_status = 0
  Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr|

    out_string = Bwoken.formatter.format_build stdout

    exit_status = wait_thr.value if wait_thr

    if exit_status == 0 # Build Successful
      Bwoken.formatter.build_successful out_string
    else # Build Failed
      Bwoken.formatter.build_failed out_string, stderr.read
      return exit_status
    end
  end
  exit_status
end

#configurationObject



19
20
21
# File 'lib/bwoken/build.rb', line 19

def configuration
  'Debug'
end

#configuration_build_dirObject



31
32
33
# File 'lib/bwoken/build.rb', line 31

def configuration_build_dir
  File.join(build_path, sdk)
end

#env_variablesObject



39
40
41
42
43
# File 'lib/bwoken/build.rb', line 39

def env_variables
  {
    'BWOKEN_CONFIGURATION_BUILD_DIR' => configuration_build_dir
  }
end

#schemeObject



15
16
17
# File 'lib/bwoken/build.rb', line 15

def scheme
  Bwoken.app_name
end

#sdkObject



23
24
25
26
27
28
29
# File 'lib/bwoken/build.rb', line 23

def sdk
  if Bwoken::Device.should_use_simulator?
    'iphonesimulator'
  else
    'iphoneos'
  end
end

#variables_for_cliObject



45
46
47
# File 'lib/bwoken/build.rb', line 45

def variables_for_cli
  env_variables.map{|key,val| "#{key}=#{val}"}.join(' ')
end

#xcconfigObject



35
36
37
# File 'lib/bwoken/build.rb', line 35

def xcconfig
  File.join(File.dirname(__FILE__), 'configs', 'bwoken.xcconfig')
end