class Emplace::CMakeBuild

Public Instance Methods

build(dir) click to toggle source
# File lib/emplace.rb, line 56
def build(dir)
  sh "cmake --build #{dir} --target install"
end
cmake(name, module_dir, build_dir, dist_dir) click to toggle source
# File lib/emplace.rb, line 53
def cmake(name, module_dir, build_dir, dist_dir)
  sh "cmake . -B#{build_dir} -DCMAKE_MODULE_PATH=#{module_dir} -DCMAKE_INSTALL_PREFIX=#{dist_dir}/#{name} -G \"#{cmake_generator}\""
end
fetch(name, opts, vendor_dir) click to toggle source
# File lib/emplace.rb, line 67
def fetch(name, opts, vendor_dir)
  package = package_name(name)
  url = File.join(opts[:url], opts[:version])

  IO.popen(['curl', '-fsSL', File.join(url, package)]) {|source|
    write_file(package, vendor_dir) {|dest|
      IO.copy_stream(source, dest)
    }
  }
end
sh(cmd, dir = '.') click to toggle source
# File lib/emplace.rb, line 62
def sh(cmd, dir = '.')
  Dir.chdir(dir) {
    raise $? unless system cmd
  }
end
test(dir) click to toggle source
# File lib/emplace.rb, line 59
def test(dir)
  sh "ctest --verbose", dir
end
write_file(name, dir, &block) click to toggle source
# File lib/emplace.rb, line 77
def write_file(name, dir, &block)
  FileUtils.mkdir_p(dir)
  File.open(File.join(dir, name), 'wb', &block)
end