Class: AutoC::CMake
- Inherits:
-
Object
- Object
- AutoC::CMake
- Defined in:
- lib/autoc/cmake.rb
Overview
CMake package renderer for the AutoC module
Instance Attribute Summary collapse
-
#module ⇒ Object
readonly
Returns the value of attribute module.
Class Method Summary collapse
Instance Method Summary collapse
- #file_name ⇒ Object
-
#initialize(m) ⇒ CMake
constructor
A new instance of CMake.
- #render ⇒ Object
Constructor Details
#initialize(m) ⇒ CMake
Returns a new instance of CMake.
18 |
# File 'lib/autoc/cmake.rb', line 18 def initialize(m) = @module = m |
Instance Attribute Details
#module ⇒ Object (readonly)
Returns the value of attribute module.
14 15 16 |
# File 'lib/autoc/cmake.rb', line 14 def module @module end |
Class Method Details
.render(m) ⇒ Object
34 |
# File 'lib/autoc/cmake.rb', line 34 def self.render(m) = self.new(m).render |
Instance Method Details
#file_name ⇒ Object
16 |
# File 'lib/autoc/cmake.rb', line 16 def file_name = "#{self.module.name}.cmake" |
#render ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/autoc/cmake.rb', line 20 def render m = self.module sources = self.module.sources.collect { |s| "${CMAKE_CURRENT_SOURCE_DIR}/#{s.file_name}" } .join(' ') stream = %{ set(#{m.name}_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/#{m.header.file_name}) set(#{m.name}_SOURCES #{sources}) add_library(#{m.name} OBJECT ${#{m.name}_SOURCES}) target_include_directories(#{m.name} INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) } unless Digest::MD5.digest(stream) == (Digest::MD5.digest(File.read(file_name)) rescue nil) File.write(file_name, stream) end end |