class Qt::Commander::Creator::Toolchain

Public Instance Methods

android?() click to toggle source
# File lib/qt/commander/creator/toolchain.rb, line 14
def android?
  target =~ /android/
end
env() { || ... } click to toggle source
# File lib/qt/commander/creator/toolchain.rb, line 18
def env
  if android?
    envs = {
      'TOOLCHAIN_PATH' => File.dirname(@path),
      'TOOLCHAIN_HOST' => File.basename(@path.gsub(/-gcc$/, '')),
      'TOOLCHAIN_NAME' => File.basename(@path.gsub(/-gcc$/, '-'+@android_ndk_tc_version)),
    }
    
    envs['ANDROID_NDK_ROOT'] = ndk_root = \
      Qt::Commander::Creator.ini['AndroidConfigurations']['NDKLocation']
    
    sep = File::SEPARATOR
    tc_path = @path.scan(/#{ndk_root}#{sep}toolchains#{sep}.*?(?=#{sep})/)
    config_mk = File.read(File.join(tc_path, "config.mk"))
    
    config_mk =~ /TOOLCHAIN_ARCH\s*\:\=\s*(.*)/
    envs['TOOLCHAIN_ARCH'] = $1
    
    config_mk =~ /TOOLCHAIN_ABIS\s*\:\=\s*(.*)/
    envs['TOOLCHAIN_ABIS'] = $1
    
  else
    raise NotImplementedError
  end
  
  envs.keys.each { |key| envs[key], ENV[key] = ENV[key], envs[key] }
  yield if block_given?
  envs.keys.each { |key| envs[key], ENV[key] = ENV[key], envs[key] }
  
  return envs
end