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