Class: MilkTea::BuildCache::CachedProgram
- Inherits:
-
Data
- Object
- Data
- MilkTea::BuildCache::CachedProgram
- Defined in:
- lib/milk_tea/tooling/build_cache.rb
Instance Attribute Summary collapse
-
#c_source ⇒ Object
readonly
Returns the value of attribute c_source.
-
#frontend_modules ⇒ Object
readonly
Returns the value of attribute frontend_modules.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#c_source ⇒ Object (readonly)
Returns the value of attribute c_source
10 11 12 |
# File 'lib/milk_tea/tooling/build_cache.rb', line 10 def c_source @c_source end |
#frontend_modules ⇒ Object (readonly)
Returns the value of attribute frontend_modules
10 11 12 |
# File 'lib/milk_tea/tooling/build_cache.rb', line 10 def frontend_modules @frontend_modules end |
Class Method Details
.load(dir) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/milk_tea/tooling/build_cache.rb', line 11 def self.load(dir) raw = JSON.parse(File.read(File.join(dir, "modules.json")), symbolize_names: true) c_source = File.read(File.join(dir, "source.c")) modules = raw.fetch(:modules).map do |mod| Build::FrontendModule.new( name: mod.fetch(:name), kind: mod.fetch(:kind).to_sym, link_libraries: mod.fetch(:link_libraries), compiler_flags: mod.fetch(:compiler_flags), uses_parallel_for: mod.fetch(:uses_parallel_for, false), ) end new(c_source:, frontend_modules: modules) end |
Instance Method Details
#store(dir) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/milk_tea/tooling/build_cache.rb', line 26 def store(dir) FileUtils.mkdir_p(dir) File.write(File.join(dir, "source.c"), c_source) modules_json = { modules: frontend_modules.map do |mod| { name: mod.name, kind: mod.kind.to_s, link_libraries: mod.link_libraries, compiler_flags: mod.compiler_flags, uses_parallel_for: mod.uses_parallel_for, } end, } File.write(File.join(dir, "modules.json"), JSON.generate(modules_json)) end |