Class: Emplace::CMakeBuild
- Inherits:
-
Object
- Object
- Emplace::CMakeBuild
- Defined in:
- lib/emplace.rb
Instance Method Summary collapse
- #build(dir) ⇒ Object
- #cmake(name, module_dir, build_dir, dist_dir) ⇒ Object
- #fetch(name, opts, vendor_dir) ⇒ Object
- #sh(cmd, dir = '.') ⇒ Object
- #test(dir) ⇒ Object
- #write_file(name, dir, &block) ⇒ Object
Instance Method Details
#build(dir) ⇒ Object
56 57 58 |
# File 'lib/emplace.rb', line 56 def build(dir) sh "cmake --build #{dir} --target install" end |
#cmake(name, module_dir, build_dir, dist_dir) ⇒ Object
53 54 55 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# 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 = '.') ⇒ Object
62 63 64 65 66 |
# File 'lib/emplace.rb', line 62 def sh(cmd, dir = '.') Dir.chdir(dir) { raise $? unless system cmd } end |
#test(dir) ⇒ Object
59 60 61 |
# File 'lib/emplace.rb', line 59 def test(dir) sh "ctest --verbose", dir end |
#write_file(name, dir, &block) ⇒ Object
77 78 79 80 |
# 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 |