Sha256: c93367d180d6e15c276fffbdefa894cb4336d143e8647983e7d6ea2a6000eb9e
Contents?: true
Size: 1.66 KB
Versions: 1
Compression:
Stored size: 1.66 KB
Contents
require 'open3' module Rake module Funnel module Support module MSBuild class BuildTool class << self def find [mono_build, from_registry].compact.first end private def mono_build return nil if Rake::Win32.windows? begin out, status = Open3.capture2('mono', '--version') return nil unless status.success? rescue Errno::ENOENT return nil end return 'msbuild'.freeze if out[/^Mono JIT compiler version ([\d\.]+)/, 1] >= '5.0' 'xbuild'.freeze end KEY = 'SOFTWARE\Microsoft\MSBuild\ToolsVersions'.freeze def from_registry return nil unless require_registry versions.map do |version| version_key(version) do |reg| candidate = File.join(reg['MSBuildToolsPath'] || '', 'msbuild.exe') next candidate if File.exist?(candidate) end end end def versions %w(14.0 12.0 4.0 3.5 2.0) end def require_registry require 'win32/registry' true rescue LoadError false end def version_key(version) key = KEY + '\\' + version ::Win32::Registry::HKEY_LOCAL_MACHINE.open(key) do |reg| yield(reg) if block_given? end rescue ::Win32::Registry::Error nil end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rake-funnel-0.20.0 | lib/rake/funnel/support/msbuild/build_tool.rb |